ETH Price: $2,401.21 (-3.26%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve210584002024-10-27 17:16:478 days ago1730049407IN
0x169C06b4...14D75bB19
0 ETH0.000318986.85701344
Approve206557272024-09-01 12:29:5964 days ago1725193799IN
0x169C06b4...14D75bB19
0 ETH0.000092912
Approve206127432024-08-26 12:23:4770 days ago1724675027IN
0x169C06b4...14D75bB19
0 ETH0.00026825.76558937
Approve204960482024-08-10 5:13:4786 days ago1723266827IN
0x169C06b4...14D75bB19
0 ETH0.0005437611.76812921
Approve201619212024-06-24 13:44:47133 days ago1719236687IN
0x169C06b4...14D75bB19
0 ETH0.000325036.99624288
Approve201618792024-06-24 13:36:23133 days ago1719236183IN
0x169C06b4...14D75bB19
0 ETH0.000416368.99927153
Approve199694872024-05-28 16:13:59160 days ago1716912839IN
0x169C06b4...14D75bB19
0 ETH0.0008672218.66648571
Approve199226672024-05-22 3:11:35166 days ago1716347495IN
0x169C06b4...14D75bB19
0 ETH0.0005921512.72932122
Approve197699012024-04-30 18:25:23188 days ago1714501523IN
0x169C06b4...14D75bB19
0 ETH0.0005859812.61291994
Approve197226442024-04-24 3:45:23194 days ago1713930323IN
0x169C06b4...14D75bB19
0 ETH0.0005975712.84575407
Approve194112992024-03-11 10:36:23238 days ago1710153383IN
0x169C06b4...14D75bB19
0 ETH0.0034866274.95050501
Approve189077042023-12-31 20:01:11309 days ago1704052871IN
0x169C06b4...14D75bB19
0 ETH0.0005399111.68471114
Approve188882722023-12-29 2:29:35312 days ago1703816975IN
0x169C06b4...14D75bB19
0 ETH0.0008111717.55971603
Approve181964282023-09-23 5:27:11408 days ago1695446831IN
0x169C06b4...14D75bB19
0 ETH0.000359727.7427511
Approve181487632023-09-16 12:40:35415 days ago1694868035IN
0x169C06b4...14D75bB19
0 ETH0.00041378.94401351
Approve175116912023-06-19 5:23:47504 days ago1687152227IN
0x169C06b4...14D75bB19
0 ETH0.0006149423.49371717
Approve174241342023-06-06 21:41:35517 days ago1686087695IN
0x169C06b4...14D75bB19
0 ETH0.0010392322.46162208
Approve173963752023-06-02 23:43:47521 days ago1685749427IN
0x169C06b4...14D75bB19
0 ETH0.0011022723.8552252
Approve173605532023-05-28 22:41:11526 days ago1685313671IN
0x169C06b4...14D75bB19
0 ETH0.0011573425.04686914
Approve173030272023-05-20 20:33:23534 days ago1684614803IN
0x169C06b4...14D75bB19
0 ETH0.0014634331.49955543
Approve173016032023-05-20 15:43:47534 days ago1684597427IN
0x169C06b4...14D75bB19
0 ETH0.0021679946.66475086
Approve172516742023-05-13 14:34:23541 days ago1683988463IN
0x169C06b4...14D75bB19
0 ETH0.0019643142.51111682
Approve172438502023-05-12 11:31:47542 days ago1683891107IN
0x169C06b4...14D75bB19
0 ETH0.0019858642.9218124
Approve172423902023-05-12 6:35:23542 days ago1683873323IN
0x169C06b4...14D75bB19
0 ETH0.0027064858.57315054
Approve172423842023-05-12 6:34:11542 days ago1683873251IN
0x169C06b4...14D75bB19
0 ETH0.0029376963.23195363
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
206127442024-08-26 12:23:5970 days ago1724675039
0x169C06b4...14D75bB19
0.00588245 ETH
206127442024-08-26 12:23:5970 days ago1724675039
0x169C06b4...14D75bB19
0.00588245 ETH
201696872024-06-25 15:47:23132 days ago1719330443
0x169C06b4...14D75bB19
0.00613487 ETH
201696872024-06-25 15:47:23132 days ago1719330443
0x169C06b4...14D75bB19
0.00613487 ETH
188882782023-12-29 2:30:47312 days ago1703817047
0x169C06b4...14D75bB19
0.00687612 ETH
188882782023-12-29 2:30:47312 days ago1703817047
0x169C06b4...14D75bB19
0.00687612 ETH
175796362023-06-28 18:35:23495 days ago1687977323
0x169C06b4...14D75bB19
0.00729966 ETH
175796362023-06-28 18:35:23495 days ago1687977323
0x169C06b4...14D75bB19
0.00729966 ETH
174241382023-06-06 21:42:23517 days ago1686087743
0x169C06b4...14D75bB19
0.00812671 ETH
174241382023-06-06 21:42:23517 days ago1686087743
0x169C06b4...14D75bB19
0.00812671 ETH
173368532023-05-25 14:48:59529 days ago1685026139
0x169C06b4...14D75bB19
0.00879825 ETH
173368532023-05-25 14:48:59529 days ago1685026139
0x169C06b4...14D75bB19
0.00879825 ETH
173020392023-05-20 17:11:35534 days ago1684602695
0x169C06b4...14D75bB19
0.01001036 ETH
173020392023-05-20 17:11:35534 days ago1684602695
0x169C06b4...14D75bB19
0.01001036 ETH
172443862023-05-12 13:20:11542 days ago1683897611
0x169C06b4...14D75bB19
0.01041553 ETH
172443862023-05-12 13:20:11542 days ago1683897611
0x169C06b4...14D75bB19
0.01041553 ETH
172425442023-05-12 7:06:47542 days ago1683875207
0x169C06b4...14D75bB19
0.01181254 ETH
172425442023-05-12 7:06:47542 days ago1683875207
0x169C06b4...14D75bB19
0.01181254 ETH
172396642023-05-11 21:19:11543 days ago1683839951
0x169C06b4...14D75bB19
0.01315943 ETH
172396642023-05-11 21:19:11543 days ago1683839951
0x169C06b4...14D75bB19
0.01315943 ETH
172380922023-05-11 15:47:59543 days ago1683820079
0x169C06b4...14D75bB19
0.0143796 ETH
172380922023-05-11 15:47:59543 days ago1683820079
0x169C06b4...14D75bB19
0.0143796 ETH
172367182023-05-11 11:08:35543 days ago1683803315
0x169C06b4...14D75bB19
0.01463149 ETH
172367182023-05-11 11:08:35543 days ago1683803315
0x169C06b4...14D75bB19
0.01463149 ETH
172364612023-05-11 10:16:47543 days ago1683800207
0x169C06b4...14D75bB19
0.01477523 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KawaiiMoney

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
//
// Let's get $KAWAII
//
// Welcome to Kawaii Money—where kawaii waifu girls meet Ethereum and blockchain technology
//
// Website: https://kawaii.money
// Telegram: https://t.me/KawaiiMoney
// Twitter: https://twitter.com/KawaiiMoney_

pragma solidity ^0.7.6;

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

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

/**
 * BEP20 standard interface.
 */
interface IBEP20 {
    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 getOwner() external view returns (address);

    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 Auth {
    address public owner;
    mapping(address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER");
        _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED");
        _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);
}

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

    function WETH() external pure returns (address);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function removeLiquidityETH(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountToken, uint256 amountETH);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

contract KawaiiMoney is IBEP20, Auth {
    using SafeMath for uint256;
    // WETH 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
    address WBNB = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address DEV;

    string constant _name = "kawaii.money";
    string constant _symbol = "KAWAII";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 690_000_000 * 1e18;

    uint256 public _maxWalletToken = (_totalSupply * 2) / 100; // 2% of total supply

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

    mapping(address => bool) isFeeExempt;

    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 90;
    uint256 public devFee = 0;
    uint256 public totalFee = marketingFee + liquidityFee + devFee;
    uint256 public feeDenominator = 100;

    uint256 public buyMultiplier = 100;
    uint256 public sellMultiplier = 0;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public devFeeReceiver;

    uint256 targetLiquidity = 25;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    bool public tradingOpen = false;

    bool public buyCooldownEnabled = false;
    uint8 public cooldownTimerInterval = 1;
    mapping(address => uint256) private cooldownTimer;

    bool public swapEnabled = true;
    uint256 public swapThreshold = (_totalSupply * 10) / 10000;
    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() Auth(msg.sender) {
        DEV = msg.sender;
        // Uniswap V2 - 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(DEV)] = true;

        autoLiquidityReceiver = address(DEV);
        marketingFeeReceiver = address(DEV);
        devFeeReceiver = address(DEV);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

    function getOwner() external view override returns (address) {
        return owner;
    }

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

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

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != uint256(-1)) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000)
        external
        onlyOwner
    {
        _maxWalletToken = (_totalSupply * maxWallPercent_base1000) / 1000;
    }

    function setSwapPair(address _pair) external onlyOwner {
        pair = _pair;
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (!authorizations[sender] && !authorizations[recipient]) {
            require(tradingOpen, "Trading not open yet");
        }

        if (
            !authorizations[sender] &&
            recipient != address(this) &&
            recipient != address(DEAD) &&
            recipient != pair &&
            recipient != marketingFeeReceiver &&
            recipient != devFeeReceiver &&
            recipient != autoLiquidityReceiver
        ) {
            uint256 heldTokens = balanceOf(recipient);
            require(
                (heldTokens + amount) <= _maxWalletToken,
                "Total Holding is currently limited, you can not buy that much."
            );
        }

        if (shouldSwapBack()) {
            swapBack();
        }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );

        uint256 amountReceived = shouldTakeFee(sender)
            ? takeFee(sender, amount, (recipient == pair))
            : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

    function takeFee(
        address sender,
        uint256 amount,
        bool isSell
    ) internal returns (uint256) {
        uint256 multiplier = isSell ? sellMultiplier : buyMultiplier;
        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(
            feeDenominator * 100
        );

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountBNB = address(this).balance;
        payable(marketingFeeReceiver).transfer(
            (amountBNB * amountPercentage) / 100
        );
    }

    function clearStuckTokenBalance(uint256 amountPercentage)
        external
        onlyOwner
    {
        uint256 amountToken = balanceOf(address(this));
        _basicTransfer(
            address(this),
            marketingFeeReceiver,
            (amountToken * amountPercentage) / 100
        );
    }

    function clearStuckBalance_sender(uint256 amountPercentage)
        external
        onlyOwner
    {
        uint256 amountBNB = address(this).balance;
        payable(msg.sender).transfer((amountBNB * amountPercentage) / 100);
    }

    function set_buy_multiplier(uint256 _multiplier) public onlyOwner {
        buyMultiplier = _multiplier;
    }

    function set_sell_multiplier(uint256 _multiplier) public onlyOwner {
        sellMultiplier = _multiplier;
    }

    // switch Trading
    function tradingStatus(bool _status) public onlyOwner {
        tradingOpen = _status;
    }

    // enable cooldown between trades
    function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(
            targetLiquidity,
            targetLiquidityDenominator
        )
            ? 0
            : liquidityFee;
        uint256 amountToLiquify = swapThreshold
            .mul(dynamicLiquidityFee)
            .div(totalFee)
            .div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance.sub(balanceBefore);

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));

        uint256 amountBNBLiquidity = amountBNB
            .mul(dynamicLiquidityFee)
            .div(totalBNBFee)
            .div(2);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(
            totalBNBFee
        );
        uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee);

        (bool tmpSuccess, ) = payable(marketingFeeReceiver).call{
            value: amountBNBMarketing,
            gas: 30000
        }("");
        (tmpSuccess, ) = payable(devFeeReceiver).call{
            value: amountBNBDev,
            gas: 30000
        }("");

        // Supress warning msg
        tmpSuccess = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
        }
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFees(
        uint256 _liquidityFee,
        uint256 _marketingFee,
        uint256 _feeDenominator
    ) public onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        devFee = 0;
        totalFee = _liquidityFee.add(_marketingFee).add(devFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 3, "Fees cannot be more than 33%");
    }

    function setFeesAndMultipliers(
        uint256 _liquidityFee,
        uint256 _marketingFee,
        uint256 _feeDenominator,
        uint256 _buyMultiplier,
        uint256 _sellMultiplier
    ) external onlyOwner {
        setFees(_liquidityFee, _marketingFee, _feeDenominator);
        set_buy_multiplier(_buyMultiplier);
        set_sell_multiplier(_sellMultiplier);
    }

    function setFeeReceivers(
        address _autoLiquidityReceiver,
        address _marketingFeeReceiver,
        address _devFeeReceiver
    ) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator)
        external
        onlyOwner
    {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy)
        public
        view
        returns (uint256)
    {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy)
        public
        view
        returns (bool)
    {
        return getLiquidityBacking(accuracy) > target;
    }

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance_sender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckTokenBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","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":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"},{"internalType":"uint256","name":"_buyMultiplier","type":"uint256"},{"internalType":"uint256","name":"_sellMultiplier","type":"uint256"}],"name":"setFeesAndMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setSwapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"set_buy_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","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":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b023ac12ef364587bf2000000600655606460026006540281620000fe57fe5b046007556000600b55605a600c556000600d55600d54600b54600c540101600e556064600f5560646010556000601155601960155560646016556000601860146101000a81548160ff0219169083151502179055506000601860156101000a81548160ff0219169083151502179055506001601860166101000a81548160ff021916908360ff1602179055506001601a60006101000a81548160ff021916908315150217905550612710600a6006540281620001b657fe5b04601b55348015620001c757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200036057600080fd5b505afa15801562000375573d6000803e3d6000fd5b505050506040513d60208110156200038c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200044657600080fd5b505af11580156200045b573d6000803e3d6000fd5b505050506040513d60208110156200047257600080fd5b8101908080519060200190929190505050601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a3613d9a806200083f6000396000f3fe60806040526004361061031e5760003560e01c8063722b62ad116101ab578063d51ed1c8116100f7578063ec72d65f11610095578063f887ea401161006f578063f887ea4014611162578063fe9fbb80146111a3578063fed0d2a11461120a578063ffb54a991461123557610325565b8063ec72d65f14611085578063f0b37c04146110c0578063f2fde38b1461111157610325565b8063dab84ee7116100d1578063dab84ee714610f37578063dd62ed3e14610f78578063df20fd4914610ffd578063e96fada21461104457610325565b8063d51ed1c814610e1c578063d7c0103214610e6b578063da36d60714610efc57610325565b806398118cb411610164578063a9059cbb1161013e578063a9059cbb14610cca578063b6a5d7de14610d3b578063ca33e64c14610d8c578063cec10c1114610dcd57610325565b806398118cb414610bfb578063a3e9a14b14610c26578063a8aa1b3114610c8957610325565b8063722b62ad14610a3f57806373a432bb14610a6d57806378109e5414610abe578063893d20e814610ae95780638da5cb5b14610b2a57806395d89b4114610b6b57610325565b80632d5945671161026a578063571ac8b0116102235780636827e764116101fd5780636827e764146109575780636b67c4df146109825780636ddd1713146109ad57806370a08231146109da57610325565b8063571ac8b014610866578063617fe0ed146108cd578063658d4b7f146108fa57610325565b80632d594567146106e65780632f54bf6e146107305780633121c7c014610797578063313ce567146107c2578063364fc4f9146107f057806344a33fd21461082b57610325565b8063180b0d7e116102d75780631df4ccfc116102b15780631df4ccfc146105ba578063201e7991146105e557806323b872dd1461062a5780632b112e49146106bb57610325565b8063180b0d7e1461052957806318160ddd146105545780631da1db5e1461057f57610325565b80630445b6671461032a57806306fdde031461035557806309302dc6146103e5578063095ea7b3146104205780630d295980146104915780631161ae39146104ce57610325565b3661032557005b600080fd5b34801561033657600080fd5b5061033f611262565b6040518082815260200191505060405180910390f35b34801561036157600080fd5b5061036a611268565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103aa57808201518184015260208101905061038f565b50505050905090810190601f1680156103d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103f157600080fd5b5061041e6004803603602081101561040857600080fd5b81019080803590602001909291905050506112a5565b005b34801561042c57600080fd5b506104796004803603604081101561044357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611339565b60405180821515815260200191505060405180910390f35b34801561049d57600080fd5b506104cc600480360360208110156104b457600080fd5b8101908080351515906020019092919050505061142b565b005b3480156104da57600080fd5b50610511600480360360408110156104f157600080fd5b8101908080359060200190929190803590602001909291905050506114c3565b60405180821515815260200191505060405180910390f35b34801561053557600080fd5b5061053e6114d8565b6040518082815260200191505060405180910390f35b34801561056057600080fd5b506105696114de565b6040518082815260200191505060405180910390f35b34801561058b57600080fd5b506105b8600480360360208110156105a257600080fd5b81019080803590602001909291905050506114e8565b005b3480156105c657600080fd5b506105cf6115e1565b6040518082815260200191505060405180910390f35b3480156105f157600080fd5b506106286004803603604081101561060857600080fd5b8101908080359060200190929190803590602001909291905050506115e7565b005b34801561063657600080fd5b506106a36004803603606081101561064d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611674565b60405180821515815260200191505060405180910390f35b3480156106c757600080fd5b506106d0611874565b6040518082815260200191505060405180910390f35b3480156106f257600080fd5b5061072e6004803603604081101561070957600080fd5b81019080803515159060200190929190803560ff1690602001909291905050506118f6565b005b34801561073c57600080fd5b5061077f6004803603602081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119aa565b60405180821515815260200191505060405180910390f35b3480156107a357600080fd5b506107ac611a03565b6040518082815260200191505060405180910390f35b3480156107ce57600080fd5b506107d7611a09565b604051808260ff16815260200191505060405180910390f35b3480156107fc57600080fd5b506108296004803603602081101561081357600080fd5b8101908080359060200190929190505050611a12565b005b34801561083757600080fd5b506108646004803603602081101561084e57600080fd5b8101908080359060200190929190505050611a97565b005b34801561087257600080fd5b506108b56004803603602081101561088957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b6e565b60405180821515815260200191505060405180910390f35b3480156108d957600080fd5b506108e2611ba1565b60405180821515815260200191505060405180910390f35b34801561090657600080fd5b506109556004803603604081101561091d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611bb4565b005b34801561096357600080fd5b5061096c611c8a565b6040518082815260200191505060405180910390f35b34801561098e57600080fd5b50610997611c90565b6040518082815260200191505060405180910390f35b3480156109b957600080fd5b506109c2611c96565b60405180821515815260200191505060405180910390f35b3480156109e657600080fd5b50610a29600480360360208110156109fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ca9565b6040518082815260200191505060405180910390f35b348015610a4b57600080fd5b50610a54611cf2565b604051808260ff16815260200191505060405180910390f35b348015610a7957600080fd5b50610abc60048036036020811015610a9057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d05565b005b348015610aca57600080fd5b50610ad3611dc4565b6040518082815260200191505060405180910390f35b348015610af557600080fd5b50610afe611dca565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b3657600080fd5b50610b3f611df3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7757600080fd5b50610b80611e17565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bc0578082015181840152602081019050610ba5565b50505050905090810190601f168015610bed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c0757600080fd5b50610c10611e54565b6040518082815260200191505060405180910390f35b348015610c3257600080fd5b50610c87600480360360a0811015610c4957600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611e5a565b005b348015610c9557600080fd5b50610c9e611ef9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610cd657600080fd5b50610d2360048036036040811015610ced57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f1f565b60405180821515815260200191505060405180910390f35b348015610d4757600080fd5b50610d8a60048036036020811015610d5e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f34565b005b348015610d9857600080fd5b50610da1612009565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610dd957600080fd5b50610e1a60048036036060811015610df057600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061202f565b005b348015610e2857600080fd5b50610e5560048036036020811015610e3f57600080fd5b810190808035906020019092919050505061217c565b6040518082815260200191505060405180910390f35b348015610e7757600080fd5b50610efa60048036036060811015610e8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121ee565b005b348015610f0857600080fd5b50610f3560048036036020811015610f1f57600080fd5b8101908080359060200190929190505050612331565b005b348015610f4357600080fd5b50610f4c6123f7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f8457600080fd5b50610fe760048036036040811015610f9b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061241d565b6040518082815260200191505060405180910390f35b34801561100957600080fd5b506110426004803603604081101561102057600080fd5b81019080803515159060200190929190803590602001909291905050506124a4565b005b34801561105057600080fd5b50611059612544565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561109157600080fd5b506110be600480360360208110156110a857600080fd5b810190808035906020019092919050505061256a565b005b3480156110cc57600080fd5b5061110f600480360360208110156110e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125ef565b005b34801561111d57600080fd5b506111606004803603602081101561113457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126c5565b005b34801561116e57600080fd5b50611177612827565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156111af57600080fd5b506111f2600480360360208110156111c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061284d565b60405180821515815260200191505060405180910390f35b34801561121657600080fd5b5061121f6128a3565b6040518082815260200191505060405180910390f35b34801561124157600080fd5b5061124a6128a9565b60405180821515815260200191505060405180910390f35b601b5481565b60606040518060400160405280600c81526020017f6b61776169692e6d6f6e65790000000000000000000000000000000000000000815250905090565b6112ae336119aa565b611320576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e881600654028161132f57fe5b0460078190555050565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b611434336119aa565b6114a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b6000826114cf8361217c565b11905092915050565b600f5481565b6000600654905090565b6114f1336119aa565b611563576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848402816115b057fe5b049081150290604051600060405180830381858888f193505050501580156115dc573d6000803e3d6000fd5b505050565b600e5481565b6115f0336119aa565b611662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601581905550806016819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611860576117df826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128bc9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61186b84848461297c565b90509392505050565b60006118f16118a4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca9565b6118e36118d2600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca9565b600654612fe690919063ffffffff16565b612fe690919063ffffffff16565b905090565b6118ff336119aa565b611971576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601860156101000a81548160ff02191690831515021790555080601860166101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60105481565b60006012905090565b611a1b336119aa565b611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060108190555050565b611aa0336119aa565b611b12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484840281611b3d57fe5b049081150290604051600060405180830381858888f19350505050158015611b69573d6000803e3d6000fd5b505050565b6000611b9a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611339565b9050919050565b601860159054906101000a900460ff1681565b611bbd336119aa565b611c2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b600c5481565b601a60009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601860169054906101000a900460ff1681565b611d0e336119aa565b611d80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600681526020017f4b41574149490000000000000000000000000000000000000000000000000000815250905090565b600b5481565b611e63336119aa565b611ed5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611ee085858561202f565b611ee982611a12565b611ef28161256a565b5050505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f2c33848461297c565b905092915050565b611f3d336119aa565b611faf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612038336119aa565b6120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600b8190555081600c819055506000600d819055506120e7600d546120d9848661303090919063ffffffff16565b61303090919063ffffffff16565b600e8190555080600f819055506003600f548161210057fe5b04600e5410612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f466565732063616e6e6f74206265206d6f7265207468616e203333250000000081525060200191505060405180910390fd5b505050565b60006121e7612189611874565b6121d96121ca60026121bc601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca9565b6130b890919063ffffffff16565b856130b890919063ffffffff16565b61313e90919063ffffffff16565b9050919050565b6121f7336119aa565b612269576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61233a336119aa565b6123ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006123b730611ca9565b90506123f230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064858502816123ec57fe5b04613188565b505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6124ad336119aa565b61251f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601a60006101000a81548160ff02191690831515021790555080601b819055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612573336119aa565b6125e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060118190555050565b6125f8336119aa565b61266a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6126ce336119aa565b612740576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b601860149054906101000a900460ff1681565b6000838311158290612969576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561292e578082015181840152602081019050612913565b50505050905090810190601f16801561295b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601c60009054906101000a900460ff16156129a55761299e848484613188565b9050612fdf565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a495750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ad157601860149054906101000a900460ff16612ad0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b5757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612bb15750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c0b5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c655750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612cbf5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612d195750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612d8a576000612d2984611ca9565b90506007548382011115612d88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180613d27603e913960400191505060405180910390fd5b505b612d9261335b565b15612da057612d9f613432565b5b612e29826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128bc9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612e7785613a78565b612e815782612edd565b612edc8584601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614613acf565b5b9050612f3181600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303090919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061302883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bc565b905092915050565b6000808284019050838110156130ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156130cb5760009050613138565b60008284029050828482816130dc57fe5b0414613133576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613d066021913960400191505060405180910390fd5b809150505b92915050565b600061318083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c3f565b905092915050565b6000613213826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128bc9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132a882600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303090919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156133c85750601c60009054906101000a900460ff16155b80156133e05750601a60009054906101000a900460ff165b801561342d5750601b54600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601c60006101000a81548160ff021916908315150217905550600061345d6015546016546114c3565b61346957600b5461346c565b60005b905060006134ac600261349e600e5461349086601b546130b890919063ffffffff16565b61313e90919063ffffffff16565b61313e90919063ffffffff16565b905060006134c582601b54612fe690919063ffffffff16565b90506000600267ffffffffffffffff811180156134e157600080fd5b506040519080825280602002602001820160405280156135105781602001602082028036833780820191505090505b509050308160008151811061352157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061358b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561368e578082015181840152602081019050613673565b505050509050019650505050505050600060405180830381600087803b1580156136b757600080fd5b505af11580156136cb573d6000803e3d6000fd5b5050505060006136e48247612fe690919063ffffffff16565b905060006137106136ff60028961313e90919063ffffffff16565b600e54612fe690919063ffffffff16565b9050600061374c600261373e846137308c886130b890919063ffffffff16565b61313e90919063ffffffff16565b61313e90919063ffffffff16565b9050600061377783613769600c54876130b890919063ffffffff16565b61313e90919063ffffffff16565b905060006137a284613794600d54886130b890919063ffffffff16565b61313e90919063ffffffff16565b90506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d806000811461382b576040519150601f19603f3d011682016040523d82523d6000602084013e613830565b606091505b50509050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d80600081146138b9576040519150601f19603f3d011682016040523d82523d6000602084013e6138be565b606091505b5050809150506000905060008a1115613a5057601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b1580156139bd57600080fd5b505af11580156139d1573d6000803e3d6000fd5b50505050506040513d60608110156139e857600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051808381526020018281526020019250505060405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082613adf57601054613ae3565b6011545b90506000613b256064600f5402613b1784613b09600e548a6130b890919063ffffffff16565b6130b890919063ffffffff16565b61313e90919063ffffffff16565b9050613b7981600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303090919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3613c348186612fe690919063ffffffff16565b925050509392505050565b60008083118290613ceb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613cb0578082015181840152602081019050613c95565b50505050905090810190601f168015613cdd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613cf757fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea2646970667358221220682c2c078f406a6f011d35b7399baf764c5966f85aa750a66b3f28b9a7cd050964736f6c63430007060033

