ETH Price: $3,497.01 (+0.28%)
Gas: 2 Gwei

Contract

0x0B8Fcf2BafBbC451168D5cED003191D71cc015a0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer202005742024-06-29 23:18:2321 days ago1719703103IN
0x0B8Fcf2B...71cc015a0
0 ETH0.000092741.58587986
Approve201894612024-06-28 10:02:4723 days ago1719568967IN
0x0B8Fcf2B...71cc015a0
0 ETH0.00030346.52198805
Approve201541932024-06-23 11:48:4727 days ago1719143327IN
0x0B8Fcf2B...71cc015a0
0 ETH0.000121392.60938204
Approve197172792024-04-23 9:44:4789 days ago1713865487IN
0x0B8Fcf2B...71cc015a0
0 ETH0.00022899.44457342
Approve197108692024-04-22 12:14:1189 days ago1713788051IN
0x0B8Fcf2B...71cc015a0
0 ETH0.000221449.13657333
Approve195572072024-03-31 23:43:23111 days ago1711928603IN
0x0B8Fcf2B...71cc015a0
0 ETH0.0004497818.55763861
Approve193246892024-02-28 7:57:11144 days ago1709107031IN
0x0B8Fcf2B...71cc015a0
0 ETH0.001030738.63067636
Approve193246892024-02-28 7:57:11144 days ago1709107031IN
0x0B8Fcf2B...71cc015a0
0 ETH0.0017994538.63067636
Approve190795082024-01-24 22:35:23178 days ago1706135723IN
0x0B8Fcf2B...71cc015a0
0 ETH0.000230149.472062
Approve190671982024-01-23 5:07:59180 days ago1705986479IN
0x0B8Fcf2B...71cc015a0
0 ETH0.000388748.39750686
Approve187504862023-12-09 18:35:35224 days ago1702146935IN
0x0B8Fcf2B...71cc015a0
0 ETH0.0007949932.80076842
Approve187007702023-12-02 19:20:35231 days ago1701544835IN
0x0B8Fcf2B...71cc015a0
0 ETH0.0015988254.92538929
Approve185341032023-11-09 11:30:59254 days ago1699529459IN
0x0B8Fcf2B...71cc015a0
0 ETH0.0014735431.63410238
Approve184699022023-10-31 11:46:47263 days ago1698752807IN
0x0B8Fcf2B...71cc015a0
0 ETH0.0008491918.37240508
Approve184263532023-10-25 9:26:59270 days ago1698226019IN
0x0B8Fcf2B...71cc015a0
0 ETH0.0002941312.13559662
Approve184076902023-10-22 18:43:11272 days ago1698000191IN
0x0B8Fcf2B...71cc015a0
0 ETH0.000609113.07620001
Approve183798022023-10-18 21:04:35276 days ago1697663075IN
0x0B8Fcf2B...71cc015a0
0 ETH0.000235839.70648734
Approve183797912023-10-18 21:02:23276 days ago1697662943IN
0x0B8Fcf2B...71cc015a0
0 ETH0.0004999710.73335453
Approve183585342023-10-15 21:43:11279 days ago1697406191IN
0x0B8Fcf2B...71cc015a0
0 ETH0.000130895.40060117
Approve182944532023-10-06 22:30:59288 days ago1696631459IN
0x0B8Fcf2B...71cc015a0
0 ETH0.000442099.49079231
Approve182936172023-10-06 19:42:59288 days ago1696621379IN
0x0B8Fcf2B...71cc015a0
0 ETH0.000302566.53581335
Approve182936032023-10-06 19:40:11288 days ago1696621211IN
0x0B8Fcf2B...71cc015a0
0 ETH0.000395938.51098971
Approve182920462023-10-06 14:26:11288 days ago1696602371IN
0x0B8Fcf2B...71cc015a0
0 ETH0.0006708614.50668889
Approve182673742023-10-03 3:37:35292 days ago1696304255IN
0x0B8Fcf2B...71cc015a0
0 ETH0.000315126.80719085
Transfer182628752023-10-02 12:33:59292 days ago1696250039IN
0x0B8Fcf2B...71cc015a0
0 ETH0.0008688411.10600405
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
185341032023-11-09 11:30:59254 days ago1699529459
0x0B8Fcf2B...71cc015a0
0.00279984 ETH
185341032023-11-09 11:30:59254 days ago1699529459
0x0B8Fcf2B...71cc015a0
0.00277212 ETH
185341032023-11-09 11:30:59254 days ago1699529459
0x0B8Fcf2B...71cc015a0
0.00557196 ETH
182944582023-10-06 22:31:59288 days ago1696631519
0x0B8Fcf2B...71cc015a0
0.00309839 ETH
182944582023-10-06 22:31:59288 days ago1696631519
0x0B8Fcf2B...71cc015a0
0.00306771 ETH
182944582023-10-06 22:31:59288 days ago1696631519
0x0B8Fcf2B...71cc015a0
0.00616611 ETH
182920682023-10-06 14:30:35288 days ago1696602635
0x0B8Fcf2B...71cc015a0
0.00322543 ETH
182920682023-10-06 14:30:35288 days ago1696602635
0x0B8Fcf2B...71cc015a0
0.0031935 ETH
182920682023-10-06 14:30:35288 days ago1696602635
0x0B8Fcf2B...71cc015a0
0.00641893 ETH
182175602023-09-26 4:25:47299 days ago1695702347
0x0B8Fcf2B...71cc015a0
0.0040056 ETH
182175602023-09-26 4:25:47299 days ago1695702347
0x0B8Fcf2B...71cc015a0
0.00396594 ETH
182175602023-09-26 4:25:47299 days ago1695702347
0x0B8Fcf2B...71cc015a0
0.00797154 ETH
181866452023-09-21 20:31:11303 days ago1695328271
0x0B8Fcf2B...71cc015a0
0.00485493 ETH
181866452023-09-21 20:31:11303 days ago1695328271
0x0B8Fcf2B...71cc015a0
0.00480686 ETH
181866452023-09-21 20:31:11303 days ago1695328271
0x0B8Fcf2B...71cc015a0
0.0096618 ETH
181793172023-09-20 19:53:35304 days ago1695239615
0x0B8Fcf2B...71cc015a0
0.0047051 ETH
181793172023-09-20 19:53:35304 days ago1695239615
0x0B8Fcf2B...71cc015a0
0.00465851 ETH
181793172023-09-20 19:53:35304 days ago1695239615
0x0B8Fcf2B...71cc015a0
0.00936361 ETH
181719912023-09-19 19:18:23305 days ago1695151103
0x0B8Fcf2B...71cc015a0
0.00523428 ETH
181719912023-09-19 19:18:23305 days ago1695151103
0x0B8Fcf2B...71cc015a0
0.00518246 ETH
181719912023-09-19 19:18:23305 days ago1695151103
0x0B8Fcf2B...71cc015a0
0.01041675 ETH
181706132023-09-19 14:40:35305 days ago1695134435
0x0B8Fcf2B...71cc015a0
0.00684013 ETH
181706132023-09-19 14:40:35305 days ago1695134435
0x0B8Fcf2B...71cc015a0
0.0067724 ETH
181706132023-09-19 14:40:35305 days ago1695134435
0x0B8Fcf2B...71cc015a0
0.01361253 ETH
181672302023-09-19 3:17:47306 days ago1695093467
0x0B8Fcf2B...71cc015a0
0.00837074 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MISHA

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-15
*/