Deployed Bytecode

0x60806040526004361061031e5760003560e01c8063722b62ad116101ab578063d51ed1c8116100f7578063ec72d65f11610095578063f887ea401161006f578063f887ea4014611162578063fe9fbb80146111a3578063fed0d2a11461120a578063ffb54a991461123557610325565b8063ec72d65f14611085578063f0b37c04146110c0578063f2fde38b1461111157610325565b8063dab84ee7116100d1578063dab84ee714610f37578063dd62ed3e14610f78578063df20fd4914610ffd578063e96fada21461104457610325565b8063d51ed1c814610e1c578063d7c0103214610e6b578063da36d60714610efc57610325565b806398118cb411610164578063a9059cbb1161013e578063a9059cbb14610cca578063b6a5d7de14610d3b578063ca33e64c14610d8c578063cec10c1114610dcd57610325565b806398118cb414610bfb578063a3e9a14b14610c26578063a8aa1b3114610c8957610325565b8063722b62ad14610a3f57806373a432bb14610a6d57806378109e5414610abe578063893d20e814610ae95780638da5cb5b14610b2a57806395d89b4114610b6b57610325565b80632d5945671161026a578063571ac8b0116102235780636827e764116101fd5780636827e764146109575780636b67c4df146109825780636ddd1713146109ad57806370a08231146109da57610325565b8063571ac8b014610866578063617fe0ed146108cd578063658d4b7f146108fa57610325565b80632d594567146106e65780632f54bf6e146107305780633121c7c014610797578063313ce567146107c2578063364fc4f9146107f057806344a33fd21461082b57610325565b8063180b0d7e116102d75780631df4ccfc116102b15780631df4ccfc146105ba578063201e7991146105e557806323b872dd1461062a5780632b112e49146106bb57610325565b8063180b0d7e1461052957806318160ddd146105545780631da1db5e1461057f57610325565b80630445b6671461032a57806306fdde031461035557806309302dc6146103e5578063095ea7b3146104205780630d295980146104915780631161ae39146104ce57610325565b3661032557005b600080fd5b34801561033657600080fd5b5061033f611262565b6040518082815260200191505060405180910390f35b34801561036157600080fd5b5061036a611268565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103aa57808201518184015260208101905061038f565b50505050905090810190601f1680156103d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103f157600080fd5b5061041e6004803603602081101561040857600080fd5b81019080803590602001909291905050506112a5565b005b34801561042c57600080fd5b506104796004803603604081101561044357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611339565b60405180821515815260200191505060405180910390f35b34801561049d57600080fd5b506104cc600480360360208110156104b457600080fd5b8101908080351515906020019092919050505061142b565b005b3480156104da57600080fd5b50610511600480360360408110156104f157600080fd5b8101908080359060200190929190803590602001909291905050506114c3565b60405180821515815260200191505060405180910390f35b34801561053557600080fd5b5061053e6114d8565b6040518082815260200191505060405180910390f35b34801561056057600080fd5b506105696114de565b6040518082815260200191505060405180910390f35b34801561058b57600080fd5b506105b8600480360360208110156105a257600080fd5b81019080803590602001909291905050506114e8565b005b3480156105c657600080fd5b506105cf6115e1565b6040518082815260200191505060405180910390f35b3480156105f157600080fd5b506106286004803603604081101561060857600080fd5b8101908080359060200190929190803590602001909291905050506115e7565b005b34801561063657600080fd5b506106a36004803603606081101561064d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611674565b60405180821515815260200191505060405180910390f35b3480156106c757600080fd5b506106d0611874565b6040518082815260200191505060405180910390f35b3480156106f257600080fd5b5061072e6004803603604081101561070957600080fd5b81019080803515159060200190929190803560ff1690602001909291905050506118f6565b005b34801561073c57600080fd5b5061077f6004803603602081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119aa565b60405180821515815260200191505060405180910390f35b3480156107a357600080fd5b506107ac611a03565b6040518082815260200191505060405180910390f35b3480156107ce57600080fd5b506107d7611a09565b604051808260ff16815260200191505060405180910390f35b3480156107fc57600080fd5b506108296004803603602081101561081357600080fd5b8101908080359060200190929190505050611a12565b005b34801561083757600080fd5b506108646004803603602081101561084e57600080fd5b8101908080359060200190929190505050611a97565b005b34801561087257600080fd5b506108b56004803603602081101561088957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b6e565b60405180821515815260200191505060405180910390f35b3480156108d957600080fd5b506108e2611ba1565b60405180821515815260200191505060405180910390f35b34801561090657600080fd5b506109556004803603604081101561091d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611bb4565b005b34801561096357600080fd5b5061096c611c8a565b6040518082815260200191505060405180910390f35b34801561098e57600080fd5b50610997611c90565b6040518082815260200191505060405180910390f35b3480156109b957600080fd5b506109c2611c96565b60405180821515815260200191505060405180910390f35b3480156109e657600080fd5b50610a29600480360360208110156109fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ca9565b6040518082815260200191505060405180910390f35b348015610a4b57600080fd5b50610a54611cf2565b604051808260ff16815260200191505060405180910390f35b348015610a7957600080fd5b50610abc60048036036020811015610a9057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d05565b005b348015610aca57600080fd5b50610ad3611dc4565b6040518082815260200191505060405180910390f35b348015610af557600080fd5b50610afe611dca565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b3657600080fd5b50610b3f611df3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7757600080fd5b50610b80611e17565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bc0578082015181840152602081019050610ba5565b50505050905090810190601f168015610bed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c0757600080fd5b50610c10611e54565b6040518082815260200191505060405180910390f35b348015610c3257600080fd5b50610c87600480360360a0811015610c4957600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611e5a565b005b348015610c9557600080fd5b50610c9e611ef9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610cd657600080fd5b50610d2360048036036040811015610ced57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f1f565b60405180821515815260200191505060405180910390f35b348015610d4757600080fd5b50610d8a60048036036020811015610d5e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f34565b005b348015610d9857600080fd5b50610da1612009565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610dd957600080fd5b50610e1a60048036036060811015610df057600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061202f565b005b348015610e2857600080fd5b50610e5560048036036020811015610e3f57600080fd5b810190808035906020019092919050505061217c565b6040518082815260200191505060405180910390f35b348015610e7757600080fd5b50610efa60048036036060811015610e8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121ee565b005b348015610f0857600080fd5b50610f3560048036036020811015610f1f57600080fd5b8101908080359060200190929190505050612331565b005b348015610f4357600080fd5b50610f4c6123f7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f8457600080fd5b50610fe760048036036040811015610f9b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061241d565b6040518082815260200191505060405180910390f35b34801561100957600080fd5b506110426004803603604081101561102057600080fd5b81019080803515159060200190929190803590602001909291905050506124a4565b005b34801561105057600080fd5b50611059612544565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561109157600080fd5b506110be600480360360208110156110a857600080fd5b810190808035906020019092919050505061256a565b005b3480156110cc57600080fd5b5061110f600480360360208110156110e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125ef565b005b34801561111d57600080fd5b506111606004803603602081101561113457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126c5565b005b34801561116e57600080fd5b50611177612827565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156111af57600080fd5b506111f2600480360360208110156111c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061284d565b60405180821515815260200191505060405180910390f35b34801561121657600080fd5b5061121f6128a3565b6040518082815260200191505060405180910390f35b34801561124157600080fd5b5061124a6128a9565b60405180821515815260200191505060405180910390f35b601b5481565b60606040518060400160405280600c81526020017f6b61776169692e6d6f6e65790000000000000000000000000000000000000000815250905090565b6112ae336119aa565b611320576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e881600654028161132f57fe5b0460078190555050565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b611434336119aa565b6114a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b6000826114cf8361217c565b11905092915050565b600f5481565b6000600654905090565b6114f1336119aa565b611563576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848402816115b057fe5b049081150290604051600060405180830381858888f193505050501580156115dc573d6000803e3d6000fd5b505050565b600e5481565b6115f0336119aa565b611662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601581905550806016819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611860576117df826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128bc9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61186b84848461297c565b90509392505050565b60006118f16118a4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca9565b6118e36118d2600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca9565b600654612fe690919063ffffffff16565b612fe690919063ffffffff16565b905090565b6118ff336119aa565b611971576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601860156101000a81548160ff02191690831515021790555080601860166101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60105481565b60006012905090565b611a1b336119aa565b611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060108190555050565b611aa0336119aa565b611b12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484840281611b3d57fe5b049081150290604051600060405180830381858888f19350505050158015611b69573d6000803e3d6000fd5b505050565b6000611b9a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611339565b9050919050565b601860159054906101000a900460ff1681565b611bbd336119aa565b611c2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b600c5481565b601a60009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601860169054906101000a900460ff1681565b611d0e336119aa565b611d80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600681526020017f4b41574149490000000000000000000000000000000000000000000000000000815250905090565b600b5481565b611e63336119aa565b611ed5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611ee085858561202f565b611ee982611a12565b611ef28161256a565b5050505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f2c33848461297c565b905092915050565b611f3d336119aa565b611faf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612038336119aa565b6120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600b8190555081600c819055506000600d819055506120e7600d546120d9848661303090919063ffffffff16565b61303090919063ffffffff16565b600e8190555080600f819055506003600f548161210057fe5b04600e5410612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f466565732063616e6e6f74206265206d6f7265207468616e203333250000000081525060200191505060405180910390fd5b505050565b60006121e7612189611874565b6121d96121ca60026121bc601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca9565b6130b890919063ffffffff16565b856130b890919063ffffffff16565b61313e90919063ffffffff16565b9050919050565b6121f7336119aa565b612269576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61233a336119aa565b6123ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006123b730611ca9565b90506123f230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064858502816123ec57fe5b04613188565b505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6124ad336119aa565b61251f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601a60006101000a81548160ff02191690831515021790555080601b819055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612573336119aa565b6125e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060118190555050565b6125f8336119aa565b61266a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6126ce336119aa565b612740576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b601860149054906101000a900460ff1681565b6000838311158290612969576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561292e578082015181840152602081019050612913565b50505050905090810190601f16801561295b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601c60009054906101000a900460ff16156129a55761299e848484613188565b9050612fdf565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a495750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ad157601860149054906101000a900460ff16612ad0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b5757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612bb15750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c0b5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c655750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612cbf5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612d195750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612d8a576000612d2984611ca9565b90506007548382011115612d88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180613d27603e913960400191505060405180910390fd5b505b612d9261335b565b15612da057612d9f613432565b5b612e29826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128bc9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612e7785613a78565b612e815782612edd565b612edc8584601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614613acf565b5b9050612f3181600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303090919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061302883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bc565b905092915050565b6000808284019050838110156130ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156130cb5760009050613138565b60008284029050828482816130dc57fe5b0414613133576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613d066021913960400191505060405180910390fd5b809150505b92915050565b600061318083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c3f565b905092915050565b6000613213826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128bc9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132a882600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303090919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156133c85750601c60009054906101000a900460ff16155b80156133e05750601a60009054906101000a900460ff165b801561342d5750601b54600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601c60006101000a81548160ff021916908315150217905550600061345d6015546016546114c3565b61346957600b5461346c565b60005b905060006134ac600261349e600e5461349086601b546130b890919063ffffffff16565b61313e90919063ffffffff16565b61313e90919063ffffffff16565b905060006134c582601b54612fe690919063ffffffff16565b90506000600267ffffffffffffffff811180156134e157600080fd5b506040519080825280602002602001820160405280156135105781602001602082028036833780820191505090505b509050308160008151811061352157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061358b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561368e578082015181840152602081019050613673565b505050509050019650505050505050600060405180830381600087803b1580156136b757600080fd5b505af11580156136cb573d6000803e3d6000fd5b5050505060006136e48247612fe690919063ffffffff16565b905060006137106136ff60028961313e90919063ffffffff16565b600e54612fe690919063ffffffff16565b9050600061374c600261373e846137308c886130b890919063ffffffff16565b61313e90919063ffffffff16565b61313e90919063ffffffff16565b9050600061377783613769600c54876130b890919063ffffffff16565b61313e90919063ffffffff16565b905060006137a284613794600d54886130b890919063ffffffff16565b61313e90919063ffffffff16565b90506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d806000811461382b576040519150601f19603f3d011682016040523d82523d6000602084013e613830565b606091505b50509050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d80600081146138b9576040519150601f19603f3d011682016040523d82523d6000602084013e6138be565b606091505b5050809150506000905060008a1115613a5057601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b1580156139bd57600080fd5b505af11580156139d1573d6000803e3d6000fd5b50505050506040513d60608110156139e857600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051808381526020018281526020019250505060405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082613adf57601054613ae3565b6011545b90506000613b256064600f5402613b1784613b09600e548a6130b890919063ffffffff16565b6130b890919063ffffffff16565b61313e90919063ffffffff16565b9050613b7981600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303090919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3613c348186612fe690919063ffffffff16565b925050509392505050565b60008083118290613ceb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613cb0578082015181840152602081019050613c95565b50505050905090810190601f168015613cdd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613cf757fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea2646970667358221220682c2c078f406a6f011d35b7399baf764c5966f85aa750a66b3f28b9a7cd050964736f6c63430007060033