/**

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠄⠒⠂⢄⠀⠀⠀
⠀⠀⠀⠠⣐⠞⡆⢇⠷⢥⣓⡀⠀⠀⠀⡠⣊⣵⠟⣿⣇⣦⡡⠀⠀
⠀⠀⡢⠓⡓⠗⢇⣿⡯⣿⣿⠗⣆⠀⣰⡯⡭⣻⡫⡗⠏⡏⣏⢕⠀
⠀⢐⡗⡛⡬⢻⡋⡈⡃⡭⠿⡇⡑⣙⣗⡟⡽⢟⣇⡇⠃⡿⡯⣗⠀
⠀⢐⣇⠞⡗⠭⠅⡂⣕⣻⣛⡯⡃⡂⣿⡳⡫⠁⡺⢁⠏⡓⣟⡃⠀
⠀⠀⡇⢭⡟⠛⡊⡦⣾⡛⡓⠃⠄⡡⢿⡗⣿⡥⢯⠋⡴⢏⡗⠀⠀
⠀⠀⠊⢛⣍⢏⢃⡏⡍⡊⡇⠎⠊⡃⠃⠿⣿⡿⣟⣩⡯⡗⠀⠀⠀
⠀⠀⠈⠂⠓⠒⠂⢚⡅⠁⠀⠠⠀⠀⠀⠌⠈⠟⠙⠃⠊⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠁⠀⠀⠀⡃⠀⠅⠀⠀⠈⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡅⠀⠀⠀⠀⡔⠂⠁⠠⠃⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠧⠀⠀⠀⡊⠀⠀⠀⢘⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡇⠁⠒⠊⠀⠀⠀⠀⠨⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠇⠀⠀⠀⡀⣀⣀⠀⠅⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣇⠀⠀⡊⠀⠀⠀⡃⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡇⣇⡐⠀⠀⠀⠀⢃⡃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠅⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡇⢀⡀⣀⡀⡀⠀⣀⣧⣀⡀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢠⢤⡞⠛⠙⢉⠉⠻⡟⣿⠋⠉⠛⣯⠳⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⡃⡏⠃⠀⠁⠀⠄⠀⠀⡀⠀⢁⠀⠈⣿⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠑⡇⠀⢁⠀⠀⢀⠁⠀⠀⠄⠀⠂⠀⢟⠇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠫⣇⠀⠀⡀⠀⠀⡎⠀⠀⠂⠈⢰⣏⠇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠁⠃⣆⠀⡀⠈⡇⠀⠁⠈⣐⡏⠇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣦⣀⡇⡀⣤⠞⠋⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀

https://t.me/mishaentry

https://Misha.lol

https://twitter.com/mishaethereum

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function mishaOwner() external view returns (address);
    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);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    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);

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

contract MISHA is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode"MISHA";
    string private constant _symbol = unicode"MISHA";
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1111111111111 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 1;
    uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 1250;
    uint256 private developmentFee = 1250;
    uint256 private burnFee = 0;
    uint256 private totalFee = 2500;
    uint256 private sellFee = 2500;
    uint256 private transferFee = 2500;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0x446a4F6fb58310d4C2799c9d73F3092C11772d25; 
    address internal marketing_receiver = 0x138747be82fc0650306189c0FBDe7A6e1A62AE13;
    address internal liquidity_receiver = 0x446a4F6fb58310d4C2799c9d73F3092C11772d25;
    uint256 public _maxTxAmount = ( _totalSupply * 25 ) / 10000;
    uint256 public _maxSellAmount = ( _totalSupply * 25 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 50 ) / 10000;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function startTrading() external onlyOwner {tradingAllowed = true;}
    function mishaOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function setContractSwapSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    function setMishaTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "totalFee and sellFee cannot be more than 20%");
    }

    function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function setInternalAddresses(address _marketing, address _liquidity, address _development) external onlyOwner {
        marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development;
        isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_development] = true;
    }

    function setisBot(address[] calldata addresses, bool _enabled) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){
        isBot[addresses[i]] = _enabled; }
    }

    function manualSwap() external onlyOwner {
        uint256 amount = balanceOf(address(this));
        if(amount > swapThreshold){amount = swapThreshold;}
        swapAndLiquify(amount);
    }

    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(development_receiver, _amount);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(development_receiver).transfer(contractBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

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

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

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

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

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":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mishaOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setContractSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMishaTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004e7565b6200002490650102b36211c7620004ff565b60018181556007805461ffff60a01b1916600160a81b179055600a55620186a09062000053906103e8620004ff565b6200005f919062000519565b600b55620186a0600154600a620000779190620004ff565b62000083919062000519565b600c556000600d8190556104e2600e819055600f556010556109c4601181905560128190556013556127106014819055601580546001600160a01b031990811673446a4f6fb58310d4c2799c9d73f3092c11772d2590811790925560168054821673138747be82fc0650306189c0fbde7a6e1a62ae1317905560178054909116909117905560015462000118906019620004ff565b62000124919062000519565b60185561271060015460196200013b9190620004ff565b62000147919062000519565b60195561271060015460326200015e9190620004ff565b6200016a919062000519565b601a553480156200017a57600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020891906200053c565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000256573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027c91906200053c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f091906200053c565b600680546001600160a01b038581166001600160a01b031992831617909255600780548484169216919091179055306000908152600460209081526040808320805460ff19908116600190811790925560175486168552828520805482168317905560165486168552828520805482168317905560155490951684528184208054861682179055338085528285208054909616821790955554600283528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000567565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004295781600019048211156200040d576200040d620003d2565b808516156200041b57918102915b93841c9390800290620003ed565b509250929050565b6000826200044257506001620004e1565b816200045157506000620004e1565b81600181146200046a5760028114620004755762000495565b6001915050620004e1565b60ff841115620004895762000489620003d2565b50506001821b620004e1565b5060208310610133831016604e8410600b8410161715620004ba575081810a620004e1565b620004c68383620003e8565b8060001904821115620004dd57620004dd620003d2565b0290505b92915050565b6000620004f860ff84168362000431565b9392505050565b8082028115828204841417620004e157620004e1620003d2565b6000826200053757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200054f57600080fd5b81516001600160a01b0381168114620004f857600080fd5b611e3b80620005776000396000f3fe6080604052600436106101855760003560e01c80637cca52fe116100d15780639d8740cb1161008a578063a9059cbb11610064578063a9059cbb14610472578063b13a135214610492578063dd62ed3e146104b2578063f2fde38b146104f857600080fd5b80639d8740cb14610400578063a65d7f9914610420578063a8aa1b311461045257600080fd5b80637cca52fe146103745780637d1db4a51461038a5780638cd4426d146103a05780639213c358146103c057806395d89b41146101915780639cc35351146103e057600080fd5b80632f54bf6e1161013e57806348ff2b8b1161011857806348ff2b8b146102f357806351bc3c851461031357806370a082311461032857806378109e541461035e57600080fd5b80632f54bf6e14610278578063313ce567146102a75780633f4218e0146102c357600080fd5b806306fdde0314610191578063095ea7b3146101ce57806318160ddd146101fe578063229b6a5e1461022157806323b872dd14610243578063293230b81461026357600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201825260058152644d4953484160d81b602082015290516101c59190611987565b60405180910390f35b3480156101da57600080fd5b506101ee6101e93660046119ea565b610518565b60405190151581526020016101c5565b34801561020a57600080fd5b5061021361052f565b6040519081526020016101c5565b34801561022d57600080fd5b5061024161023c366004611a24565b6105a0565b005b34801561024f57600080fd5b506101ee61025e366004611aaa565b61064a565b34801561026f57600080fd5b506102416106b4565b34801561028457600080fd5b506101ee610293366004611aeb565b6000546001600160a01b0391821691161490565b3480156102b357600080fd5b50604051600981526020016101c5565b3480156102cf57600080fd5b506101ee6102de366004611aeb565b60046020526000908152604090205460ff1681565b3480156102ff57600080fd5b5061024161030e366004611b08565b6106f3565b34801561031f57600080fd5b50610241610748565b34801561033457600080fd5b50610213610343366004611aeb565b6001600160a01b031660009081526002602052604090205490565b34801561036a57600080fd5b50610213601a5481565b34801561038057600080fd5b5061021360195481565b34801561039657600080fd5b5061021360185481565b3480156103ac57600080fd5b506102416103bb3660046119ea565b61079d565b3480156103cc57600080fd5b506102416103db366004611b41565b6108c4565b3480156103ec57600080fd5b506102416103fb366004611b81565b61096a565b34801561040c57600080fd5b5061024161041b366004611b81565b610a9f565b34801561042c57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101c5565b34801561045e57600080fd5b5060075461043a906001600160a01b031681565b34801561047e57600080fd5b506101ee61048d3660046119ea565b610b05565b34801561049e57600080fd5b506102416104ad366004611bad565b610b12565b3480156104be57600080fd5b506102136104cd366004611bf9565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561050457600080fd5b50610241610513366004611aeb565b610c09565b6000610525338484610c87565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261059b9290916105959190610dab565b90610dab565b905090565b6000546001600160a01b031633146105d35760405162461bcd60e51b81526004016105ca90611c27565b60405180910390fd5b60005b828110156106445781600560008686858181106105f5576105f5611c47565b905060200201602081019061060a9190611aeb565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061063c81611c73565b9150506105d6565b50505050565b6000610657848484610db7565b6106a984336106a485604051806060016040528060288152602001611dde602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611304565b610c87565b5060015b9392505050565b6000546001600160a01b031633146106de5760405162461bcd60e51b81526004016105ca90611c27565b6007805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461071d5760405162461bcd60e51b81526004016105ca90611c27565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107725760405162461bcd60e51b81526004016105ca90611c27565b30600090815260026020526040902054600b548111156107915750600b545b61079a81611330565b50565b6000546001600160a01b031633146107c75760405162461bcd60e51b81526004016105ca90611c27565b6040516370a0823160e01b815230600482015260009061084b906064906108459085906001600160a01b038816906370a0823190602401602060405180830381865afa15801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f9190611c8c565b906114ad565b906114b9565b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af11580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106449190611ca5565b6000546001600160a01b031633146108ee5760405162461bcd60e51b81526004016105ca90611c27565b601680546001600160a01b039485166001600160a01b031991821681179092556017805494861694821685179055601580549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146109945760405162461bcd60e51b81526004016105ca90611c27565b60006109b1612710610845866001546114ad90919063ffffffff16565b905060006109d0612710610845866001546114ad90919063ffffffff16565b905060006109ef612710610845866001546114ad90919063ffffffff16565b60188490556019839055601a81905590506000610a156103e8610845600561083f61052f565b9050808410158015610a275750808310155b8015610a335750808210155b610a965760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105ca565b50505050505050565b6000546001600160a01b03163314610ac95760405162461bcd60e51b81526004016105ca90611c27565b600a839055600154610ae490620186a09061084590856114ad565b600b55600154610afd90620186a09061084590846114ad565b600c55505050565b6000610525338484610db7565b6000546001600160a01b03163314610b3c5760405162461bcd60e51b81526004016105ca90611c27565b600d879055600e8690556010859055600f849055601183905560128290556013819055601454610b6d9060016114b9565b60115411158015610b8d5750601454610b879060016114b9565b60125411155b8015610ba85750601454610ba29060016114b9565b60135411155b610a965760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016105ca565b6000546001600160a01b03163314610c335760405162461bcd60e51b81526004016105ca90611c27565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610ce95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ca565b6001600160a01b038216610d4a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ca565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106ad8284611cc2565b6001600160a01b038316610e1b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ca565b6001600160a01b038216610e7d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ca565b6001600160a01b038316600090815260026020526040902054811115610eff5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105ca565b6001600160a01b03831660009081526004602052604090205460ff16158015610f4157506001600160a01b03821660009081526004602052604090205460ff16155b15610f9057600754600160a01b900460ff16610f905760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105ca565b6001600160a01b03831660009081526004602052604090205460ff16158015610fd257506001600160a01b03821660009081526004602052604090205460ff16155b8015610fec57506007546001600160a01b03838116911614155b801561100357506001600160a01b03821661dead14155b1561107c57601a546001600160a01b03831660009081526002602052604090205461102e90836114c5565b111561107c5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105ca565b6007546001600160a01b0384811691161461111d57601954811115806110ba57506001600160a01b03831660009081526004602052604090205460ff165b806110dd57506001600160a01b03821660009081526004602052604090205460ff165b61111d5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105ca565b6018548111158061114657506001600160a01b03831660009081526004602052604090205460ff165b8061116957506001600160a01b03821660009081526004602052604090205460ff165b6111a95760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105ca565b6007546001600160a01b0383811691161480156111df57506001600160a01b03831660009081526004602052604090205460ff16155b156111fd576001600860008282546111f79190611cd5565b90915550505b6112088383836114d1565b1561121e57611218600b54611330565b60006008555b6001600160a01b0383166000908152600260205260409020546112419082610dab565b6001600160a01b038416600090815260026020526040812091909155611267848461158b565b611271578161127c565b61127c8484846115d1565b6001600160a01b0384166000908152600260205260409020549091506112a290826114c5565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112f69085815260200190565b60405180910390a350505050565b600081848411156113285760405162461bcd60e51b81526004016105ca9190611987565b505050900390565b6009805460ff19166001908117909155600f54600e54600d5460009361136a9360029361083f9391926113649283916114c5565b906114c5565b9050600061138782610845600d54866114ad90919063ffffffff16565b905060006113958483610dab565b9050476113a1826116d8565b60006113ad4783610dab565b905060006113d06113c9600d5488610dab90919063ffffffff16565b83906114b9565b905060006113e9600d54836114ad90919063ffffffff16565b905080156113fb576113fb8682611832565b600e546000906114109061083f8560026114ad565b90508015611454576016546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611452573d6000803e3d6000fd5b505b478015611497576015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611495573d6000803e3d6000fd5b505b50506009805460ff191690555050505050505050565b60006106ad8284611ce8565b60006106ad8284611cff565b60006106ad8284611cd5565b600c54600b543060009081526002602052604081205460095491938510159211159060ff1615801561150c5750600754600160a81b900460ff165b80156115215750600754600160a01b900460ff165b801561152a5750815b801561154f57506001600160a01b03861660009081526004602052604090205460ff16155b801561156857506007546001600160a01b038681169116145b80156115785750600a5460085410155b80156115815750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156106ad5750506001600160a01b031660009081526004602052604090205460ff1615919050565b6000806115de85856118e6565b11156116d15760006116016115f386866118e6565b60145461083f9086906114b9565b3060009081526002602052604090205490915061161e90826114c5565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061166f9085815260200190565b60405180910390a36000601054118015611693575060105461169186866118e6565b115b156116bf576116bf3061dead6116ba60105461083f601454896114b990919063ffffffff16565b610db7565b6116c98382610dab565b9150506106ad565b5092915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061170d5761170d611c47565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178a9190611d21565b8160018151811061179d5761179d611c47565b6001600160a01b0392831660209182029290920101526006546117c39130911684610c87565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906117fc908590600090869030904290600401611d3e565b600060405180830381600087803b15801561181657600080fd5b505af115801561182a573d6000803e3d6000fd5b505050505050565b60065461184a9030906001600160a01b031684610c87565b60065460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156118ba573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118df9190611daf565b5050505050565b6001600160a01b03821660009081526005602052604081205460ff168061192557506001600160a01b03821660009081526005602052604090205460ff165b1561193f57601454611938906064610dab565b9050610529565b6007546001600160a01b039081169083160361195e5750601254610529565b6007546001600160a01b039081169084160361197d5750601154610529565b5060135492915050565b600060208083528351808285015260005b818110156119b457858101830151858201604001528201611998565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461079a57600080fd5b600080604083850312156119fd57600080fd5b8235611a08816119d5565b946020939093013593505050565b801515811461079a57600080fd5b600080600060408486031215611a3957600080fd5b833567ffffffffffffffff80821115611a5157600080fd5b818601915086601f830112611a6557600080fd5b813581811115611a7457600080fd5b8760208260051b8501011115611a8957600080fd5b60209283019550935050840135611a9f81611a16565b809150509250925092565b600080600060608486031215611abf57600080fd5b8335611aca816119d5565b92506020840135611ada816119d5565b929592945050506040919091013590565b600060208284031215611afd57600080fd5b81356106ad816119d5565b60008060408385031215611b1b57600080fd5b8235611b26816119d5565b91506020830135611b3681611a16565b809150509250929050565b600080600060608486031215611b5657600080fd5b8335611b61816119d5565b92506020840135611b71816119d5565b91506040840135611a9f816119d5565b600080600060608486031215611b9657600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a031215611bc857600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215611c0c57600080fd5b8235611c17816119d5565b91506020830135611b36816119d5565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c8557611c85611c5d565b5060010190565b600060208284031215611c9e57600080fd5b5051919050565b600060208284031215611cb757600080fd5b81516106ad81611a16565b8181038181111561052957610529611c5d565b8082018082111561052957610529611c5d565b808202811582820484141761052957610529611c5d565b600082611d1c57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611d3357600080fd5b81516106ad816119d5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d8e5784516001600160a01b031683529383019391830191600101611d69565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611dc457600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220558cc7a1a4a2f85434985dbc1b6c81c0ca6d4b26f486708d8c32fe64b4d1f55564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80637cca52fe116100d15780639d8740cb1161008a578063a9059cbb11610064578063a9059cbb14610472578063b13a135214610492578063dd62ed3e146104b2578063f2fde38b146104f857600080fd5b80639d8740cb14610400578063a65d7f9914610420578063a8aa1b311461045257600080fd5b80637cca52fe146103745780637d1db4a51461038a5780638cd4426d146103a05780639213c358146103c057806395d89b41146101915780639cc35351146103e057600080fd5b80632f54bf6e1161013e57806348ff2b8b1161011857806348ff2b8b146102f357806351bc3c851461031357806370a082311461032857806378109e541461035e57600080fd5b80632f54bf6e14610278578063313ce567146102a75780633f4218e0146102c357600080fd5b806306fdde0314610191578063095ea7b3146101ce57806318160ddd146101fe578063229b6a5e1461022157806323b872dd14610243578063293230b81461026357600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201825260058152644d4953484160d81b602082015290516101c59190611987565b60405180910390f35b3480156101da57600080fd5b506101ee6101e93660046119ea565b610518565b60405190151581526020016101c5565b34801561020a57600080fd5b5061021361052f565b6040519081526020016101c5565b34801561022d57600080fd5b5061024161023c366004611a24565b6105a0565b005b34801561024f57600080fd5b506101ee61025e366004611aaa565b61064a565b34801561026f57600080fd5b506102416106b4565b34801561028457600080fd5b506101ee610293366004611aeb565b6000546001600160a01b0391821691161490565b3480156102b357600080fd5b50604051600981526020016101c5565b3480156102cf57600080fd5b506101ee6102de366004611aeb565b60046020526000908152604090205460ff1681565b3480156102ff57600080fd5b5061024161030e366004611b08565b6106f3565b34801561031f57600080fd5b50610241610748565b34801561033457600080fd5b50610213610343366004611aeb565b6001600160a01b031660009081526002602052604090205490565b34801561036a57600080fd5b50610213601a5481565b34801561038057600080fd5b5061021360195481565b34801561039657600080fd5b5061021360185481565b3480156103ac57600080fd5b506102416103bb3660046119ea565b61079d565b3480156103cc57600080fd5b506102416103db366004611b41565b6108c4565b3480156103ec57600080fd5b506102416103fb366004611b81565b61096a565b34801561040c57600080fd5b5061024161041b366004611b81565b610a9f565b34801561042c57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101c5565b34801561045e57600080fd5b5060075461043a906001600160a01b031681565b34801561047e57600080fd5b506101ee61048d3660046119ea565b610b05565b34801561049e57600080fd5b506102416104ad366004611bad565b610b12565b3480156104be57600080fd5b506102136104cd366004611bf9565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561050457600080fd5b50610241610513366004611aeb565b610c09565b6000610525338484610c87565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261059b9290916105959190610dab565b90610dab565b905090565b6000546001600160a01b031633146105d35760405162461bcd60e51b81526004016105ca90611c27565b60405180910390fd5b60005b828110156106445781600560008686858181106105f5576105f5611c47565b905060200201602081019061060a9190611aeb565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061063c81611c73565b9150506105d6565b50505050565b6000610657848484610db7565b6106a984336106a485604051806060016040528060288152602001611dde602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611304565b610c87565b5060015b9392505050565b6000546001600160a01b031633146106de5760405162461bcd60e51b81526004016105ca90611c27565b6007805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461071d5760405162461bcd60e51b81526004016105ca90611c27565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107725760405162461bcd60e51b81526004016105ca90611c27565b30600090815260026020526040902054600b548111156107915750600b545b61079a81611330565b50565b6000546001600160a01b031633146107c75760405162461bcd60e51b81526004016105ca90611c27565b6040516370a0823160e01b815230600482015260009061084b906064906108459085906001600160a01b038816906370a0823190602401602060405180830381865afa15801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f9190611c8c565b906114ad565b906114b9565b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af11580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106449190611ca5565b6000546001600160a01b031633146108ee5760405162461bcd60e51b81526004016105ca90611c27565b601680546001600160a01b039485166001600160a01b031991821681179092556017805494861694821685179055601580549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146109945760405162461bcd60e51b81526004016105ca90611c27565b60006109b1612710610845866001546114ad90919063ffffffff16565b905060006109d0612710610845866001546114ad90919063ffffffff16565b905060006109ef612710610845866001546114ad90919063ffffffff16565b60188490556019839055601a81905590506000610a156103e8610845600561083f61052f565b9050808410158015610a275750808310155b8015610a335750808210155b610a965760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105ca565b50505050505050565b6000546001600160a01b03163314610ac95760405162461bcd60e51b81526004016105ca90611c27565b600a839055600154610ae490620186a09061084590856114ad565b600b55600154610afd90620186a09061084590846114ad565b600c55505050565b6000610525338484610db7565b6000546001600160a01b03163314610b3c5760405162461bcd60e51b81526004016105ca90611c27565b600d879055600e8690556010859055600f849055601183905560128290556013819055601454610b6d9060016114b9565b60115411158015610b8d5750601454610b879060016114b9565b60125411155b8015610ba85750601454610ba29060016114b9565b60135411155b610a965760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016105ca565b6000546001600160a01b03163314610c335760405162461bcd60e51b81526004016105ca90611c27565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610ce95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ca565b6001600160a01b038216610d4a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ca565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106ad8284611cc2565b6001600160a01b038316610e1b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ca565b6001600160a01b038216610e7d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ca565b6001600160a01b038316600090815260026020526040902054811115610eff5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105ca565b6001600160a01b03831660009081526004602052604090205460ff16158015610f4157506001600160a01b03821660009081526004602052604090205460ff16155b15610f9057600754600160a01b900460ff16610f905760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105ca565b6001600160a01b03831660009081526004602052604090205460ff16158015610fd257506001600160a01b03821660009081526004602052604090205460ff16155b8015610fec57506007546001600160a01b03838116911614155b801561100357506001600160a01b03821661dead14155b1561107c57601a546001600160a01b03831660009081526002602052604090205461102e90836114c5565b111561107c5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105ca565b6007546001600160a01b0384811691161461111d57601954811115806110ba57506001600160a01b03831660009081526004602052604090205460ff165b806110dd57506001600160a01b03821660009081526004602052604090205460ff165b61111d5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105ca565b6018548111158061114657506001600160a01b03831660009081526004602052604090205460ff165b8061116957506001600160a01b03821660009081526004602052604090205460ff165b6111a95760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105ca565b6007546001600160a01b0383811691161480156111df57506001600160a01b03831660009081526004602052604090205460ff16155b156111fd576001600860008282546111f79190611cd5565b90915550505b6112088383836114d1565b1561121e57611218600b54611330565b60006008555b6001600160a01b0383166000908152600260205260409020546112419082610dab565b6001600160a01b038416600090815260026020526040812091909155611267848461158b565b611271578161127c565b61127c8484846115d1565b6001600160a01b0384166000908152600260205260409020549091506112a290826114c5565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112f69085815260200190565b60405180910390a350505050565b600081848411156113285760405162461bcd60e51b81526004016105ca9190611987565b505050900390565b6009805460ff19166001908117909155600f54600e54600d5460009361136a9360029361083f9391926113649283916114c5565b906114c5565b9050600061138782610845600d54866114ad90919063ffffffff16565b905060006113958483610dab565b9050476113a1826116d8565b60006113ad4783610dab565b905060006113d06113c9600d5488610dab90919063ffffffff16565b83906114b9565b905060006113e9600d54836114ad90919063ffffffff16565b905080156113fb576113fb8682611832565b600e546000906114109061083f8560026114ad565b90508015611454576016546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611452573d6000803e3d6000fd5b505b478015611497576015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611495573d6000803e3d6000fd5b505b50506009805460ff191690555050505050505050565b60006106ad8284611ce8565b60006106ad8284611cff565b60006106ad8284611cd5565b600c54600b543060009081526002602052604081205460095491938510159211159060ff1615801561150c5750600754600160a81b900460ff165b80156115215750600754600160a01b900460ff165b801561152a5750815b801561154f57506001600160a01b03861660009081526004602052604090205460ff16155b801561156857506007546001600160a01b038681169116145b80156115785750600a5460085410155b80156115815750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156106ad5750506001600160a01b031660009081526004602052604090205460ff1615919050565b6000806115de85856118e6565b11156116d15760006116016115f386866118e6565b60145461083f9086906114b9565b3060009081526002602052604090205490915061161e90826114c5565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061166f9085815260200190565b60405180910390a36000601054118015611693575060105461169186866118e6565b115b156116bf576116bf3061dead6116ba60105461083f601454896114b990919063ffffffff16565b610db7565b6116c98382610dab565b9150506106ad565b5092915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061170d5761170d611c47565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178a9190611d21565b8160018151811061179d5761179d611c47565b6001600160a01b0392831660209182029290920101526006546117c39130911684610c87565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906117fc908590600090869030904290600401611d3e565b600060405180830381600087803b15801561181657600080fd5b505af115801561182a573d6000803e3d6000fd5b505050505050565b60065461184a9030906001600160a01b031684610c87565b60065460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156118ba573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118df9190611daf565b5050505050565b6001600160a01b03821660009081526005602052604081205460ff168061192557506001600160a01b03821660009081526005602052604090205460ff165b1561193f57601454611938906064610dab565b9050610529565b6007546001600160a01b039081169083160361195e5750601254610529565b6007546001600160a01b039081169084160361197d5750601154610529565b5060135492915050565b600060208083528351808285015260005b818110156119b457858101830151858201604001528201611998565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461079a57600080fd5b600080604083850312156119fd57600080fd5b8235611a08816119d5565b946020939093013593505050565b801515811461079a57600080fd5b600080600060408486031215611a3957600080fd5b833567ffffffffffffffff80821115611a5157600080fd5b818601915086601f830112611a6557600080fd5b813581811115611a7457600080fd5b8760208260051b8501011115611a8957600080fd5b60209283019550935050840135611a9f81611a16565b809150509250925092565b600080600060608486031215611abf57600080fd5b8335611aca816119d5565b92506020840135611ada816119d5565b929592945050506040919091013590565b600060208284031215611afd57600080fd5b81356106ad816119d5565b60008060408385031215611b1b57600080fd5b8235611b26816119d5565b91506020830135611b3681611a16565b809150509250929050565b600080600060608486031215611b5657600080fd5b8335611b61816119d5565b92506020840135611b71816119d5565b91506040840135611a9f816119d5565b600080600060608486031215611b9657600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a031215611bc857600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215611c0c57600080fd5b8235611c17816119d5565b91506020830135611b36816119d5565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c8557611c85611c5d565b5060010190565b600060208284031215611c9e57600080fd5b5051919050565b600060208284031215611cb757600080fd5b81516106ad81611a16565b8181038181111561052957610529611c5d565b8082018082111561052957610529611c5d565b808202811582820484141761052957610529611c5d565b600082611d1c57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611d3357600080fd5b81516106ad816119d5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d8e5784516001600160a01b031683529383019391830191600101611d69565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611dc457600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220558cc7a1a4a2f85434985dbc1b6c81c0ca6d4b26f486708d8c32fe64b4d1f55564736f6c63430008130033

Deployed Bytecode Sourcemap

6613:11481:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9063:67;;;;;;;;;;-1:-1:-1;9123:5:0;;;;;;;;;;;-1:-1:-1;;;9123:5:0;;;;9063:67;;;;9123:5;9063:67;:::i;:::-;;;;;;;;9946:133;;;;;;;;;;-1:-1:-1;9946:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9946:133:0;1023:187:1;10085:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;10085:132:0;1215:177:1;12410:184:0;;;;;;;;;;-1:-1:-1;12410:184:0;;;;;:::i;:::-;;:::i;:::-;;17439:309;;;;;;;;;;-1:-1:-1;17439:309:0;;;;;:::i;:::-;;:::i;9286:67::-;;;;;;;;;;;;;:::i;5517:87::-;;;;;;;;;;-1:-1:-1;5517:87:0;;;;;:::i;:::-;5572:4;5597:5;-1:-1:-1;;;;;5586:16:0;;;5597:5;;5586:16;;5517:87;9213:67;;;;;;;;;;-1:-1:-1;9213:67:0;;6830:1;3130:36:1;;3118:2;3103:18;9213:67:0;2988:184:1;7030:44:0;;;;;;;;;;-1:-1:-1;7030:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9832:108;;;;;;;;;;-1:-1:-1;9832:108:0;;;;;:::i;:::-;;:::i;12602:195::-;;;;;;;;;;;;;:::i;9445:103::-;;;;;;;;;;-1:-1:-1;9445:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;9528:18:0;9511:7;9528:18;;;:9;:18;;;;;;;9445:103;8347:62;;;;;;;;;;;;;;;;8279:61;;;;;;;;;;;;;;;;8213:59;;;;;;;;;;;;;;;;12805:242;;;;;;;;;;-1:-1:-1;12805:242:0;;;;;:::i;:::-;;:::i;12064:338::-;;;;;;;;;;-1:-1:-1;12064:338:0;;;;;:::i;:::-;;:::i;11500:556::-;;;;;;;;;;-1:-1:-1;11500:556:0;;;;;:::i;:::-;;:::i;10636:319::-;;;;;;;;;;-1:-1:-1;10636:319:0;;;;;:::i;:::-;;:::i;9359:80::-;;;;;;;;;;-1:-1:-1;9413:7:0;9431:5;-1:-1:-1;;;;;9431:5:0;9359:80;;;-1:-1:-1;;;;;4583:32:1;;;4565:51;;4553:2;4538:18;9359:80:0;4419:203:1;7148:19:0;;;;;;;;;;-1:-1:-1;7148:19:0;;;;-1:-1:-1;;;;;7148:19:0;;;9554:139;;;;;;;;;;-1:-1:-1;9554:139:0;;;;;:::i;:::-;;:::i;10963:529::-;;;;;;;;;;-1:-1:-1;10963:529:0;;;;;:::i;:::-;;:::i;9699:127::-;;;;;;;;;;-1:-1:-1;9699:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;9797:18:0;;;9780:7;9797:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9699:127;5610:111;;;;;;;;;;-1:-1:-1;5610:111:0;;;;;:::i;:::-;;:::i;9946:133::-;10021:4;10028:37;10037:10;10049:7;10058:6;10028:8;:37::i;:::-;-1:-1:-1;10073:4:0;9946:133;;;;;:::o;10085:132::-;9528:9;:18;;;;7900:42;10138:7;9528:18;;;;;10155:12;;10138:7;;10155:60;;9528:18;;10155:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;10148:67;;10085:132;:::o;12410:184::-;5572:4;5597:5;-1:-1:-1;;;;;5597:5:0;5484:10;5586:16;5468:38;;;;-1:-1:-1;;;5468:38:0;;;;;;;:::i;:::-;;;;;;;;;12507:6:::1;12503:84;12517:20:::0;;::::1;12503:84;;;12576:8;12554:5;:19;12560:9;;12570:1;12560:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12554:19:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12554:19:0;:30;;-1:-1:-1;;12554:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12539:3;::::1;::::0;::::1;:::i;:::-;;;;12503:84;;;;12410:184:::0;;;:::o;17439:309::-;17537:4;17554:36;17564:6;17572:9;17583:6;17554:9;:36::i;:::-;17601:117;17610:6;17618:10;17630:87;17666:6;17630:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17630:19:0;;;;;;:11;:19;;;;;;;;17650:10;17630:31;;;;;;;;;:87;:35;:87::i;:::-;17601:8;:117::i;:::-;-1:-1:-1;17736:4:0;17439:309;;;;;;:::o;9286:67::-;5572:4;5597:5;-1:-1:-1;;;;;5597:5:0;5484:10;5586:16;5468:38;;;;-1:-1:-1;;;5468:38:0;;;;;;;:::i;:::-;9330:14:::1;:21:::0;;-1:-1:-1;;;;9330:21:0::1;-1:-1:-1::0;;;9330:21:0::1;::::0;;9286:67::o;9832:108::-;5572:4;5597:5;-1:-1:-1;;;;;5597:5:0;5484:10;5586:16;5468:38;;;;-1:-1:-1;;;5468:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9906:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;9906:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9832:108::o;12602:195::-;5572:4;5597:5;-1:-1:-1;;;;;5597:5:0;5484:10;5586:16;5468:38;;;;-1:-1:-1;;;5468:38:0;;;;;;;:::i;:::-;12689:4:::1;12654:14;9528:18:::0;;;:9;:18;;;;;;12718:13:::1;::::0;12709:22;::::1;12706:51;;;-1:-1:-1::0;12742:13:0::1;::::0;12706:51:::1;12767:22;12782:6;12767:14;:22::i;:::-;12643:154;12602:195::o:0;12805:242::-;5572:4;5597:5;-1:-1:-1;;;;;5597:5:0;5484:10;5586:16;5468:38;;;;-1:-1:-1;;;5468:38:0;;;;;;;:::i;:::-;12909:41:::1;::::0;-1:-1:-1;;;12909:41:0;;12944:4:::1;12909:41;::::0;::::1;4565:51:1::0;12891:15:0::1;::::0;12909:63:::1;::::0;12968:3:::1;::::0;12909:54:::1;::::0;12955:7;;-1:-1:-1;;;;;12909:26:0;::::1;::::0;::::1;::::0;4538:18:1;;12909:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45:::0;::::1;:54::i;:::-;:58:::0;::::1;:63::i;:::-;13009:20;::::0;12983:56:::1;::::0;-1:-1:-1;;;12983:56:0;;-1:-1:-1;;;;;13009:20:0;;::::1;12983:56;::::0;::::1;6978:51:1::0;7045:18;;;7038:34;;;12891:81:0;;-1:-1:-1;12983:25:0;::::1;::::0;::::1;::::0;6951:18:1;;12983:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12064:338::-:0;5572:4;5597:5;-1:-1:-1;;;;;5597:5:0;5484:10;5586:16;5468:38;;;;-1:-1:-1;;;5468:38:0;;;;;;;:::i;:::-;12186:18:::1;:31:::0;;-1:-1:-1;;;;;12186:31:0;;::::1;-1:-1:-1::0;;;;;;12186:31:0;;::::1;::::0;::::1;::::0;;;12219:18:::1;:31:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;12252:20:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;12186:18:::1;12298:23:::0;;;:11:::1;:23;::::0;;;;;:30;;-1:-1:-1;;12298:30:0;;::::1;12186:31:::0;12298:30;;::::1;::::0;;;12330:23;;;;;;:30;;;::::1;::::0;::::1;::::0;;12362:25;;;;;;:32;;;;::::1;::::0;;::::1;::::0;;12064:338::o;11500:556::-;5572:4;5597:5;-1:-1:-1;;;;;5597:5:0;5484:10;5586:16;5468:38;;;;-1:-1:-1;;;5468:38:0;;;;;;;:::i;:::-;11606:13:::1;11622:33;11649:5;11622:22;11639:4;11622:12;;:16;;:22;;;;:::i;:33::-;11606:49;;11657:19;11679:34;11707:5;11679:23;11696:5;11679:12;;:16;;:23;;;;:::i;:34::-;11657:56;;11715:17;11735:36;11765:5;11735:25;11752:7;11735:12;;:16;;:25;;;;:::i;:36::-;11782:12;:20:::0;;;11804:14:::1;:28:::0;;;11834:15:::1;:27:::0;;;11715:56;-1:-1:-1;;11888:30:0::1;11913:4;11888:20;11906:1;11888:13;:11;:13::i;:30::-;11872:46;;11946:5;11937;:14;;:38;;;;;11970:5;11955:11;:20;;11937:38;:60;;;;;11992:5;11979:9;:18;;11937:60;11929:119;;;::::0;-1:-1:-1;;;11929:119:0;;7535:2:1;11929:119:0::1;::::0;::::1;7517:21:1::0;7574:2;7554:18;;;7547:30;7613:34;7593:18;;;7586:62;-1:-1:-1;;;7664:18:1;;;7657:44;7718:19;;11929:119:0::1;7333:410:1::0;11929:119:0::1;11595:461;;;;11500:556:::0;;;:::o;10636:319::-;5572:4;5597:5;-1:-1:-1;;;;;5597:5:0;5484:10;5586:16;5468:38;;;;-1:-1:-1;;;5468:38:0;;;;;;;:::i;:::-;10769:10:::1;:24:::0;;;10811:12:::1;::::0;:53:::1;::::0;10856:6:::1;::::0;10811:32:::1;::::0;10828:14;10811:16:::1;:32::i;:53::-;10795:13;:69:::0;10893:12:::1;::::0;:54:::1;::::0;10939:6:::1;::::0;10893:33:::1;::::0;10910:15;10893:16:::1;:33::i;:54::-;10876:14;:71:::0;-1:-1:-1;;;10636:319:0:o;9554:139::-;9632:4;9639:40;9649:10;9661:9;9672:6;9639:9;:40::i;10963:529::-;5572:4;5597:5;-1:-1:-1;;;;;5597:5:0;5484:10;5586:16;5468:38;;;;-1:-1:-1;;;5468:38:0;;;;;;;:::i;:::-;11158:12:::1;:25:::0;;;11185:12:::1;:25:::0;;;11212:7:::1;:15:::0;;;11229:14:::1;:29:::0;;;11260:8:::1;:17:::0;;;11279:7:::1;:15:::0;;;11296:11:::1;:20:::0;;;11347:11:::1;::::0;:18:::1;::::0;-1:-1:-1;11347:15:0::1;:18::i;:::-;11335:8;;:30;;:63;;;;-1:-1:-1::0;11380:11:0::1;::::0;:18:::1;::::0;11396:1:::1;11380:15;:18::i;:::-;11369:7;;:29;;11335:63;:100;;;;-1:-1:-1::0;11417:11:0::1;::::0;:18:::1;::::0;11433:1:::1;11417:15;:18::i;:::-;11402:11;;:33;;11335:100;11327:157;;;::::0;-1:-1:-1;;;11327:157:0;;7950:2:1;11327:157:0::1;::::0;::::1;7932:21:1::0;7989:2;7969:18;;;7962:30;8028:34;8008:18;;;8001:62;-1:-1:-1;;;8079:18:1;;;8072:42;8131:19;;11327:157:0::1;7748:408:1::0;5610:111:0;5572:4;5597:5;-1:-1:-1;;;;;5597:5:0;5484:10;5586:16;5468:38;;;;-1:-1:-1;;;5468:38:0;;;;;;;:::i;:::-;5676:5:::1;:11:::0;;-1:-1:-1;;;;;;5676:11:0::1;-1:-1:-1::0;;;;;5676:11:0;::::1;::::0;;::::1;::::0;;;5694:25:::1;::::0;4565:51:1;;;5694:25:0::1;::::0;4553:2:1;4538:18;5694:25:0::1;;;;;;;5610:111:::0;:::o;17756:335::-;-1:-1:-1;;;;;17849:19:0;;17841:68;;;;-1:-1:-1;;;17841:68:0;;8579:2:1;17841:68:0;;;8561:21:1;8618:2;8598:18;;;8591:30;8657:34;8637:18;;;8630:62;-1:-1:-1;;;8708:18:1;;;8701:34;8752:19;;17841:68:0;8377:400:1;17841:68:0;-1:-1:-1;;;;;17928:21:0;;17920:68;;;;-1:-1:-1;;;17920:68:0;;8984:2:1;17920:68:0;;;8966:21:1;9023:2;9003:18;;;8996:30;9062:34;9042:18;;;9035:62;-1:-1:-1;;;9113:18:1;;;9106:32;9155:19;;17920:68:0;8782:398:1;17920:68:0;-1:-1:-1;;;;;17999:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18051:32;;1361:25:1;;;18051:32:0;;1334:18:1;18051:32:0;;;;;;;17756:335;;;:::o;3254:98::-;3312:7;3339:5;3343:1;3339;:5;:::i;15998:1433::-;-1:-1:-1;;;;;16095:20:0;;16087:70;;;;-1:-1:-1;;;16087:70:0;;9520:2:1;16087:70:0;;;9502:21:1;9559:2;9539:18;;;9532:30;9598:34;9578:18;;;9571:62;-1:-1:-1;;;9649:18:1;;;9642:35;9694:19;;16087:70:0;9318:401:1;16087:70:0;-1:-1:-1;;;;;16176:23:0;;16168:71;;;;-1:-1:-1;;;16168:71:0;;9926:2:1;16168:71:0;;;9908:21:1;9965:2;9945:18;;;9938:30;10004:34;9984:18;;;9977:62;-1:-1:-1;;;10055:18:1;;;10048:33;10098:19;;16168:71:0;9724:399:1;16168:71:0;-1:-1:-1;;;;;9528:18:0;;9511:7;9528:18;;;:9;:18;;;;;;16258:6;:27;;16250:88;;;;-1:-1:-1;;;16250:88:0;;10330:2:1;16250:88:0;;;10312:21:1;10369:2;10349:18;;;10342:30;10408:34;10388:18;;;10381:62;-1:-1:-1;;;10459:18:1;;;10452:47;10516:19;;16250:88:0;10128:413:1;16250:88:0;-1:-1:-1;;;;;16353:19:0;;;;;;:11;:19;;;;;;;;16352:20;:47;;;;-1:-1:-1;;;;;;16377:22:0;;;;;;:11;:22;;;;;;;;16376:23;16352:47;16349:95;;;16409:14;;-1:-1:-1;;;16409:14:0;;;;16401:41;;;;-1:-1:-1;;;16401:41:0;;10748:2:1;16401:41:0;;;10730:21:1;10787:2;10767:18;;;10760:30;-1:-1:-1;;;10806:18:1;;;10799:44;10860:18;;16401:41:0;10546:338:1;16401:41:0;-1:-1:-1;;;;;16458:19:0;;;;;;:11;:19;;;;;;;;16457:20;:47;;;;-1:-1:-1;;;;;;16482:22:0;;;;;;:11;:22;;;;;;;;16481:23;16457:47;:77;;;;-1:-1:-1;16529:4:0;;-1:-1:-1;;;;;16508:26:0;;;16529:4;;16508:26;;16457:77;:107;;;;-1:-1:-1;;;;;;16538:26:0;;7900:42;16538:26;;16457:107;16454:220;;;16622:15;;-1:-1:-1;;;;;16585:20:0;;;;;;:9;:20;;;;;;:32;;16610:6;16585:24;:32::i;:::-;16584:53;;16576:96;;;;-1:-1:-1;;;16576:96:0;;11091:2:1;16576:96:0;;;11073:21:1;11130:2;11110:18;;;11103:30;11169:32;11149:18;;;11142:60;11219:18;;16576:96:0;10889:354:1;16576:96:0;16697:4;;-1:-1:-1;;;;;16687:14:0;;;16697:4;;16687:14;16684:124;;16721:14;;16711:6;:24;;:47;;;-1:-1:-1;;;;;;16739:19:0;;;;;;:11;:19;;;;;;;;16711:47;:73;;;-1:-1:-1;;;;;;16762:22:0;;;;;;:11;:22;;;;;;;;16711:73;16703:103;;;;-1:-1:-1;;;16703:103:0;;11450:2:1;16703:103:0;;;11432:21:1;11489:2;11469:18;;;11462:30;-1:-1:-1;;;11508:18:1;;;11501:47;11565:18;;16703:103:0;11248:341:1;16703:103:0;16836:12;;16826:6;:22;;:45;;;-1:-1:-1;;;;;;16852:19:0;;;;;;:11;:19;;;;;;;;16826:45;:71;;;-1:-1:-1;;;;;;16875:22:0;;;;;;:11;:22;;;;;;;;16826:71;16818:101;;;;-1:-1:-1;;;16818:101:0;;11450:2:1;16818:101:0;;;11432:21:1;11489:2;11469:18;;;11462:30;-1:-1:-1;;;11508:18:1;;;11501:47;11565:18;;16818:101:0;11248:341:1;16818:101:0;16947:4;;-1:-1:-1;;;;;16934:17:0;;;16947:4;;16934:17;:41;;;;-1:-1:-1;;;;;;16956:19:0;;;;;;:11;:19;;;;;;;;16955:20;16934:41;16931:71;;;16998:1;16977:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;16931:71:0;17015:45;17034:6;17042:9;17053:6;17015:18;:45::i;:::-;17012:105;;;17062:29;17077:13;;17062:14;:29::i;:::-;17113:1;17093:9;:22;17012:105;-1:-1:-1;;;;;17147:17:0;;;;;;:9;:17;;;;;;:29;;17169:6;17147:21;:29::i;:::-;-1:-1:-1;;;;;17127:17:0;;;;;;:9;:17;;;;;:49;;;;17212:32;17137:6;17234:9;17212:13;:32::i;:::-;:78;;17284:6;17212:78;;;17247:34;17255:6;17263:9;17274:6;17247:7;:34::i;:::-;-1:-1:-1;;;;;17324:20:0;;;;;;:9;:20;;;;;;17187:103;;-1:-1:-1;17324:40:0;;17187:103;17324:24;:40::i;:::-;-1:-1:-1;;;;;17301:20:0;;;;;;;:9;:20;;;;;;;:63;;;;17380:43;;;;;;;;;;17408:14;1361:25:1;;1349:2;1334:18;;1215:177;17380:43:0;;;;;;;;16076:1355;15998:1433;;;:::o;3678:240::-;3798:7;3859:12;3851:6;;;;3843:29;;;;-1:-1:-1;;;3843:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3894:5:0;;;3678:240::o;13055:1063::-;7506:8;:15;;-1:-1:-1;;7506:15:0;7517:4;7506:15;;;;;;13192:14:::1;::::0;13174:12:::1;::::0;13150::::1;::::0;7506:8;;13149:66:::1;::::0;13213:1:::1;::::0;13150:57:::1;::::0;13192:14;;13150:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;13149:66::-;13126:89;;13226:32;13261:42;13290:12;13261:24;13272:12;;13261:6;:10;;:24;;;;:::i;:42::-;13226:77:::0;-1:-1:-1;13314:14:0::1;13331:36;:6:::0;13226:77;13331:10:::1;:36::i;:::-;13314:53:::0;-1:-1:-1;13403:21:0::1;13435:24;13314:53:::0;13435:16:::1;:24::i;:::-;13470:20;13493:41;:21;13519:14:::0;13493:25:::1;:41::i;:::-;13470:64;;13545:19;13566:48;13583:30;13600:12;;13583;:16;;:30;;;;:::i;:::-;13566:12:::0;;:16:::1;:48::i;:::-;13545:69;;13625:29;13657;13673:12;;13657:11;:15;;:29;;;;:::i;:::-;13625:61:::0;-1:-1:-1;13700:34:0;;13697:103:::1;;13736:61;13749:24;13775:21;13736:12;:61::i;:::-;13856:12;::::0;13810:20:::1;::::0;13833:36:::1;::::0;:18:::1;:11:::0;13849:1:::1;13833:15;:18::i;:36::-;13810:59:::0;-1:-1:-1;13883:16:0;;13880:73:::1;;13909:18;::::0;13901:50:::1;::::0;-1:-1:-1;;;;;13909:18:0;;::::1;::::0;13901:50;::::1;;;::::0;13938:12;;13909:18:::1;13901:50:::0;13909:18;13901:50;13938:12;13909:18;13901:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13880:73;13989:21;14024:28:::0;;14021:90:::1;;14062:20;::::0;14054:55:::1;::::0;-1:-1:-1;;;;;14062:20:0;;::::1;::::0;14054:55;::::1;;;::::0;14093:15;;14062:20:::1;14054:55:::0;14062:20;14054:55;14093:15;14062:20;14054:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14021:90;-1:-1:-1::0;;7526:8:0;:16;;-1:-1:-1;;7526:16:0;;;-1:-1:-1;;;;;;;;13055:1063:0:o;3360:98::-;3418:7;3445:5;3449:1;3445;:5;:::i;3466:98::-;3524:7;3551:5;3555:1;3551;:5;:::i;3148:98::-;3206:7;3233:5;3237:1;3233;:5;:::i;10225:403::-;10370:14;;10445:13;;10435:4;10327;9528:18;;;:9;:18;;;;;;10477:8;;10327:4;;10360:24;;;;-1:-1:-1;10417:41:0;;10477:8;;10476:9;:24;;;;-1:-1:-1;10489:11:0;;-1:-1:-1;;;10489:11:0;;;;10476:24;:42;;;;-1:-1:-1;10504:14:0;;-1:-1:-1;;;10504:14:0;;;;10476:42;:54;;;;;10522:8;10476:54;:78;;;;-1:-1:-1;;;;;;10535:19:0;;;;;;:11;:19;;;;;;;;10534:20;10476:78;:99;;;;-1:-1:-1;10571:4:0;;-1:-1:-1;;;;;10558:17:0;;;10571:4;;10558:17;10476:99;:126;;;;;10592:10;;10579:9;;:23;;10476:126;:144;;;;;10606:14;10476:144;10469:151;10225:403;-1:-1:-1;;;;;;10225:403:0:o;14919:160::-;-1:-1:-1;;;;;15025:19:0;;15000:4;15025:19;;;:11;:19;;;;;;;;15024:20;:47;;;;-1:-1:-1;;;;;;;15049:22:0;;;;;:11;:22;;;;;;;;15048:23;;14919:160;-1:-1:-1;14919:160:0:o;15400:590::-;15486:7;15542:1;15509:30;15521:6;15529:9;15509:11;:30::i;:::-;:34;15506:462;;;15555:17;15575:59;15603:30;15615:6;15623:9;15603:11;:30::i;:::-;15586:11;;15575:23;;:6;;:10;:23::i;:59::-;15690:4;15672:24;;;;:9;:24;;;;;;15555:79;;-1:-1:-1;15672:39:0;;15555:79;15672:28;:39::i;:::-;15663:4;15645:24;;;;:9;:24;;;;;;;:66;;;;15727:42;;-1:-1:-1;;;;;15727:42:0;;;;;;;15759:9;1361:25:1;;1349:2;1334:18;;1215:177;15727:42:0;;;;;;;;15801:1;15783:7;;:20;:64;;;;;15840:7;;15807:30;15819:6;15827:9;15807:11;:30::i;:::-;:40;15783:64;15780:148;;;15849:77;15867:4;7900:42;15889:36;15917:7;;15889:23;15900:11;;15889:6;:10;;:23;;;;:::i;:36::-;15849:9;:77::i;:::-;15945:21;:6;15956:9;15945:10;:21::i;:::-;15938:28;;;;;15506:462;-1:-1:-1;15976:6:0;15400:590;-1:-1:-1;;15400:590:0:o;14477:434::-;14567:16;;;14581:1;14567:16;;;;;;;;14543:21;;14567:16;;;;;;;;;;-1:-1:-1;14567:16:0;14543:40;;14612:4;14594;14599:1;14594:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14594:23:0;;;:7;;;;;;;;;;:23;;;;14638:6;;:13;;;-1:-1:-1;;;14638:13:0;;;;:6;;;;;:11;;:13;;;;;14594:7;;14638:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14628:4;14633:1;14628:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14628:23:0;;;:7;;;;;;;;;:23;14694:6;;14662:53;;14679:4;;14694:6;14703:11;14662:8;:53::i;:::-;14726:6;;:177;;-1:-1:-1;;;14726:177:0;;-1:-1:-1;;;;;14726:6:0;;;;:57;;:177;;14798:11;;14726:6;;14840:4;;14867;;14887:15;;14726:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14532:379;14477:434;:::o;14126:343::-;14239:6;;14207:53;;14224:4;;-1:-1:-1;;;;;14239:6:0;14248:11;14207:8;:53::i;:::-;14271:6;;14412:18;;14271:190;;-1:-1:-1;;;14271:190:0;;14334:4;14271:190;;;13833:34:1;13883:18;;;13876:34;;;14271:6:0;13926:18:1;;;13919:34;;;13969:18;;;13962:34;-1:-1:-1;;;;;14412:18:0;;;14012:19:1;;;14005:44;14445:15:0;14065:19:1;;;14058:35;14271:6:0;;;:22;;14301:9;;13767:19:1;;14271:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14126:343;;:::o;15087:305::-;-1:-1:-1;;;;;15189:13:0;;15166:7;15189:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;15206:16:0;;;;;;:5;:16;;;;;;;;15189:33;15186:76;;;15231:11;;:29;;15255:3;15231:15;:29::i;:::-;15224:36;;;;15186:76;15288:4;;-1:-1:-1;;;;;15288:4:0;;;15275:17;;;;15272:38;;-1:-1:-1;15301:7:0;;15294:14;;15272:38;15333:4;;-1:-1:-1;;;;;15333:4:0;;;15323:14;;;;15320:36;;-1:-1:-1;15346:8:0;;15339:15;;15320:36;-1:-1:-1;15373:11:0;;15087:305;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:118::-;1483:5;1476:13;1469:21;1462:5;1459:32;1449:60;;1505:1;1502;1495:12;1520:750;1612:6;1620;1628;1681:2;1669:9;1660:7;1656:23;1652:32;1649:52;;;1697:1;1694;1687:12;1649:52;1737:9;1724:23;1766:18;1807:2;1799:6;1796:14;1793:34;;;1823:1;1820;1813:12;1793:34;1861:6;1850:9;1846:22;1836:32;;1906:7;1899:4;1895:2;1891:13;1887:27;1877:55;;1928:1;1925;1918:12;1877:55;1968:2;1955:16;1994:2;1986:6;1983:14;1980:34;;;2010:1;2007;2000:12;1980:34;2065:7;2058:4;2048:6;2045:1;2041:14;2037:2;2033:23;2029:34;2026:47;2023:67;;;2086:1;2083;2076:12;2023:67;2117:4;2109:13;;;;-1:-1:-1;2141:6:1;-1:-1:-1;;2182:20:1;;2169:34;2212:28;2169:34;2212:28;:::i;:::-;2259:5;2249:15;;;1520:750;;;;;:::o;2275:456::-;2352:6;2360;2368;2421:2;2409:9;2400:7;2396:23;2392:32;2389:52;;;2437:1;2434;2427:12;2389:52;2476:9;2463:23;2495:31;2520:5;2495:31;:::i;:::-;2545:5;-1:-1:-1;2602:2:1;2587:18;;2574:32;2615:33;2574:32;2615:33;:::i;:::-;2275:456;;2667:7;;-1:-1:-1;;;2721:2:1;2706:18;;;;2693:32;;2275:456::o;2736:247::-;2795:6;2848:2;2836:9;2827:7;2823:23;2819:32;2816:52;;;2864:1;2861;2854:12;2816:52;2903:9;2890:23;2922:31;2947:5;2922:31;:::i;3177:382::-;3242:6;3250;3303:2;3291:9;3282:7;3278:23;3274:32;3271:52;;;3319:1;3316;3309:12;3271:52;3358:9;3345:23;3377:31;3402:5;3377:31;:::i;:::-;3427:5;-1:-1:-1;3484:2:1;3469:18;;3456:32;3497:30;3456:32;3497:30;:::i;:::-;3546:7;3536:17;;;3177:382;;;;;:::o;3564:529::-;3641:6;3649;3657;3710:2;3698:9;3689:7;3685:23;3681:32;3678:52;;;3726:1;3723;3716:12;3678:52;3765:9;3752:23;3784:31;3809:5;3784:31;:::i;:::-;3834:5;-1:-1:-1;3891:2:1;3876:18;;3863:32;3904:33;3863:32;3904:33;:::i;:::-;3956:7;-1:-1:-1;4015:2:1;4000:18;;3987:32;4028:33;3987:32;4028:33;:::i;4098:316::-;4175:6;4183;4191;4244:2;4232:9;4223:7;4219:23;4215:32;4212:52;;;4260:1;4257;4250:12;4212:52;-1:-1:-1;;4283:23:1;;;4353:2;4338:18;;4325:32;;-1:-1:-1;4404:2:1;4389:18;;;4376:32;;4098:316;-1:-1:-1;4098:316:1:o;4627:592::-;4740:6;4748;4756;4764;4772;4780;4788;4841:3;4829:9;4820:7;4816:23;4812:33;4809:53;;;4858:1;4855;4848:12;4809:53;-1:-1:-1;;4881:23:1;;;4951:2;4936:18;;4923:32;;-1:-1:-1;5002:2:1;4987:18;;4974:32;;5053:2;5038:18;;5025:32;;-1:-1:-1;5104:3:1;5089:19;;5076:33;;-1:-1:-1;5156:3:1;5141:19;;5128:33;;-1:-1:-1;5208:3:1;5193:19;5180:33;;-1:-1:-1;4627:592:1;-1:-1:-1;4627:592:1:o;5224:388::-;5292:6;5300;5353:2;5341:9;5332:7;5328:23;5324:32;5321:52;;;5369:1;5366;5359:12;5321:52;5408:9;5395:23;5427:31;5452:5;5427:31;:::i;:::-;5477:5;-1:-1:-1;5534:2:1;5519:18;;5506:32;5547:33;5506:32;5547:33;:::i;5877:329::-;6079:2;6061:21;;;6118:1;6098:18;;;6091:29;-1:-1:-1;;;6151:2:1;6136:18;;6129:36;6197:2;6182:18;;5877:329::o;6211:127::-;6272:10;6267:3;6263:20;6260:1;6253:31;6303:4;6300:1;6293:15;6327:4;6324:1;6317:15;6343:127;6404:10;6399:3;6395:20;6392:1;6385:31;6435:4;6432:1;6425:15;6459:4;6456:1;6449:15;6475:135;6514:3;6535:17;;;6532:43;;6555:18;;:::i;:::-;-1:-1:-1;6602:1:1;6591:13;;6475:135::o;6615:184::-;6685:6;6738:2;6726:9;6717:7;6713:23;6709:32;6706:52;;;6754:1;6751;6744:12;6706:52;-1:-1:-1;6777:16:1;;6615:184;-1:-1:-1;6615:184:1:o;7083:245::-;7150:6;7203:2;7191:9;7182:7;7178:23;7174:32;7171:52;;;7219:1;7216;7209:12;7171:52;7251:9;7245:16;7270:28;7292:5;7270:28;:::i;9185:128::-;9252:9;;;9273:11;;;9270:37;;;9287:18;;:::i;11594:125::-;11659:9;;;11680:10;;;11677:36;;;11693:18;;:::i;11724:168::-;11797:9;;;11828;;11845:15;;;11839:22;;11825:37;11815:71;;11866:18;;:::i;11897:217::-;11937:1;11963;11953:132;;12007:10;12002:3;11998:20;11995:1;11988:31;12042:4;12039:1;12032:15;12070:4;12067:1;12060:15;11953:132;-1:-1:-1;12099:9:1;;11897:217::o;12251:251::-;12321:6;12374:2;12362:9;12353:7;12349:23;12345:32;12342:52;;;12390:1;12387;12380:12;12342:52;12422:9;12416:16;12441:31;12466:5;12441:31;:::i;12507:980::-;12769:4;12817:3;12806:9;12802:19;12848:6;12837:9;12830:25;12874:2;12912:6;12907:2;12896:9;12892:18;12885:34;12955:3;12950:2;12939:9;12935:18;12928:31;12979:6;13014;13008:13;13045:6;13037;13030:22;13083:3;13072:9;13068:19;13061:26;;13122:2;13114:6;13110:15;13096:29;;13143:1;13153:195;13167:6;13164:1;13161:13;13153:195;;;13232:13;;-1:-1:-1;;;;;13228:39:1;13216:52;;13323:15;;;;13288:12;;;;13264:1;13182:9;13153:195;;;-1:-1:-1;;;;;;;13404:32:1;;;;13399:2;13384:18;;13377:60;-1:-1:-1;;;13468:3:1;13453:19;13446:35;13365:3;12507:980;-1:-1:-1;;;12507:980:1:o;14104:306::-;14192:6;14200;14208;14261:2;14249:9;14240:7;14236:23;14232:32;14229:52;;;14277:1;14274;14267:12;14229:52;14306:9;14300:16;14290:26;;14356:2;14345:9;14341:18;14335:25;14325:35;;14400:2;14389:9;14385:18;14379:25;14369:35;;14104:306;;;;;:::o

Swarm Source

ipfs://558cc7a1a4a2f85434985dbc1b6c81c0ca6d4b26f486708d8c32fe64b4d1f555

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.