Deployed Bytecode Sourcemap

6117:13076:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7677:58;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8907:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10434:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9432:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14570:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18944:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7059:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8589:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13482:243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6990:62;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18374:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10008:418;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18587:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14711:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3253:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7103:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8699:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14305:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14058:239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9688:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7492:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16885:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6958:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6919:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7640:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9109:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7537:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10639:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6636:57;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9009:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2646:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8801:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6881:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17456:387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7424:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9812:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3046:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7186:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17012:436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18737:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17851:329;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13733:317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7271:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9236:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18188:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7229:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14425:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3148:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3479:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7393:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3364:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7144:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7452:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7677:58;;;;:::o;8907:94::-;8955:13;8988:5;;;;;;;;;;;;;;;;;8981:12;;8907:94;:::o;10434:197::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10619:4:::1;10592:23;10577:12;;:38;10576:47;;;;;;10558:15;:65;;;;10434:197:::0;:::o;9432:248::-;9534:4;9591:6;9556:11;:23;9568:10;9556:23;;;;;;;;;;;;;;;:32;9580:7;9556:32;;;;;;;;;;;;;;;:41;;;;9634:7;9613:37;;9622:10;9613:37;;;9643:6;9613:37;;;;;;;;;;;;;;;;;;9668:4;9661:11;;9432:248;;;;:::o;14570:94::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14649:7:::1;14635:11;;:21;;;;;;;;;;;;;;;;;;14570:94:::0;:::o;18944:182::-;19051:4;19112:6;19080:29;19100:8;19080:19;:29::i;:::-;:38;19073:45;;18944:182;;;;:::o;7059:35::-;;;;:::o;8589:102::-;8644:7;8671:12;;8664:19;;8589:102;:::o;13482:243::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13565:17:::1;13585:21;13565:41;;13625:20;;;;;;;;;;;13617:38;;:100;13703:3;13683:16;13671:9;:28;13670:36;;;;;;13617:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;2920:1;13482:243:::0;:::o;6990:62::-;;;;:::o;18374:205::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18512:7:::1;18494:15;:25;;;;18559:12;18530:26;:41;;;;18374:205:::0;;:::o;10008:418::-;10142:4;10206:2;10163:11;:19;10175:6;10163:19;;;;;;;;;;;;;;;:31;10183:10;10163:31;;;;;;;;;;;;;;;;:46;10159:200;;10260:87;10314:6;10260:87;;;;;;;;;;;;;;;;;:11;:19;10272:6;10260:19;;;;;;;;;;;;;;;:31;10280:10;10260:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;10226:11;:19;10238:6;10226:19;;;;;;;;;;;;;;;:31;10246:10;10226:31;;;;;;;;;;;;;;;:121;;;;10159:200;10378:40;10392:6;10400:9;10411:6;10378:13;:40::i;:::-;10371:47;;10008:418;;;;;:::o;18587:142::-;18640:7;18667:54;18705:15;18715:4;;;;;;;;;;;18705:9;:15::i;:::-;18667:33;18684:15;18694:4;;;;;;;;;;;18684:9;:15::i;:::-;18667:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18660:61;;18587:142;:::o;14711:164::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14816:7:::1;14795:18;;:28;;;;;;;;;;;;;;;;;;14858:9;14834:21;;:33;;;;;;;;;;;;;;;;;;14711:164:::0;;:::o;3253:103::-;3308:4;3343:5;;;;;;;;;;;3332:16;;:7;:16;;;3325:23;;3253:103;;;:::o;7103:34::-;;;;:::o;8699:94::-;8751:5;6575:2;8769:16;;8699:94;:::o;14305:112::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14398:11:::1;14382:13;:27;;;;14305:112:::0;:::o;14058:239::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14171:17:::1;14191:21;14171:41;;14231:10;14223:28;;:66;14285:3;14265:16;14253:9;:28;14252:36;;;;;;14223:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;2920:1;14058:239:::0;:::o;9688:116::-;9743:4;9767:29;9775:7;9792:2;9767:7;:29::i;:::-;9760:36;;9688:116;;;:::o;7492:38::-;;;;;;;;;;;;;:::o;16885:119::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16990:6:::1;16968:11;:19;16980:6;16968:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16885:119:::0;;:::o;6958:25::-;;;;:::o;6919:32::-;;;;:::o;7640:30::-;;;;;;;;;;;;;:::o;9109:119::-;9175:7;9202:9;:18;9212:7;9202:18;;;;;;;;;;;;;;;;9195:25;;9109:119;;;:::o;7537:38::-;;;;;;;;;;;;;:::o;10639:86::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10712:5:::1;10705:4;;:12;;;;;;;;;;;;;;;;;;10639:86:::0;:::o;6636:57::-;;;;:::o;9009:92::-;9061:7;9088:5;;;;;;;;;;;9081:12;;9009:92;:::o;2646:20::-;;;;;;;;;;;;:::o;8801:98::-;8851:13;8884:7;;;;;;;;;;;;;;;;;8877:14;;8801:98;:::o;6881:31::-;;;;:::o;17456:387::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17689:54:::1;17697:13;17712;17727:15;17689:7;:54::i;:::-;17754:34;17773:14;17754:18;:34::i;:::-;17799:36;17819:15;17799:19;:36::i;:::-;17456:387:::0;;;;;:::o;7424:19::-;;;;;;;;;;;;;:::o;9812:188::-;9919:4;9948:44;9962:10;9974:9;9985:6;9948:13;:44::i;:::-;9941:51;;9812:188;;;;:::o;3046:94::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3128:4:::1;3106:14:::0;:19:::1;3121:3;3106:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3046:94:::0;:::o;7186:36::-;;;;;;;;;;;;;:::o;17012:436::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17177:13:::1;17162:12;:28;;;;17216:13;17201:12;:28;;;;17249:1;17240:6;:10;;;;17272:44;17309:6;;17272:32;17290:13;17272;:17;;:32;;;;:::i;:::-;:36;;:44;;;;:::i;:::-;17261:8;:55;;;;17344:15;17327:14;:32;;;;17406:1;17389:14;;:18;;;;;;17378:8;;:29;17370:70;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17012:436:::0;;;:::o;18737:199::-;18832:7;18864:64;18905:22;:20;:22::i;:::-;18864:36;18877:22;18897:1;18877:15;18887:4;;;;;;;;;;;18877:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;18864:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;18857:71;;18737:199;;;:::o;17851:329::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18052:22:::1;18028:21;;:46;;;;;;;;;;;;;;;;;;18108:21;18085:20;;:44;;;;;;;;;;;;;;;;;;18157:15;18140:14;;:32;;;;;;;;;;;;;;;;;;17851:329:::0;;;:::o;13733:317::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13844:19:::1;13866:24;13884:4;13866:9;:24::i;:::-;13844:46;;13901:141;13938:4;13958:20;;;;;;;;;;;14028:3;14008:16;13994:11;:30;13993:38;;;;;;13901:14;:141::i;:::-;;2920:1;13733:317:::0;:::o;7271:29::-;;;;;;;;;;;;;:::o;9236:188::-;9356:7;9388:11;:19;9400:6;9388:19;;;;;;;;;;;;;;;:28;9408:7;9388:28;;;;;;;;;;;;;;;;9381:35;;9236:188;;;;:::o;18188:178::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18316:8:::1;18302:11;;:22;;;;;;;;;;;;;;;;;;18351:7;18335:13;:23;;;;18188:178:::0;;:::o;7229:35::-;;;;;;;;;;;;;:::o;14425:114::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14520:11:::1;14503:14;:28;;;;14425:114:::0;:::o;3148:97::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3232:5:::1;3210:14;:19;3225:3;3210:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3148:97:::0;:::o;3479:173::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3563:3:::1;3555:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3599:4;3577:14:::0;:19:::1;3592:3;3577:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3619:25;3640:3;3619:25;;;;;;;;;;;;;;;;;;;;3479:173:::0;:::o;7393:24::-;;;;;;;;;;;;;:::o;3364:107::-;3420:4;3444:14;:19;3459:3;3444:19;;;;;;;;;;;;;;;;;;;;;;;;;3437:26;;3364:107;;;:::o;7144:33::-;;;;:::o;7452:31::-;;;;;;;;;;;;;:::o;667:226::-;787:7;820:1;815;:6;;823:12;807:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;847:9;863:1;859;:5;847:17;;884:1;877:8;;;667:226;;;;;:::o;10733:1475::-;10859:4;10880:6;;;;;;;;;;;10876:87;;;10910:41;10925:6;10933:9;10944:6;10910:14;:41::i;:::-;10903:48;;;;10876:87;10980:14;:22;10995:6;10980:22;;;;;;;;;;;;;;;;;;;;;;;;;10979:23;:53;;;;;11007:14;:25;11022:9;11007:25;;;;;;;;;;;;;;;;;;;;;;;;;11006:26;10979:53;10975:130;;;11057:11;;;;;;;;;;;11049:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10975:130;11136:14;:22;11151:6;11136:22;;;;;;;;;;;;;;;;;;;;;;;;;11135:23;:66;;;;;11196:4;11175:26;;:9;:26;;;;11135:66;:109;;;;;11239:4;;;;;;;;;;;11218:26;;:9;:26;;;;11135:109;:143;;;;;11274:4;;;;;;;;;;;11261:17;;:9;:17;;;;11135:143;:193;;;;;11308:20;;;;;;;;;;;11295:33;;:9;:33;;;;11135:193;:237;;;;;11358:14;;;;;;;;;;;11345:27;;:9;:27;;;;11135:237;:288;;;;;11402:21;;;;;;;;;;;11389:34;;:9;:34;;;;11135:288;11117:565;;;11450:18;11471:20;11481:9;11471;:20::i;:::-;11450:41;;11557:15;;11546:6;11533:10;:19;11532:40;;11506:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11117:565;;11698:16;:14;:16::i;:::-;11694:59;;;11731:10;:8;:10::i;:::-;11694:59;11812:90;11848:6;11812:90;;;;;;;;;;;;;;;;;:9;:17;11822:6;11812:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;11792:9;:17;11802:6;11792:17;;;;;;;;;;;;;;;:110;;;;11915:22;11940:21;11954:6;11940:13;:21::i;:::-;:103;;12037:6;11940:103;;;11977:44;11985:6;11993;12015:4;;;;;;;;;;;12002:17;;:9;:17;;;11977:7;:44::i;:::-;11940:103;11915:128;;12077:40;12102:14;12077:9;:20;12087:9;12077:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12054:9;:20;12064:9;12054:20;;;;;;;;;;;;;;;:63;;;;12152:9;12135:43;;12144:6;12135:43;;;12163:14;12135:43;;;;;;;;;;;;;;;;;;12196:4;12189:11;;;10733:1475;;;;;;:::o;523:136::-;581:7;608:43;612:1;615;608:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;601:50;;523:136;;;;:::o;334:181::-;392:7;412:9;428:1;424;:5;412:17;;453:1;448;:6;;440:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;506:1;499:8;;;334:181;;;;:::o;901:250::-;959:7;988:1;983;:6;979:47;;;1013:1;1006:8;;;;979:47;1038:9;1054:1;1050;:5;1038:17;;1083:1;1078;1074;:5;;;;;;:10;1066:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1142:1;1135:8;;;901:250;;;;;:::o;1159:132::-;1217:7;1244:39;1248:1;1251;1244:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1237:46;;1159:132;;;;:::o;12216:401::-;12343:4;12380:90;12416:6;12380:90;;;;;;;;;;;;;;;;;:9;:17;12390:6;12380:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;12360:9;:17;12370:6;12360:17;;;;;;;;;;;;;;;:110;;;;12504:32;12529:6;12504:9;:20;12514:9;12504:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12481:9;:20;12491:9;12481:20;;;;;;;;;;;;;;;:55;;;;12569:9;12552:35;;12561:6;12552:35;;;12580:6;12552:35;;;;;;;;;;;;;;;;;;12605:4;12598:11;;12216:401;;;;;:::o;13252:222::-;13301:4;13352;;;;;;;;;;;13338:18;;:10;:18;;;;:42;;;;;13374:6;;;;;;;;;;;13373:7;13338:42;:70;;;;;13397:11;;;;;;;;;;;13338:70;:128;;;;;13453:13;;13425:9;:24;13443:4;13425:24;;;;;;;;;;;;;;;;:41;;13338:128;13318:148;;13252:222;:::o;14883:1994::-;7800:4;7791:6;;:13;;;;;;;;;;;;;;;;;;14932:27:::1;14962:97;14992:15;;15022:26;;14962:15;:97::i;:::-;:142;;15092:12;;14962:142;;;15075:1;14962:142;14932:172;;15115:23;15141:101;15240:1;15141:80;15212:8;;15141:52;15173:19;15141:13;;:31;;:52;;;;:::i;:::-;:70;;:80;;;;:::i;:::-;:98;;:101;;;;:::i;:::-;15115:127;;15253:20;15276:34;15294:15;15276:13;;:17;;:34;;;;:::i;:::-;15253:57;;15323:21;15361:1;15347:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15323:40;;15392:4;15374;15379:1;15374:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;15418:4;;;;;;;;;;;15408;15413:1;15408:7;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;15435:21;15459;15435:45;;15493:6;;;;;;;;;;;:57;;;15565:12;15592:1;15608:4;15635;15655:15;15493:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15694:17;15714:40;15740:13;15714:21;:25;;:40;;;;:::i;:::-;15694:60;;15767:19;15789:40;15802:26;15826:1;15802:19;:23;;:26;;;;:::i;:::-;15789:8;;:12;;:40;;;;:::i;:::-;15767:62;;15842:26;15871:100;15969:1;15871:79;15938:11;15871:48;15899:19;15871:9;:27;;:48;;;;:::i;:::-;:66;;:79;;;;:::i;:::-;:97;;:100;;;;:::i;:::-;15842:129;;15982:26;16011:68;16057:11;16011:27;16025:12;;16011:9;:13;;:27;;;;:::i;:::-;:31;;:68;;;;:::i;:::-;15982:97;;16090:20;16113:38;16139:11;16113:21;16127:6;;16113:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16090:61;;16165:15;16194:20;;;;;;;;;;;16186:34;;16242:18;16280:5;16186:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16164:136;;;16336:14;;;;;;;;;;;16328:28;;16378:12;16410:5;16328:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16311:119;;;;;16488:5;16475:18;;16528:1;16510:15;:19;16506:364;;;16546:6;;;;;;;;;;;:22;;;16576:18;16622:4;16646:15;16680:1;16700::::0;16720:21:::1;;;;;;;;;;;16760:15;16546:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16810:48;16822:18;16842:15;16810:48;;;;;;;;;;;;;;;;;;;;;;;;16506:364;7815:1;;;;;;;;;;;7836:5:::0;7827:6;;:14;;;;;;;;;;;;;;;;;;14883:1994::o;12625:114::-;12687:4;12712:11;:19;12724:6;12712:19;;;;;;;;;;;;;;;;;;;;;;;;;12711:20;12704:27;;12625:114;;;:::o;12747:497::-;12861:7;12881:18;12902:6;:39;;12928:13;;12902:39;;;12911:14;;12902:39;12881:60;;12952:17;12972:86;13044:3;13027:14;;:20;12972:36;12997:10;12972:20;12983:8;;12972:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:86;;;;:::i;:::-;12952:106;;13098:39;13127:9;13098;:24;13116:4;13098:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;13071:9;:24;13089:4;13071:24;;;;;;;;;;;;;;;:66;;;;13178:4;13153:42;;13162:6;13153:42;;;13185:9;13153:42;;;;;;;;;;;;;;;;;;13215:21;13226:9;13215:6;:10;;:21;;;;:::i;:::-;13208:28;;;;12747:497;;;;;:::o;1299:223::-;1419:7;1451:1;1447;:5;1454:12;1439:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1478:9;1494:1;1490;:5;;;;;;1478:17;;1513:1;1506:8;;;1299:223;;;;;:::o

Swarm Source

ipfs://682c2c078f406a6f011d35b7399baf764c5966f85aa750a66b3f28b9a7cd0509

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.