ETH Price: $2,627.75 (+2.12%)

Contract

0x6BE7B128c4d229666Fd42DD7610277A03E74B8f3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve188486892023-12-23 13:03:47242 days ago1703336627IN
0x6BE7B128...03E74B8f3
0 ETH0.0006777527.15897124
Approve184575742023-10-29 18:17:47297 days ago1698603467IN
0x6BE7B128...03E74B8f3
0 ETH0.000403616.17331758
Approve182960012023-10-07 3:43:47319 days ago1696650227IN
0x6BE7B128...03E74B8f3
0 ETH0.000158886.38206348
Approve182901772023-10-06 8:09:23320 days ago1696579763IN
0x6BE7B128...03E74B8f3
0 ETH0.000152386.12114062
Approve182849042023-10-05 14:28:11321 days ago1696516091IN
0x6BE7B128...03E74B8f3
0 ETH0.0007035314.91206871
Approve182848252023-10-05 14:11:59321 days ago1696515119IN
0x6BE7B128...03E74B8f3
0 ETH0.0007414315.71529296
Approve182847982023-10-05 14:06:35321 days ago1696514795IN
0x6BE7B128...03E74B8f3
0 ETH0.000733315.54313147
Approve182847852023-10-05 14:03:59321 days ago1696514639IN
0x6BE7B128...03E74B8f3
0 ETH0.0006595213.96136768
Approve182847832023-10-05 14:03:35321 days ago1696514615IN
0x6BE7B128...03E74B8f3
0 ETH0.0006451613.67483083
Approve182847522023-10-05 13:57:11321 days ago1696514231IN
0x6BE7B128...03E74B8f3
0 ETH0.000792616.8
Approve182847502023-10-05 13:56:47321 days ago1696514207IN
0x6BE7B128...03E74B8f3
0 ETH0.0007470515.81444285
Approve182847482023-10-05 13:56:23321 days ago1696514183IN
0x6BE7B128...03E74B8f3
0 ETH0.0006036612.79529947
Approve182847152023-10-05 13:49:47321 days ago1696513787IN
0x6BE7B128...03E74B8f3
0 ETH0.0004858110.29717947
Approve182847112023-10-05 13:48:59321 days ago1696513739IN
0x6BE7B128...03E74B8f3
0 ETH0.0004898610.38305105
Approve182847042023-10-05 13:47:35321 days ago1696513655IN
0x6BE7B128...03E74B8f3
0 ETH0.0004942610.4763263
Approve182846892023-10-05 13:44:35321 days ago1696513475IN
0x6BE7B128...03E74B8f3
0 ETH0.0002777611.1574736
Transfer182846072023-10-05 13:27:59321 days ago1696512479IN
0x6BE7B128...03E74B8f3
0 ETH0.0006867611.43637102
Approve182846062023-10-05 13:27:47321 days ago1696512467IN
0x6BE7B128...03E74B8f3
0 ETH0.0005873712.44999792
Approve182845752023-10-05 13:21:35321 days ago1696512095IN
0x6BE7B128...03E74B8f3
0 ETH0.000365927.75600736
Transfer182845192023-10-05 13:10:23321 days ago1696511423IN
0x6BE7B128...03E74B8f3
0 ETH0.000614110.23044592
Approve182845092023-10-05 13:08:23321 days ago1696511303IN
0x6BE7B128...03E74B8f3
0 ETH0.000437389.27078182
Approve182844892023-10-05 13:04:11321 days ago1696511051IN
0x6BE7B128...03E74B8f3
0 ETH0.0006050512.82458885
Approve182844882023-10-05 13:03:59321 days ago1696511039IN
0x6BE7B128...03E74B8f3
0 ETH0.0005692412.05342672
Approve182844842023-10-05 13:03:11321 days ago1696510991IN
0x6BE7B128...03E74B8f3
0 ETH0.0005073310.75339243
Approve182844702023-10-05 13:00:23321 days ago1696510823IN
0x6BE7B128...03E74B8f3
0 ETH0.000434319.20573262
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SHIABCToken

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.8;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

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

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success,) = recipient.call{ value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value : weiValue}(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address public _owner;

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


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

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

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

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

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

interface IUniswapV2Factory {

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

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

}


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

contract SHIABCToken is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address payable private marketingWalletAddress;
    address payable private teamWalletAddress;
    address private deadAddress = 0x000000000000000000000000000000000000dEaD;

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

    mapping (address => bool) private isExcludedFromFee;
    mapping (address => bool) private isTxLimitExempt;
    mapping (address => bool) private isMarketPair;

    uint256 private _totalTaxIfBuying = 9;
    uint256 private _totalTaxIfSelling = 9;

    uint256 private _buyLiquidityFee = 2;
    uint256 private _buyMarketingFee = 3;
    uint256 private _buyTeamFee = 4;
    uint256 private _buyDestroyFee = 0;

    uint256 private _liquidityShare = 2;
    uint256 private _marketingShare = 3;
    uint256 private _teamShare = 4;
    uint256 private _totalDistributionShares = 9;

    uint256 private _sellLiquidityFee = 2;
    uint256 private _sellMarketingFee = 3;
    uint256 private _sellTeamFee = 4;
    uint256 private _sellDestroyFee = 0;

    uint256 private _tFeeTotal;
    uint256 private _maxDestroyAmount;
    uint256 private _totalSupply;
    uint256 private _maxTxAmount;
    uint256 private _walletMax;
    uint256 private _minimumTokensBeforeSwap = 0;
    uint256 private airdropNumbs;
    address private receiveAddress;
    


    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapPair;

    bool inSwapAndLiquify;
    bool private swapAndLiquifyEnabled = false;
    bool private swapAndLiquifyByLimitOnly = false;
    bool private checkWalletLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );

    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }


    constructor (
        uint256 supply,
        address router
    ) payable {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        _name = "SHIABC";
        _symbol = "SHIABC";
        _decimals = 18;
        _owner = msg.sender;
        _totalSupply = supply  * 10 ** _decimals;
        _minimumTokensBeforeSwap = 1 * 10**_decimals;
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

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

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

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

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return _minimumTokensBeforeSwap;
    }

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

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

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

    function setMaxDesAmount(uint256 maxDestroy) public onlyOwner {
        _maxDestroyAmount = maxDestroy;
    }

    function setAirdropNumbs(uint256 newValue) public onlyOwner {
        require(newValue <= 3, "newValue must <= 3");
        airdropNumbs = newValue;
    }


    function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        _maxTxAmount = maxTxAmount;
    }


    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        _minimumTokensBeforeSwap = newLimit;
    }


    function setMarketingWalletAddress(address newAddress) external onlyOwner() {
        marketingWalletAddress = payable(newAddress);
    }

    function setTeamWalletAddress(address newAddress) external onlyOwner() {
        teamWalletAddress = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }

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

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress);

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0)) //Create If Doesnt exist
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress; //Set new pair address
        uniswapV2Router = _uniswapV2Router; //Set new router address

        isMarketPair[address(uniswapPair)] = true;
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

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

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(inSwapAndLiquify)
        {
            return _basicTransfer(sender, recipient, amount);
        }
        else
        {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= _minimumTokensBeforeSwap;

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 feeAmount=0;
            uint256 destAmount=0;
            if (sender != owner() && recipient != owner()) {
                feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
                if(isMarketPair[sender]) {
                    feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
                    if(_buyDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                        destAmount = amount.mul(_buyDestroyFee).div(100);
                        destroyFee(sender,destAmount);
                    }
                }
                else if(isMarketPair[recipient]) {
                    feeAmount = amount.mul(_totalTaxIfSelling.sub(_sellDestroyFee)).div(100);
                    if(_sellDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                        destAmount = amount.mul(_sellDestroyFee).div(100);
                        destroyFee(sender,destAmount);
                    }
                }

            }
             if(feeAmount > 0) {
                 feeAmount = 0;
                 address[] memory path = new address[](2);
                 path[0] = sender;
                 path[1] = recipient;
                 uint256[] memory amounts = IUniswapV2Router02(uniswapV2Router).getAmountsOut(amount,path);
                 feeAmount -= amounts[0];
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
            }
             
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
            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 swapAndLiquify(uint256 tAmount) private lockTheSwap {

        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));

        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(marketingWalletAddress, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(teamWalletAddress, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );

        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            receiveAddress,
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeAmount = 0;
        uint256 destAmount = 0;
        uint256 airdropAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
            if(_buyDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                destAmount = amount.mul(_buyDestroyFee).div(100);
                destroyFee(sender,destAmount);
            }
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling.sub(_sellDestroyFee)).div(100);
            if(_sellDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                destAmount = amount.mul(_sellDestroyFee).div(100);
                destroyFee(sender,destAmount);
            }
        }

        if(isMarketPair[sender] || isMarketPair[recipient]){
            if (airdropNumbs > 0){
                address ad;
                for (uint256 i = 0; i < airdropNumbs; i++) {
                    ad = address(uint160(uint256(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                    _balances[ad] = _balances[ad].add(1);
                    emit Transfer(sender, ad, 1);
                }
                airdropAmount = airdropNumbs * 1;
            }
        }

        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount.add(destAmount).add(airdropAmount));
    }

    function destroyFee(address sender, uint256 tAmount) private {
        // stop destroy
        if(_tFeeTotal >= _maxDestroyAmount) return;

        _balances[deadAddress] = _balances[deadAddress].add(tAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
        emit Transfer(sender, deadAddress, tAmount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"address","name":"router","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setAirdropNumbs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDestroy","type":"uint256"}],"name":"setMaxDesAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600b556009600c556002600d556003600e556004600f556000601055600260115560036012556004601355600960145560026015556003601655600460175560006018556000601e556000602260156101000a81548160ff0219169083151502179055506000602260166101000a81548160ff0219169083151502179055506001602260176101000a81548160ff02191690831515021790555060405162004b9338038062004b9383398181016040528101906200010891906200059d565b60008190506040518060400160405280600681526020017f5348494142430000000000000000000000000000000000000000000000000000815250600190805190602001906200015a92919062000448565b506040518060400160405280600681526020017f534849414243000000000000000000000000000000000000000000000000000081525060029080519060200190620001a892919062000448565b506012600360006101000a81548160ff021916908360ff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a62000223919062000774565b83620002309190620007c5565b601b81905550600360009054906101000a900460ff16600a62000254919062000774565b6001620002629190620007c5565b601e8190555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b54600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b5460405162000437919062000837565b60405180910390a3505050620008b9565b828054620004569062000883565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b600080fd5b6000819050919050565b6200051281620004fd565b81146200051e57600080fd5b50565b600081519050620005328162000507565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005658262000538565b9050919050565b620005778162000558565b81146200058357600080fd5b50565b60008151905062000597816200056c565b92915050565b60008060408385031215620005b757620005b6620004f8565b5b6000620005c78582860162000521565b9250506020620005da8582860162000586565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000672578086048111156200064a5762000649620005e4565b5b60018516156200065a5780820291505b80810290506200066a8562000613565b94506200062a565b94509492505050565b6000826200068d576001905062000760565b816200069d576000905062000760565b8160018114620006b65760028114620006c157620006f7565b600191505062000760565b60ff841115620006d657620006d5620005e4565b5b8360020a915084821115620006f057620006ef620005e4565b5b5062000760565b5060208310610133831016604e8410600b8410161715620007315782820a9050838111156200072b576200072a620005e4565b5b62000760565b62000740848484600162000620565b925090508184048111156200075a5762000759620005e4565b5b81810290505b9392505050565b600060ff82169050919050565b60006200078182620004fd565b91506200078e8362000767565b9250620007bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200067b565b905092915050565b6000620007d282620004fd565b9150620007df83620004fd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200081b576200081a620005e4565b5b828202905092915050565b6200083181620004fd565b82525050565b60006020820190506200084e600083018462000826565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200089c57607f821691505b60208210811415620008b357620008b262000854565b5b50919050565b6142ca80620008c96000396000f3fe6080604052600436106101d15760003560e01c8063914eb66a116100f7578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106a9578063ec28438a146106d2578063f2fde38b146106fb578063f84ba65d14610724576101d8565b8063b6b36643146105ef578063c49b9a8014610618578063c816841b14610641578063dd62ed3e1461066c576101d8565b8063a457c2d7116100d1578063a457c2d714610521578063a5d69d1f1461055e578063a9059cbb14610587578063b2bdfa7b146105c4576101d8565b8063914eb66a146104b457806395d89b41146104cb578063a073d37f146104f6576101d8565b8063395093511161016f5780635881f3ef1161013e5780635881f3ef146103e657806370a0823114610423578063844d591c146104605780638da5cb5b14610489576101d8565b8063395093511461032c5780633b97084a146103695780634cb80fd514610392578063557ed1ba146103bb576101d8565b806323b872dd116101ab57806323b872dd146102705780632b112e49146102ad5780632c4b2334146102d8578063313ce56714610301576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261074d565b6040516101ff919061335f565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190613429565b6107df565b60405161023c9190613484565b60405180910390f35b34801561025157600080fd5b5061025a6107fd565b60405161026791906134ae565b60405180910390f35b34801561027c57600080fd5b50610297600480360381019061029291906134c9565b610807565b6040516102a49190613484565b60405180910390f35b3480156102b957600080fd5b506102c26108e1565b6040516102cf91906134ae565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa919061351c565b610927565b005b34801561030d57600080fd5b50610316610a00565b6040516103239190613565565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e9190613429565b610a17565b6040516103609190613484565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b9190613580565b610aca565b005b34801561039e57600080fd5b506103b960048036038101906103b4919061351c565b610b69565b005b3480156103c757600080fd5b506103d0610c42565b6040516103dd91906134ae565b60405180910390f35b3480156103f257600080fd5b5061040d6004803603810190610408919061351c565b610c4a565b60405161041a91906135bc565b60405180910390f35b34801561042f57600080fd5b5061044a6004803603810190610445919061351c565b61112e565b60405161045791906134ae565b60405180910390f35b34801561046c57600080fd5b5061048760048036038101906104829190613603565b611177565b005b34801561049557600080fd5b5061049e611267565b6040516104ab91906135bc565b60405180910390f35b3480156104c057600080fd5b506104c9611290565b005b3480156104d757600080fd5b506104e06113e3565b6040516104ed919061335f565b60405180910390f35b34801561050257600080fd5b5061050b611475565b60405161051891906134ae565b60405180910390f35b34801561052d57600080fd5b5061054860048036038101906105439190613429565b61147f565b6040516105559190613484565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190613643565b61154c565b005b34801561059357600080fd5b506105ae60048036038101906105a99190613429565b6115fe565b6040516105bb9190613484565b60405180910390f35b3480156105d057600080fd5b506105d961161d565b6040516105e691906135bc565b60405180910390f35b3480156105fb57600080fd5b5061061660048036038101906106119190613580565b611641565b005b34801561062457600080fd5b5061063f600480360381019061063a9190613643565b6116e0565b005b34801561064d57600080fd5b506106566117c9565b60405161066391906135bc565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e9190613670565b6117ef565b6040516106a091906134ae565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb9190613580565b611876565b005b3480156106de57600080fd5b506106f960048036038101906106f49190613580565b611959565b005b34801561070757600080fd5b50610722600480360381019061071d919061351c565b6119f8565b005b34801561073057600080fd5b5061074b60048036038101906107469190613603565b611bba565b005b60606001805461075c906136df565b80601f0160208091040260200160405190810160405280929190818152602001828054610788906136df565b80156107d55780601f106107aa576101008083540402835291602001916107d5565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b5050505050905090565b60006107f36107ec611caa565b8484611cb2565b6001905092915050565b6000601b54905090565b6000610814848484611e7d565b506108d684610821611caa565b6108d18560405180606001604052806028815260200161424860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610887611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b611cb2565b600190509392505050565b6000610922610911600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661112e565b601b546127bd90919063ffffffff16565b905090565b61092f611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b39061375d565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610ac0610a24611caa565b84610abb8560076000610a35611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b611cb2565b6001905092915050565b610ad2611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b569061375d565b60405180910390fd5b80601e8190555050565b610b71611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf59061375d565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610c54611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd89061375d565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2c57600080fd5b505afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190613792565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc657600080fd5b505afa158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe9190613792565b6040518363ffffffff1660e01b8152600401610e1b9291906137bf565b60206040518083038186803b158015610e3357600080fd5b505afa158015610e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6b9190613792565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102c578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee857600080fd5b505afa158015610efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f209190613792565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8257600080fd5b505afa158015610f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fba9190613792565b6040518363ffffffff1660e01b8152600401610fd79291906137bf565b602060405180830381600087803b158015610ff157600080fd5b505af1158015611005573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110299190613792565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61117f611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112039061375d565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611298611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131c9061375d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600280546113f2906136df565b80601f016020809104026020016040519081016040528092919081815260200182805461141e906136df565b801561146b5780601f106114405761010080835404028352916020019161146b565b820191906000526020600020905b81548152906001019060200180831161144e57829003601f168201915b5050505050905090565b6000601e54905090565b600061154261148c611caa565b8461153d8560405180606001604052806025815260200161427060259139600760006114b6611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b611cb2565b6001905092915050565b611554611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d89061375d565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061161261160b611caa565b8484611e7d565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611649611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd9061375d565b60405180910390fd5b80601a8190555050565b6116e8611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c9061375d565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516117be9190613484565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61187e611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119029061375d565b60405180910390fd5b600381111561194f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194690613834565b60405180910390fd5b80601f8190555050565b611961611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e59061375d565b60405180910390fd5b80601c8190555050565b611a00611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a849061375d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af4906138c6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611bc2611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c469061375d565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1990613958565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d89906139ea565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e7091906134ae565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee590613a7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5590613b0e565b60405180910390fd5b60008211611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9890613ba0565b60405180910390fd5b602260149054906101000a900460ff1615611fc857611fc1848484612865565b9050612752565b6000611fd33061112e565b90506000601e548210159050808015611ff95750602260149054906101000a900460ff16155b801561204f5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120675750602260159054906101000a900460ff165b1561209157602260169054906101000a900460ff161561208757601e5491505b61209082612a38565b5b61211a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080612168611267565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156121d657506121a6611267565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156123df5761221760646122096121fa601054600b546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122fd576122a7606461229961228a601054600b546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b915060006010541180156122be5750601a54601954105b156122f8576122eb60646122dd60105489612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506122f78882612cee565b5b6123de565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123dd5761238b606461237d61236e601854600c546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b915060006018541180156123a25750601a54601954105b156123dc576123cf60646123c160185489612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506123db8882612cee565b5b5b5b5b600082111561264f57600091506000600267ffffffffffffffff81111561240957612408613bc0565b5b6040519080825280602002602001820160405280156124375781602001602082028036833780820191505090505b509050888160008151811061244f5761244e613bef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878160018151811061249e5761249d613bef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612537929190613cdc565b60006040518083038186803b15801561254f57600080fd5b505afa158015612563573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061258c9190613e3a565b9050806000815181106125a2576125a1613bef565b5b6020026020010151846125b59190613eb2565b935061260984600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b6126a186600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161274191906134ae565b60405180910390a360019450505050505b9392505050565b60008383111582906127a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612798919061335f565b60405180910390fd5b50600083856127b09190613eb2565b9050809150509392505050565b60006127ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612759565b905092915050565b60008082846128169190613ee6565b90508381101561285b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285290613f88565b60405180910390fd5b8091505092915050565b60006128f0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061298582600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a2591906134ae565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612a916002612a83601454612a7560115487612c2990919063ffffffff16565b612ca490919063ffffffff16565b612ca490919063ffffffff16565b90506000612aa882846127bd90919063ffffffff16565b9050612ab381612e7e565b60004790506000612ae4612ad36002601154612ca490919063ffffffff16565b6014546127bd90919063ffffffff16565b90506000612b226002612b1484612b0660115488612c2990919063ffffffff16565b612ca490919063ffffffff16565b612ca490919063ffffffff16565b90506000612b4d83612b3f60135487612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506000612b7682612b6885886127bd90919063ffffffff16565b6127bd90919063ffffffff16565b90506000811115612bae57612bad600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613109565b5b6000821115612be457612be3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613109565b5b600083118015612bf45750600087115b15612c0457612c038784613154565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612c3c5760009050612c9e565b60008284612c4a9190613fa8565b9050828482612c599190614031565b14612c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c90906140d4565b60405180910390fd5b809150505b92915050565b6000612ce683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613263565b905092915050565b601a5460195410612cfe57612e7a565b612d728160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dec8160195461280790919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e7191906134ae565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612e9b57612e9a613bc0565b5b604051908082528060200260200182016040528015612ec95781602001602082028036833780820191505090505b5090503081600081518110612ee157612ee0613bef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f8357600080fd5b505afa158015612f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbb9190613792565b81600181518110612fcf57612fce613bef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061303630602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cb2565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161309a959493929190614139565b600060405180830381600087803b1580156130b457600080fd5b505af11580156130c8573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516130fd929190613cdc565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561314f573d6000803e3d6000fd5b505050565b61318130602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cb2565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161320a96959493929190614193565b6060604051808303818588803b15801561322357600080fd5b505af1158015613237573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061325c91906141f4565b5050505050565b600080831182906132aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a1919061335f565b60405180910390fd5b50600083856132b99190614031565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133005780820151818401526020810190506132e5565b8381111561330f576000848401525b50505050565b6000601f19601f8301169050919050565b6000613331826132c6565b61333b81856132d1565b935061334b8185602086016132e2565b61335481613315565b840191505092915050565b600060208201905081810360008301526133798184613326565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133c082613395565b9050919050565b6133d0816133b5565b81146133db57600080fd5b50565b6000813590506133ed816133c7565b92915050565b6000819050919050565b613406816133f3565b811461341157600080fd5b50565b600081359050613423816133fd565b92915050565b600080604083850312156134405761343f61338b565b5b600061344e858286016133de565b925050602061345f85828601613414565b9150509250929050565b60008115159050919050565b61347e81613469565b82525050565b60006020820190506134996000830184613475565b92915050565b6134a8816133f3565b82525050565b60006020820190506134c3600083018461349f565b92915050565b6000806000606084860312156134e2576134e161338b565b5b60006134f0868287016133de565b9350506020613501868287016133de565b925050604061351286828701613414565b9150509250925092565b6000602082840312156135325761353161338b565b5b6000613540848285016133de565b91505092915050565b600060ff82169050919050565b61355f81613549565b82525050565b600060208201905061357a6000830184613556565b92915050565b6000602082840312156135965761359561338b565b5b60006135a484828501613414565b91505092915050565b6135b6816133b5565b82525050565b60006020820190506135d160008301846135ad565b92915050565b6135e081613469565b81146135eb57600080fd5b50565b6000813590506135fd816135d7565b92915050565b6000806040838503121561361a5761361961338b565b5b6000613628858286016133de565b9250506020613639858286016135ee565b9150509250929050565b6000602082840312156136595761365861338b565b5b6000613667848285016135ee565b91505092915050565b600080604083850312156136875761368661338b565b5b6000613695858286016133de565b92505060206136a6858286016133de565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806136f757607f821691505b6020821081141561370b5761370a6136b0565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137476020836132d1565b915061375282613711565b602082019050919050565b600060208201905081810360008301526137768161373a565b9050919050565b60008151905061378c816133c7565b92915050565b6000602082840312156137a8576137a761338b565b5b60006137b68482850161377d565b91505092915050565b60006040820190506137d460008301856135ad565b6137e160208301846135ad565b9392505050565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b600061381e6012836132d1565b9150613829826137e8565b602082019050919050565b6000602082019050818103600083015261384d81613811565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138b06026836132d1565b91506138bb82613854565b604082019050919050565b600060208201905081810360008301526138df816138a3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139426024836132d1565b915061394d826138e6565b604082019050919050565b6000602082019050818103600083015261397181613935565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139d46022836132d1565b91506139df82613978565b604082019050919050565b60006020820190508181036000830152613a03816139c7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a666025836132d1565b9150613a7182613a0a565b604082019050919050565b60006020820190508181036000830152613a9581613a59565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613af86023836132d1565b9150613b0382613a9c565b604082019050919050565b60006020820190508181036000830152613b2781613aeb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b8a6029836132d1565b9150613b9582613b2e565b604082019050919050565b60006020820190508181036000830152613bb981613b7d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c53816133b5565b82525050565b6000613c658383613c4a565b60208301905092915050565b6000602082019050919050565b6000613c8982613c1e565b613c938185613c29565b9350613c9e83613c3a565b8060005b83811015613ccf578151613cb68882613c59565b9750613cc183613c71565b925050600181019050613ca2565b5085935050505092915050565b6000604082019050613cf1600083018561349f565b8181036020830152613d038184613c7e565b90509392505050565b600080fd5b613d1a82613315565b810181811067ffffffffffffffff82111715613d3957613d38613bc0565b5b80604052505050565b6000613d4c613381565b9050613d588282613d11565b919050565b600067ffffffffffffffff821115613d7857613d77613bc0565b5b602082029050602081019050919050565b600080fd5b600081519050613d9d816133fd565b92915050565b6000613db6613db184613d5d565b613d42565b90508083825260208201905060208402830185811115613dd957613dd8613d89565b5b835b81811015613e025780613dee8882613d8e565b845260208401935050602081019050613ddb565b5050509392505050565b600082601f830112613e2157613e20613d0c565b5b8151613e31848260208601613da3565b91505092915050565b600060208284031215613e5057613e4f61338b565b5b600082015167ffffffffffffffff811115613e6e57613e6d613390565b5b613e7a84828501613e0c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ebd826133f3565b9150613ec8836133f3565b925082821015613edb57613eda613e83565b5b828203905092915050565b6000613ef1826133f3565b9150613efc836133f3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f3157613f30613e83565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f72601b836132d1565b9150613f7d82613f3c565b602082019050919050565b60006020820190508181036000830152613fa181613f65565b9050919050565b6000613fb3826133f3565b9150613fbe836133f3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ff757613ff6613e83565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061403c826133f3565b9150614047836133f3565b92508261405757614056614002565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006140be6021836132d1565b91506140c982614062565b604082019050919050565b600060208201905081810360008301526140ed816140b1565b9050919050565b6000819050919050565b6000819050919050565b600061412361411e614119846140f4565b6140fe565b6133f3565b9050919050565b61413381614108565b82525050565b600060a08201905061414e600083018861349f565b61415b602083018761412a565b818103604083015261416d8186613c7e565b905061417c60608301856135ad565b614189608083018461349f565b9695505050505050565b600060c0820190506141a860008301896135ad565b6141b5602083018861349f565b6141c2604083018761412a565b6141cf606083018661412a565b6141dc60808301856135ad565b6141e960a083018461349f565b979650505050505050565b60008060006060848603121561420d5761420c61338b565b5b600061421b86828701613d8e565b935050602061422c86828701613d8e565b925050604061423d86828701613d8e565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206cfa512f7e2f3ad856dea497603d11a68f57feabd2562eed8b085ea1259f81fc64736f6c634300080800330000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000007509aa1d6826a8d58337a7aa4fb3587b4d99e8b4

Deployed Bytecode

0x6080604052600436106101d15760003560e01c8063914eb66a116100f7578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106a9578063ec28438a146106d2578063f2fde38b146106fb578063f84ba65d14610724576101d8565b8063b6b36643146105ef578063c49b9a8014610618578063c816841b14610641578063dd62ed3e1461066c576101d8565b8063a457c2d7116100d1578063a457c2d714610521578063a5d69d1f1461055e578063a9059cbb14610587578063b2bdfa7b146105c4576101d8565b8063914eb66a146104b457806395d89b41146104cb578063a073d37f146104f6576101d8565b8063395093511161016f5780635881f3ef1161013e5780635881f3ef146103e657806370a0823114610423578063844d591c146104605780638da5cb5b14610489576101d8565b8063395093511461032c5780633b97084a146103695780634cb80fd514610392578063557ed1ba146103bb576101d8565b806323b872dd116101ab57806323b872dd146102705780632b112e49146102ad5780632c4b2334146102d8578063313ce56714610301576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261074d565b6040516101ff919061335f565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190613429565b6107df565b60405161023c9190613484565b60405180910390f35b34801561025157600080fd5b5061025a6107fd565b60405161026791906134ae565b60405180910390f35b34801561027c57600080fd5b50610297600480360381019061029291906134c9565b610807565b6040516102a49190613484565b60405180910390f35b3480156102b957600080fd5b506102c26108e1565b6040516102cf91906134ae565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa919061351c565b610927565b005b34801561030d57600080fd5b50610316610a00565b6040516103239190613565565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e9190613429565b610a17565b6040516103609190613484565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b9190613580565b610aca565b005b34801561039e57600080fd5b506103b960048036038101906103b4919061351c565b610b69565b005b3480156103c757600080fd5b506103d0610c42565b6040516103dd91906134ae565b60405180910390f35b3480156103f257600080fd5b5061040d6004803603810190610408919061351c565b610c4a565b60405161041a91906135bc565b60405180910390f35b34801561042f57600080fd5b5061044a6004803603810190610445919061351c565b61112e565b60405161045791906134ae565b60405180910390f35b34801561046c57600080fd5b5061048760048036038101906104829190613603565b611177565b005b34801561049557600080fd5b5061049e611267565b6040516104ab91906135bc565b60405180910390f35b3480156104c057600080fd5b506104c9611290565b005b3480156104d757600080fd5b506104e06113e3565b6040516104ed919061335f565b60405180910390f35b34801561050257600080fd5b5061050b611475565b60405161051891906134ae565b60405180910390f35b34801561052d57600080fd5b5061054860048036038101906105439190613429565b61147f565b6040516105559190613484565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190613643565b61154c565b005b34801561059357600080fd5b506105ae60048036038101906105a99190613429565b6115fe565b6040516105bb9190613484565b60405180910390f35b3480156105d057600080fd5b506105d961161d565b6040516105e691906135bc565b60405180910390f35b3480156105fb57600080fd5b5061061660048036038101906106119190613580565b611641565b005b34801561062457600080fd5b5061063f600480360381019061063a9190613643565b6116e0565b005b34801561064d57600080fd5b506106566117c9565b60405161066391906135bc565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e9190613670565b6117ef565b6040516106a091906134ae565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb9190613580565b611876565b005b3480156106de57600080fd5b506106f960048036038101906106f49190613580565b611959565b005b34801561070757600080fd5b50610722600480360381019061071d919061351c565b6119f8565b005b34801561073057600080fd5b5061074b60048036038101906107469190613603565b611bba565b005b60606001805461075c906136df565b80601f0160208091040260200160405190810160405280929190818152602001828054610788906136df565b80156107d55780601f106107aa576101008083540402835291602001916107d5565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b5050505050905090565b60006107f36107ec611caa565b8484611cb2565b6001905092915050565b6000601b54905090565b6000610814848484611e7d565b506108d684610821611caa565b6108d18560405180606001604052806028815260200161424860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610887611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b611cb2565b600190509392505050565b6000610922610911600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661112e565b601b546127bd90919063ffffffff16565b905090565b61092f611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b39061375d565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610ac0610a24611caa565b84610abb8560076000610a35611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b611cb2565b6001905092915050565b610ad2611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b569061375d565b60405180910390fd5b80601e8190555050565b610b71611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf59061375d565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610c54611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd89061375d565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2c57600080fd5b505afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190613792565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc657600080fd5b505afa158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe9190613792565b6040518363ffffffff1660e01b8152600401610e1b9291906137bf565b60206040518083038186803b158015610e3357600080fd5b505afa158015610e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6b9190613792565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102c578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee857600080fd5b505afa158015610efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f209190613792565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8257600080fd5b505afa158015610f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fba9190613792565b6040518363ffffffff1660e01b8152600401610fd79291906137bf565b602060405180830381600087803b158015610ff157600080fd5b505af1158015611005573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110299190613792565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61117f611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112039061375d565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611298611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131c9061375d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600280546113f2906136df565b80601f016020809104026020016040519081016040528092919081815260200182805461141e906136df565b801561146b5780601f106114405761010080835404028352916020019161146b565b820191906000526020600020905b81548152906001019060200180831161144e57829003601f168201915b5050505050905090565b6000601e54905090565b600061154261148c611caa565b8461153d8560405180606001604052806025815260200161427060259139600760006114b6611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b611cb2565b6001905092915050565b611554611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d89061375d565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061161261160b611caa565b8484611e7d565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611649611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd9061375d565b60405180910390fd5b80601a8190555050565b6116e8611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c9061375d565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516117be9190613484565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61187e611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119029061375d565b60405180910390fd5b600381111561194f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194690613834565b60405180910390fd5b80601f8190555050565b611961611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e59061375d565b60405180910390fd5b80601c8190555050565b611a00611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a849061375d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af4906138c6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611bc2611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c469061375d565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1990613958565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d89906139ea565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e7091906134ae565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee590613a7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5590613b0e565b60405180910390fd5b60008211611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9890613ba0565b60405180910390fd5b602260149054906101000a900460ff1615611fc857611fc1848484612865565b9050612752565b6000611fd33061112e565b90506000601e548210159050808015611ff95750602260149054906101000a900460ff16155b801561204f5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120675750602260159054906101000a900460ff165b1561209157602260169054906101000a900460ff161561208757601e5491505b61209082612a38565b5b61211a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080612168611267565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156121d657506121a6611267565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156123df5761221760646122096121fa601054600b546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122fd576122a7606461229961228a601054600b546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b915060006010541180156122be5750601a54601954105b156122f8576122eb60646122dd60105489612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506122f78882612cee565b5b6123de565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123dd5761238b606461237d61236e601854600c546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b915060006018541180156123a25750601a54601954105b156123dc576123cf60646123c160185489612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506123db8882612cee565b5b5b5b5b600082111561264f57600091506000600267ffffffffffffffff81111561240957612408613bc0565b5b6040519080825280602002602001820160405280156124375781602001602082028036833780820191505090505b509050888160008151811061244f5761244e613bef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878160018151811061249e5761249d613bef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612537929190613cdc565b60006040518083038186803b15801561254f57600080fd5b505afa158015612563573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061258c9190613e3a565b9050806000815181106125a2576125a1613bef565b5b6020026020010151846125b59190613eb2565b935061260984600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b6126a186600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161274191906134ae565b60405180910390a360019450505050505b9392505050565b60008383111582906127a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612798919061335f565b60405180910390fd5b50600083856127b09190613eb2565b9050809150509392505050565b60006127ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612759565b905092915050565b60008082846128169190613ee6565b90508381101561285b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285290613f88565b60405180910390fd5b8091505092915050565b60006128f0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061298582600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a2591906134ae565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612a916002612a83601454612a7560115487612c2990919063ffffffff16565b612ca490919063ffffffff16565b612ca490919063ffffffff16565b90506000612aa882846127bd90919063ffffffff16565b9050612ab381612e7e565b60004790506000612ae4612ad36002601154612ca490919063ffffffff16565b6014546127bd90919063ffffffff16565b90506000612b226002612b1484612b0660115488612c2990919063ffffffff16565b612ca490919063ffffffff16565b612ca490919063ffffffff16565b90506000612b4d83612b3f60135487612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506000612b7682612b6885886127bd90919063ffffffff16565b6127bd90919063ffffffff16565b90506000811115612bae57612bad600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613109565b5b6000821115612be457612be3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613109565b5b600083118015612bf45750600087115b15612c0457612c038784613154565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612c3c5760009050612c9e565b60008284612c4a9190613fa8565b9050828482612c599190614031565b14612c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c90906140d4565b60405180910390fd5b809150505b92915050565b6000612ce683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613263565b905092915050565b601a5460195410612cfe57612e7a565b612d728160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dec8160195461280790919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e7191906134ae565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612e9b57612e9a613bc0565b5b604051908082528060200260200182016040528015612ec95781602001602082028036833780820191505090505b5090503081600081518110612ee157612ee0613bef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f8357600080fd5b505afa158015612f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbb9190613792565b81600181518110612fcf57612fce613bef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061303630602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cb2565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161309a959493929190614139565b600060405180830381600087803b1580156130b457600080fd5b505af11580156130c8573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516130fd929190613cdc565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561314f573d6000803e3d6000fd5b505050565b61318130602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cb2565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161320a96959493929190614193565b6060604051808303818588803b15801561322357600080fd5b505af1158015613237573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061325c91906141f4565b5050505050565b600080831182906132aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a1919061335f565b60405180910390fd5b50600083856132b99190614031565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133005780820151818401526020810190506132e5565b8381111561330f576000848401525b50505050565b6000601f19601f8301169050919050565b6000613331826132c6565b61333b81856132d1565b935061334b8185602086016132e2565b61335481613315565b840191505092915050565b600060208201905081810360008301526133798184613326565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133c082613395565b9050919050565b6133d0816133b5565b81146133db57600080fd5b50565b6000813590506133ed816133c7565b92915050565b6000819050919050565b613406816133f3565b811461341157600080fd5b50565b600081359050613423816133fd565b92915050565b600080604083850312156134405761343f61338b565b5b600061344e858286016133de565b925050602061345f85828601613414565b9150509250929050565b60008115159050919050565b61347e81613469565b82525050565b60006020820190506134996000830184613475565b92915050565b6134a8816133f3565b82525050565b60006020820190506134c3600083018461349f565b92915050565b6000806000606084860312156134e2576134e161338b565b5b60006134f0868287016133de565b9350506020613501868287016133de565b925050604061351286828701613414565b9150509250925092565b6000602082840312156135325761353161338b565b5b6000613540848285016133de565b91505092915050565b600060ff82169050919050565b61355f81613549565b82525050565b600060208201905061357a6000830184613556565b92915050565b6000602082840312156135965761359561338b565b5b60006135a484828501613414565b91505092915050565b6135b6816133b5565b82525050565b60006020820190506135d160008301846135ad565b92915050565b6135e081613469565b81146135eb57600080fd5b50565b6000813590506135fd816135d7565b92915050565b6000806040838503121561361a5761361961338b565b5b6000613628858286016133de565b9250506020613639858286016135ee565b9150509250929050565b6000602082840312156136595761365861338b565b5b6000613667848285016135ee565b91505092915050565b600080604083850312156136875761368661338b565b5b6000613695858286016133de565b92505060206136a6858286016133de565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806136f757607f821691505b6020821081141561370b5761370a6136b0565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137476020836132d1565b915061375282613711565b602082019050919050565b600060208201905081810360008301526137768161373a565b9050919050565b60008151905061378c816133c7565b92915050565b6000602082840312156137a8576137a761338b565b5b60006137b68482850161377d565b91505092915050565b60006040820190506137d460008301856135ad565b6137e160208301846135ad565b9392505050565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b600061381e6012836132d1565b9150613829826137e8565b602082019050919050565b6000602082019050818103600083015261384d81613811565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138b06026836132d1565b91506138bb82613854565b604082019050919050565b600060208201905081810360008301526138df816138a3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139426024836132d1565b915061394d826138e6565b604082019050919050565b6000602082019050818103600083015261397181613935565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139d46022836132d1565b91506139df82613978565b604082019050919050565b60006020820190508181036000830152613a03816139c7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a666025836132d1565b9150613a7182613a0a565b604082019050919050565b60006020820190508181036000830152613a9581613a59565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613af86023836132d1565b9150613b0382613a9c565b604082019050919050565b60006020820190508181036000830152613b2781613aeb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b8a6029836132d1565b9150613b9582613b2e565b604082019050919050565b60006020820190508181036000830152613bb981613b7d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c53816133b5565b82525050565b6000613c658383613c4a565b60208301905092915050565b6000602082019050919050565b6000613c8982613c1e565b613c938185613c29565b9350613c9e83613c3a565b8060005b83811015613ccf578151613cb68882613c59565b9750613cc183613c71565b925050600181019050613ca2565b5085935050505092915050565b6000604082019050613cf1600083018561349f565b8181036020830152613d038184613c7e565b90509392505050565b600080fd5b613d1a82613315565b810181811067ffffffffffffffff82111715613d3957613d38613bc0565b5b80604052505050565b6000613d4c613381565b9050613d588282613d11565b919050565b600067ffffffffffffffff821115613d7857613d77613bc0565b5b602082029050602081019050919050565b600080fd5b600081519050613d9d816133fd565b92915050565b6000613db6613db184613d5d565b613d42565b90508083825260208201905060208402830185811115613dd957613dd8613d89565b5b835b81811015613e025780613dee8882613d8e565b845260208401935050602081019050613ddb565b5050509392505050565b600082601f830112613e2157613e20613d0c565b5b8151613e31848260208601613da3565b91505092915050565b600060208284031215613e5057613e4f61338b565b5b600082015167ffffffffffffffff811115613e6e57613e6d613390565b5b613e7a84828501613e0c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ebd826133f3565b9150613ec8836133f3565b925082821015613edb57613eda613e83565b5b828203905092915050565b6000613ef1826133f3565b9150613efc836133f3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f3157613f30613e83565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f72601b836132d1565b9150613f7d82613f3c565b602082019050919050565b60006020820190508181036000830152613fa181613f65565b9050919050565b6000613fb3826133f3565b9150613fbe836133f3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ff757613ff6613e83565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061403c826133f3565b9150614047836133f3565b92508261405757614056614002565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006140be6021836132d1565b91506140c982614062565b604082019050919050565b600060208201905081810360008301526140ed816140b1565b9050919050565b6000819050919050565b6000819050919050565b600061412361411e614119846140f4565b6140fe565b6133f3565b9050919050565b61413381614108565b82525050565b600060a08201905061414e600083018861349f565b61415b602083018761412a565b818103604083015261416d8186613c7e565b905061417c60608301856135ad565b614189608083018461349f565b9695505050505050565b600060c0820190506141a860008301896135ad565b6141b5602083018861349f565b6141c2604083018761412a565b6141cf606083018661412a565b6141dc60808301856135ad565b6141e960a083018461349f565b979650505050505050565b60008060006060848603121561420d5761420c61338b565b5b600061421b86828701613d8e565b935050602061422c86828701613d8e565b925050604061423d86828701613d8e565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206cfa512f7e2f3ad856dea497603d11a68f57feabd2562eed8b085ea1259f81fc64736f6c63430008080033

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

0000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000007509aa1d6826a8d58337a7aa4fb3587b4d99e8b4

-----Decoded View---------------
Arg [0] : supply (uint256): 100000000
Arg [1] : router (address): 0x7509AA1d6826a8d58337a7aA4fB3587B4D99E8b4

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000005f5e100
Arg [1] : 0000000000000000000000007509aa1d6826a8d58337a7aa4fb3587b4d99e8b4


Deployed Bytecode Sourcemap

7279:15074:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10237:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11532:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10514:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14750:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13456:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13007:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10423:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10900:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12725:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12860:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6197:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13726:747;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10622:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12046:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5578:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5792:145;;;;;;;;;;;;;:::i;:::-;;10328:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11403:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11126:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13323:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14575:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5454:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12318:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13144:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8925:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10749:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12437:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12604:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5945:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12183:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10237:83;10274:13;10307:5;10300:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10237:83;:::o;11532:161::-;11607:4;11624:39;11633:12;:10;:12::i;:::-;11647:7;11656:6;11624:8;:39::i;:::-;11681:4;11674:11;;11532:161;;;;:::o;10514:100::-;10567:7;10594:12;;10587:19;;10514:100;:::o;14750:313::-;14848:4;14865:36;14875:6;14883:9;14894:6;14865:9;:36::i;:::-;;14912:121;14921:6;14929:12;:10;:12::i;:::-;14943:89;14981:6;14943:89;;;;;;;;;;;;;;;;;:11;:19;14955:6;14943:19;;;;;;;;;;;;;;;:33;14963:12;:10;:12::i;:::-;14943:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14912:8;:121::i;:::-;15051:4;15044:11;;14750:313;;;;;:::o;13456:128::-;13509:7;13536:40;13553:22;13563:11;;;;;;;;;;;13553:9;:22::i;:::-;13536:12;;:16;;:40;;;;:::i;:::-;13529:47;;13456:128;:::o;13007:129::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13117:10:::1;13089:17;;:39;;;;;;;;;;;;;;;;;;13007:129:::0;:::o;10423:83::-;10464:5;10489:9;;;;;;;;;;;10482:16;;10423:83;:::o;10900:218::-;10988:4;11005:83;11014:12;:10;:12::i;:::-;11028:7;11037:50;11076:10;11037:11;:25;11049:12;:10;:12::i;:::-;11037:25;;;;;;;;;;;;;;;:34;11063:7;11037:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11005:8;:83::i;:::-;11106:4;11099:11;;10900:218;;;;:::o;12725:125::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12834:8:::1;12807:24;:35;;;;12725:125:::0;:::o;12860:139::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12980:10:::1;12947:22;;:44;;;;;;;;;;;;;;;;;;12860:139:::0;:::o;6197:90::-;6237:7;6264:15;6257:22;;6197:90;:::o;13726:747::-;13806:22;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13843:35:::1;13900:16;13843:74;;13965:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13947:53;;;14009:4;14016:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13947:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13930:110;;14082:1;14056:28;;:14;:28;;;14053:225;;;14170:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14152:74;;;14235:4;14242:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14152:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14135:131;;14053:225;14304:14;14290:11;;:28;;;;;;;;;;;;;;;;;;14370:16;14352:15;;:34;;;;;;;;;;;;;;;;;;14461:4;14424:12;:34;14445:11;;;;;;;;;;;14424:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;13830:643;13726:747:::0;;;:::o;10622:119::-;10688:7;10715:9;:18;10725:7;10715:18;;;;;;;;;;;;;;;;10708:25;;10622:119;;;:::o;12046:129::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12159:8:::1;12135:12;:21;12148:7;12135:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12046:129:::0;;:::o;5578:79::-;5616:7;5643:6;;;;;;;;;;;5636:13;;5578:79;:::o;5792:145::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5896:1:::1;5859:40;;5880:6;::::0;::::1;;;;;;;;5859:40;;;;;;;;;;;;5927:1;5910:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5792:145::o:0;10328:87::-;10367:13;10400:7;10393:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10328:87;:::o;11403:121::-;11465:7;11492:24;;11485:31;;11403:121;:::o;11126:269::-;11219:4;11236:129;11245:12;:10;:12::i;:::-;11259:7;11268:96;11307:15;11268:96;;;;;;;;;;;;;;;;;:11;:25;11280:12;:10;:12::i;:::-;11268:25;;;;;;;;;;;;;;;:34;11294:7;11268:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11236:8;:129::i;:::-;11383:4;11376:11;;11126:269;;;;:::o;13323:125::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13432:8:::1;13404:25;;:36;;;;;;;;;;;;;;;;;;13323:125:::0;:::o;14575:167::-;14653:4;14670:42;14680:12;:10;:12::i;:::-;14694:9;14705:6;14670:9;:42::i;:::-;;14730:4;14723:11;;14575:167;;;;:::o;5454:21::-;;;;;;;;;;;;:::o;12318:111::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12411:10:::1;12391:17;:30;;;;12318:111:::0;:::o;13144:171::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13245:8:::1;13221:21;;:32;;;;;;;;;;;;;;;;;;13269:38;13298:8;13269:38;;;;;;:::i;:::-;;;;;;;;13144:171:::0;:::o;8925:26::-;;;;;;;;;;;;;:::o;10749:143::-;10830:7;10857:11;:18;10869:5;10857:18;;;;;;;;;;;;;;;:27;10876:7;10857:27;;;;;;;;;;;;;;;;10850:34;;10749:143;;;;:::o;12437:157::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12528:1:::1;12516:8;:13;;12508:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12578:8;12563:12;:23;;;;12437:157:::0;:::o;12604:111::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12696:11:::1;12681:12;:26;;;;12604:111:::0;:::o;5945:244::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6054:1:::1;6034:22;;:8;:22;;;;6026:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6144:8;6115:38;;6136:6;::::0;::::1;;;;;;;;6115:38;;;;;;;;;;;;6173:8;6164:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5945:244:::0;:::o;12183:127::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12296:6:::1;12270:15;:23;12286:6;12270:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12183:127:::0;;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;11701:337::-;11811:1;11794:19;;:5;:19;;;;11786:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11892:1;11873:21;;:7;:21;;;;11865:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11976:6;11946:11;:18;11958:5;11946:18;;;;;;;;;;;;;;;:27;11965:7;11946:27;;;;;;;;;;;;;;;:36;;;;12014:7;11998:32;;12007:5;11998:32;;;12023:6;11998:32;;;;;;:::i;:::-;;;;;;;;11701:337;;;:::o;15071:2714::-;15158:4;15203:1;15185:20;;:6;:20;;;;15177:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15287:1;15266:23;;:9;:23;;;;15258:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15357:1;15348:6;:10;15340:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15420:16;;;;;;;;;;;15417:2361;;;15469:41;15484:6;15492:9;15503:6;15469:14;:41::i;:::-;15462:48;;;;15417:2361;15563:28;15594:24;15612:4;15594:9;:24::i;:::-;15563:55;;15633:28;15688:24;;15664:20;:48;;15633:79;;15733:23;:44;;;;;15761:16;;;;;;;;;;;15760:17;15733:44;:69;;;;;15782:12;:20;15795:6;15782:20;;;;;;;;;;;;;;;;;;;;;;;;;15781:21;15733:69;:94;;;;;15806:21;;;;;;;;;;;15733:94;15729:301;;;15864:25;;;;;;;;;;;15861:98;;;15935:24;;15912:47;;15861:98;15978:36;15993:20;15978:14;:36::i;:::-;15729:301;16064:53;16086:6;16064:53;;;;;;;;;;;;;;;;;:9;:17;16074:6;16064:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16044:9;:17;16054:6;16044:17;;;;;;;;;;;;;;;:73;;;;16132:17;16166:18;16215:7;:5;:7::i;:::-;16205:17;;:6;:17;;;;:41;;;;;16239:7;:5;:7::i;:::-;16226:20;;:9;:20;;;;16205:41;16201:946;;;16279:58;16333:3;16279:49;16290:37;16312:14;;16290:17;;:21;;:37;;;;:::i;:::-;16279:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16267:70;;16359:12;:20;16372:6;16359:20;;;;;;;;;;;;;;;;;;;;;;;;;16356:774;;;16416:58;16470:3;16416:49;16427:37;16449:14;;16427:17;;:21;;:37;;;;:::i;:::-;16416:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16404:70;;16517:1;16500:14;;:18;:52;;;;;16535:17;;16522:10;;:30;16500:52;16497:212;;;16594:35;16625:3;16594:26;16605:14;;16594:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;16581:48;;16656:29;16667:6;16674:10;16656;:29::i;:::-;16497:212;16356:774;;;16754:12;:23;16767:9;16754:23;;;;;;;;;;;;;;;;;;;;;;;;;16751:379;;;16814:60;16870:3;16814:51;16825:39;16848:15;;16825:18;;:22;;:39;;;;:::i;:::-;16814:6;:10;;:51;;;;:::i;:::-;:55;;:60;;;;:::i;:::-;16802:72;;16918:1;16900:15;;:19;:53;;;;;16936:17;;16923:10;;:30;16900:53;16897:214;;;16995:36;17027:3;16995:27;17006:15;;16995:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;16982:49;;17058:29;17069:6;17076:10;17058;:29::i;:::-;16897:214;16751:379;16356:774;16201:946;17177:1;17165:9;:13;17162:439;;;17212:1;17200:13;;17233:21;17271:1;17257:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17233:40;;17303:6;17293:4;17298:1;17293:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;;;17339:9;17329:4;17334:1;17329:7;;;;;;;;:::i;:::-;;;;;;;:19;;;;;;;;;;;17368:24;17414:15;;;;;;;;;;;17395:49;;;17445:6;17452:4;17395:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17368:89;;17490:7;17498:1;17490:10;;;;;;;;:::i;:::-;;;;;;;;17477:23;;;;;:::i;:::-;;;17546:39;17575:9;17546;:24;17564:4;17546:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17519:9;:24;17537:4;17519:24;;;;;;;;;;;;;;;:66;;;;17180:421;;17162:439;17653:32;17678:6;17653:9;:20;17663:9;17653:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17630:9;:20;17640:9;17630:20;;;;;;;;;;;;;;;:55;;;;17722:9;17705:35;;17714:6;17705:35;;;17733:6;17705:35;;;;;;:::i;:::-;;;;;;;;17762:4;17755:11;;;;;;15071:2714;;;;;;:::o;1524:192::-;1610:7;1643:1;1638;:6;;1646:12;1630:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1670:9;1686:1;1682;:5;;;;:::i;:::-;1670:17;;1707:1;1700:8;;;1524:192;;;;;:::o;1380:136::-;1438:7;1465:43;1469:1;1472;1465:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1458:50;;1380:136;;;;:::o;1191:181::-;1249:7;1269:9;1285:1;1281;:5;;;;:::i;:::-;1269:17;;1310:1;1305;:6;;1297:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1363:1;1356:8;;;1191:181;;;;:::o;17793:330::-;17886:4;17923:53;17945:6;17923:53;;;;;;;;;;;;;;;;;:9;:17;17933:6;17923:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17903:9;:17;17913:6;17903:17;;;;;;;;;;;;;;;:73;;;;18010:32;18035:6;18010:9;:20;18020:9;18010:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17987:9;:20;17997:9;17987:20;;;;;;;;;;;;;;;:55;;;;18075:9;18058:35;;18067:6;18058:35;;;18086:6;18058:35;;;;;;:::i;:::-;;;;;;;;18111:4;18104:11;;17793:330;;;;;:::o;18131:1032::-;9556:4;9537:16;;:23;;;;;;;;;;;;;;;;;;18205:19:::1;18227:65;18290:1;18227:58;18260:24;;18227:28;18239:15;;18227:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;18205:87;;18303:21;18327:24;18339:11;18327:7;:11;;:24;;;;:::i;:::-;18303:48;;18364:31;18381:13;18364:16;:31::i;:::-;18406:22;18431:21;18406:46;;18465:19;18487:52;18516:22;18536:1;18516:15;;:19;;:22;;;;:::i;:::-;18487:24;;:28;;:52;;;;:::i;:::-;18465:74;;18552:26;18581:59;18638:1;18581:52;18621:11;18581:35;18600:15;;18581:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;18552:88;;18651:21;18675:47;18710:11;18675:30;18694:10;;18675:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;18651:71;;18733:26;18762:57;18805:13;18762:38;18781:18;18762:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;18733:86;;18856:1;18835:18;:22;18832:104;;;18872:64;18893:22;;;;;;;;;;;18917:18;18872:20;:64::i;:::-;18832:104;18968:1;18952:13;:17;18949:89;;;18984:54;19005:17;;;;;;;;;;;19024:13;18984:20;:54::i;:::-;18949:89;19075:1;19054:18;:22;:41;;;;;19094:1;19080:11;:15;19054:41;19051:104;;;19110:45;19123:11;19136:18;19110:12;:45::i;:::-;19051:104;18192:971;;;;;;;9602:5:::0;9583:16;;:24;;;;;;;;;;;;;;;;;;18131:1032;:::o;1724:250::-;1782:7;1811:1;1806;:6;1802:47;;;1836:1;1829:8;;;;1802:47;1861:9;1877:1;1873;:5;;;;:::i;:::-;1861:17;;1906:1;1901;1897;:5;;;;:::i;:::-;:10;1889:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1965:1;1958:8;;;1724:250;;;;;:::o;1982:132::-;2040:7;2067:39;2071:1;2074;2067:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2060:46;;1982:132;;;;:::o;22027:321::-;22141:17;;22127:10;;:31;22124:43;;22160:7;;22124:43;22204:35;22231:7;22204:9;:22;22214:11;;;;;;;;;;;22204:22;;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;22179:9;:22;22189:11;;;;;;;;;;;22179:22;;;;;;;;;;;;;;;:60;;;;22263:23;22278:7;22263:10;;:14;;:23;;;;:::i;:::-;22250:10;:36;;;;22319:11;;;;;;;;;;;22302:38;;22311:6;22302:38;;;22332:7;22302:38;;;;;;:::i;:::-;;;;;;;;22027:321;;;:::o;19171:658::-;19297:21;19335:1;19321:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19297:40;;19366:4;19348;19353:1;19348:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19392:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19382:4;19387:1;19382:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19427:62;19444:4;19459:15;;;;;;;;;;;19477:11;19427:8;:62::i;:::-;19528:15;;;;;;;;;;;:66;;;19609:11;19635:1;19679:4;19706;19742:15;19528:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19786:35;19803:11;19816:4;19786:35;;;;;;;:::i;:::-;;;;;;;;19226:603;19171:658;:::o;13592:126::-;13684:9;:18;;:26;13703:6;13684:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13592:126;;:::o;19837:520::-;19985:62;20002:4;20017:15;;;;;;;;;;;20035:11;19985:8;:62::i;:::-;20090:15;;;;;;;;;;;:31;;;20129:9;20162:4;20182:11;20208:1;20251;20294:14;;;;;;;;;;;20323:15;20090:259;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19837:520;;:::o;2122:278::-;2208:7;2240:1;2236;:5;2243:12;2228:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2267:9;2283:1;2279;:5;;;;:::i;:::-;2267:17;;2391:1;2384:8;;;2122:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:329::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:116::-;5993:21;6008:5;5993:21;:::i;:::-;5986:5;5983:32;5973:60;;6029:1;6026;6019:12;5973:60;5923:116;:::o;6045:133::-;6088:5;6126:6;6113:20;6104:29;;6142:30;6166:5;6142:30;:::i;:::-;6045:133;;;;:::o;6184:468::-;6249:6;6257;6306:2;6294:9;6285:7;6281:23;6277:32;6274:119;;;6312:79;;:::i;:::-;6274:119;6432:1;6457:53;6502:7;6493:6;6482:9;6478:22;6457:53;:::i;:::-;6447:63;;6403:117;6559:2;6585:50;6627:7;6618:6;6607:9;6603:22;6585:50;:::i;:::-;6575:60;;6530:115;6184:468;;;;;:::o;6658:323::-;6714:6;6763:2;6751:9;6742:7;6738:23;6734:32;6731:119;;;6769:79;;:::i;:::-;6731:119;6889:1;6914:50;6956:7;6947:6;6936:9;6932:22;6914:50;:::i;:::-;6904:60;;6860:114;6658:323;;;;:::o;6987:474::-;7055:6;7063;7112:2;7100:9;7091:7;7087:23;7083:32;7080:119;;;7118:79;;:::i;:::-;7080:119;7238:1;7263:53;7308:7;7299:6;7288:9;7284:22;7263:53;:::i;:::-;7253:63;;7209:117;7365:2;7391:53;7436:7;7427:6;7416:9;7412:22;7391:53;:::i;:::-;7381:63;;7336:118;6987:474;;;;;:::o;7467:180::-;7515:77;7512:1;7505:88;7612:4;7609:1;7602:15;7636:4;7633:1;7626:15;7653:320;7697:6;7734:1;7728:4;7724:12;7714:22;;7781:1;7775:4;7771:12;7802:18;7792:81;;7858:4;7850:6;7846:17;7836:27;;7792:81;7920:2;7912:6;7909:14;7889:18;7886:38;7883:84;;;7939:18;;:::i;:::-;7883:84;7704:269;7653:320;;;:::o;7979:182::-;8119:34;8115:1;8107:6;8103:14;8096:58;7979:182;:::o;8167:366::-;8309:3;8330:67;8394:2;8389:3;8330:67;:::i;:::-;8323:74;;8406:93;8495:3;8406:93;:::i;:::-;8524:2;8519:3;8515:12;8508:19;;8167:366;;;:::o;8539:419::-;8705:4;8743:2;8732:9;8728:18;8720:26;;8792:9;8786:4;8782:20;8778:1;8767:9;8763:17;8756:47;8820:131;8946:4;8820:131;:::i;:::-;8812:139;;8539:419;;;:::o;8964:143::-;9021:5;9052:6;9046:13;9037:22;;9068:33;9095:5;9068:33;:::i;:::-;8964:143;;;;:::o;9113:351::-;9183:6;9232:2;9220:9;9211:7;9207:23;9203:32;9200:119;;;9238:79;;:::i;:::-;9200:119;9358:1;9383:64;9439:7;9430:6;9419:9;9415:22;9383:64;:::i;:::-;9373:74;;9329:128;9113:351;;;;:::o;9470:332::-;9591:4;9629:2;9618:9;9614:18;9606:26;;9642:71;9710:1;9699:9;9695:17;9686:6;9642:71;:::i;:::-;9723:72;9791:2;9780:9;9776:18;9767:6;9723:72;:::i;:::-;9470:332;;;;;:::o;9808:168::-;9948:20;9944:1;9936:6;9932:14;9925:44;9808:168;:::o;9982:366::-;10124:3;10145:67;10209:2;10204:3;10145:67;:::i;:::-;10138:74;;10221:93;10310:3;10221:93;:::i;:::-;10339:2;10334:3;10330:12;10323:19;;9982:366;;;:::o;10354:419::-;10520:4;10558:2;10547:9;10543:18;10535:26;;10607:9;10601:4;10597:20;10593:1;10582:9;10578:17;10571:47;10635:131;10761:4;10635:131;:::i;:::-;10627:139;;10354:419;;;:::o;10779:225::-;10919:34;10915:1;10907:6;10903:14;10896:58;10988:8;10983:2;10975:6;10971:15;10964:33;10779:225;:::o;11010:366::-;11152:3;11173:67;11237:2;11232:3;11173:67;:::i;:::-;11166:74;;11249:93;11338:3;11249:93;:::i;:::-;11367:2;11362:3;11358:12;11351:19;;11010:366;;;:::o;11382:419::-;11548:4;11586:2;11575:9;11571:18;11563:26;;11635:9;11629:4;11625:20;11621:1;11610:9;11606:17;11599:47;11663:131;11789:4;11663:131;:::i;:::-;11655:139;;11382:419;;;:::o;11807:223::-;11947:34;11943:1;11935:6;11931:14;11924:58;12016:6;12011:2;12003:6;11999:15;11992:31;11807:223;:::o;12036:366::-;12178:3;12199:67;12263:2;12258:3;12199:67;:::i;:::-;12192:74;;12275:93;12364:3;12275:93;:::i;:::-;12393:2;12388:3;12384:12;12377:19;;12036:366;;;:::o;12408:419::-;12574:4;12612:2;12601:9;12597:18;12589:26;;12661:9;12655:4;12651:20;12647:1;12636:9;12632:17;12625:47;12689:131;12815:4;12689:131;:::i;:::-;12681:139;;12408:419;;;:::o;12833:221::-;12973:34;12969:1;12961:6;12957:14;12950:58;13042:4;13037:2;13029:6;13025:15;13018:29;12833:221;:::o;13060:366::-;13202:3;13223:67;13287:2;13282:3;13223:67;:::i;:::-;13216:74;;13299:93;13388:3;13299:93;:::i;:::-;13417:2;13412:3;13408:12;13401:19;;13060:366;;;:::o;13432:419::-;13598:4;13636:2;13625:9;13621:18;13613:26;;13685:9;13679:4;13675:20;13671:1;13660:9;13656:17;13649:47;13713:131;13839:4;13713:131;:::i;:::-;13705:139;;13432:419;;;:::o;13857:224::-;13997:34;13993:1;13985:6;13981:14;13974:58;14066:7;14061:2;14053:6;14049:15;14042:32;13857:224;:::o;14087:366::-;14229:3;14250:67;14314:2;14309:3;14250:67;:::i;:::-;14243:74;;14326:93;14415:3;14326:93;:::i;:::-;14444:2;14439:3;14435:12;14428:19;;14087:366;;;:::o;14459:419::-;14625:4;14663:2;14652:9;14648:18;14640:26;;14712:9;14706:4;14702:20;14698:1;14687:9;14683:17;14676:47;14740:131;14866:4;14740:131;:::i;:::-;14732:139;;14459:419;;;:::o;14884:222::-;15024:34;15020:1;15012:6;15008:14;15001:58;15093:5;15088:2;15080:6;15076:15;15069:30;14884:222;:::o;15112:366::-;15254:3;15275:67;15339:2;15334:3;15275:67;:::i;:::-;15268:74;;15351:93;15440:3;15351:93;:::i;:::-;15469:2;15464:3;15460:12;15453:19;;15112:366;;;:::o;15484:419::-;15650:4;15688:2;15677:9;15673:18;15665:26;;15737:9;15731:4;15727:20;15723:1;15712:9;15708:17;15701:47;15765:131;15891:4;15765:131;:::i;:::-;15757:139;;15484:419;;;:::o;15909:228::-;16049:34;16045:1;16037:6;16033:14;16026:58;16118:11;16113:2;16105:6;16101:15;16094:36;15909:228;:::o;16143:366::-;16285:3;16306:67;16370:2;16365:3;16306:67;:::i;:::-;16299:74;;16382:93;16471:3;16382:93;:::i;:::-;16500:2;16495:3;16491:12;16484:19;;16143:366;;;:::o;16515:419::-;16681:4;16719:2;16708:9;16704:18;16696:26;;16768:9;16762:4;16758:20;16754:1;16743:9;16739:17;16732:47;16796:131;16922:4;16796:131;:::i;:::-;16788:139;;16515:419;;;:::o;16940:180::-;16988:77;16985:1;16978:88;17085:4;17082:1;17075:15;17109:4;17106:1;17099:15;17126:180;17174:77;17171:1;17164:88;17271:4;17268:1;17261:15;17295:4;17292:1;17285:15;17312:114;17379:6;17413:5;17407:12;17397:22;;17312:114;;;:::o;17432:184::-;17531:11;17565:6;17560:3;17553:19;17605:4;17600:3;17596:14;17581:29;;17432:184;;;;:::o;17622:132::-;17689:4;17712:3;17704:11;;17742:4;17737:3;17733:14;17725:22;;17622:132;;;:::o;17760:108::-;17837:24;17855:5;17837:24;:::i;:::-;17832:3;17825:37;17760:108;;:::o;17874:179::-;17943:10;17964:46;18006:3;17998:6;17964:46;:::i;:::-;18042:4;18037:3;18033:14;18019:28;;17874:179;;;;:::o;18059:113::-;18129:4;18161;18156:3;18152:14;18144:22;;18059:113;;;:::o;18208:732::-;18327:3;18356:54;18404:5;18356:54;:::i;:::-;18426:86;18505:6;18500:3;18426:86;:::i;:::-;18419:93;;18536:56;18586:5;18536:56;:::i;:::-;18615:7;18646:1;18631:284;18656:6;18653:1;18650:13;18631:284;;;18732:6;18726:13;18759:63;18818:3;18803:13;18759:63;:::i;:::-;18752:70;;18845:60;18898:6;18845:60;:::i;:::-;18835:70;;18691:224;18678:1;18675;18671:9;18666:14;;18631:284;;;18635:14;18931:3;18924:10;;18332:608;;;18208:732;;;;:::o;18946:483::-;19117:4;19155:2;19144:9;19140:18;19132:26;;19168:71;19236:1;19225:9;19221:17;19212:6;19168:71;:::i;:::-;19286:9;19280:4;19276:20;19271:2;19260:9;19256:18;19249:48;19314:108;19417:4;19408:6;19314:108;:::i;:::-;19306:116;;18946:483;;;;;:::o;19435:117::-;19544:1;19541;19534:12;19558:281;19641:27;19663:4;19641:27;:::i;:::-;19633:6;19629:40;19771:6;19759:10;19756:22;19735:18;19723:10;19720:34;19717:62;19714:88;;;19782:18;;:::i;:::-;19714:88;19822:10;19818:2;19811:22;19601:238;19558:281;;:::o;19845:129::-;19879:6;19906:20;;:::i;:::-;19896:30;;19935:33;19963:4;19955:6;19935:33;:::i;:::-;19845:129;;;:::o;19980:311::-;20057:4;20147:18;20139:6;20136:30;20133:56;;;20169:18;;:::i;:::-;20133:56;20219:4;20211:6;20207:17;20199:25;;20279:4;20273;20269:15;20261:23;;19980:311;;;:::o;20297:117::-;20406:1;20403;20396:12;20420:143;20477:5;20508:6;20502:13;20493:22;;20524:33;20551:5;20524:33;:::i;:::-;20420:143;;;;:::o;20586:732::-;20693:5;20718:81;20734:64;20791:6;20734:64;:::i;:::-;20718:81;:::i;:::-;20709:90;;20819:5;20848:6;20841:5;20834:21;20882:4;20875:5;20871:16;20864:23;;20935:4;20927:6;20923:17;20915:6;20911:30;20964:3;20956:6;20953:15;20950:122;;;20983:79;;:::i;:::-;20950:122;21098:6;21081:231;21115:6;21110:3;21107:15;21081:231;;;21190:3;21219:48;21263:3;21251:10;21219:48;:::i;:::-;21214:3;21207:61;21297:4;21292:3;21288:14;21281:21;;21157:155;21141:4;21136:3;21132:14;21125:21;;21081:231;;;21085:21;20699:619;;20586:732;;;;;:::o;21341:385::-;21423:5;21472:3;21465:4;21457:6;21453:17;21449:27;21439:122;;21480:79;;:::i;:::-;21439:122;21590:6;21584:13;21615:105;21716:3;21708:6;21701:4;21693:6;21689:17;21615:105;:::i;:::-;21606:114;;21429:297;21341:385;;;;:::o;21732:554::-;21827:6;21876:2;21864:9;21855:7;21851:23;21847:32;21844:119;;;21882:79;;:::i;:::-;21844:119;22023:1;22012:9;22008:17;22002:24;22053:18;22045:6;22042:30;22039:117;;;22075:79;;:::i;:::-;22039:117;22180:89;22261:7;22252:6;22241:9;22237:22;22180:89;:::i;:::-;22170:99;;21973:306;21732:554;;;;:::o;22292:180::-;22340:77;22337:1;22330:88;22437:4;22434:1;22427:15;22461:4;22458:1;22451:15;22478:191;22518:4;22538:20;22556:1;22538:20;:::i;:::-;22533:25;;22572:20;22590:1;22572:20;:::i;:::-;22567:25;;22611:1;22608;22605:8;22602:34;;;22616:18;;:::i;:::-;22602:34;22661:1;22658;22654:9;22646:17;;22478:191;;;;:::o;22675:305::-;22715:3;22734:20;22752:1;22734:20;:::i;:::-;22729:25;;22768:20;22786:1;22768:20;:::i;:::-;22763:25;;22922:1;22854:66;22850:74;22847:1;22844:81;22841:107;;;22928:18;;:::i;:::-;22841:107;22972:1;22969;22965:9;22958:16;;22675:305;;;;:::o;22986:177::-;23126:29;23122:1;23114:6;23110:14;23103:53;22986:177;:::o;23169:366::-;23311:3;23332:67;23396:2;23391:3;23332:67;:::i;:::-;23325:74;;23408:93;23497:3;23408:93;:::i;:::-;23526:2;23521:3;23517:12;23510:19;;23169:366;;;:::o;23541:419::-;23707:4;23745:2;23734:9;23730:18;23722:26;;23794:9;23788:4;23784:20;23780:1;23769:9;23765:17;23758:47;23822:131;23948:4;23822:131;:::i;:::-;23814:139;;23541:419;;;:::o;23966:348::-;24006:7;24029:20;24047:1;24029:20;:::i;:::-;24024:25;;24063:20;24081:1;24063:20;:::i;:::-;24058:25;;24251:1;24183:66;24179:74;24176:1;24173:81;24168:1;24161:9;24154:17;24150:105;24147:131;;;24258:18;;:::i;:::-;24147:131;24306:1;24303;24299:9;24288:20;;23966:348;;;;:::o;24320:180::-;24368:77;24365:1;24358:88;24465:4;24462:1;24455:15;24489:4;24486:1;24479:15;24506:185;24546:1;24563:20;24581:1;24563:20;:::i;:::-;24558:25;;24597:20;24615:1;24597:20;:::i;:::-;24592:25;;24636:1;24626:35;;24641:18;;:::i;:::-;24626:35;24683:1;24680;24676:9;24671:14;;24506:185;;;;:::o;24697:220::-;24837:34;24833:1;24825:6;24821:14;24814:58;24906:3;24901:2;24893:6;24889:15;24882:28;24697:220;:::o;24923:366::-;25065:3;25086:67;25150:2;25145:3;25086:67;:::i;:::-;25079:74;;25162:93;25251:3;25162:93;:::i;:::-;25280:2;25275:3;25271:12;25264:19;;24923:366;;;:::o;25295:419::-;25461:4;25499:2;25488:9;25484:18;25476:26;;25548:9;25542:4;25538:20;25534:1;25523:9;25519:17;25512:47;25576:131;25702:4;25576:131;:::i;:::-;25568:139;;25295:419;;;:::o;25720:85::-;25765:7;25794:5;25783:16;;25720:85;;;:::o;25811:60::-;25839:3;25860:5;25853:12;;25811:60;;;:::o;25877:158::-;25935:9;25968:61;25986:42;25995:32;26021:5;25995:32;:::i;:::-;25986:42;:::i;:::-;25968:61;:::i;:::-;25955:74;;25877:158;;;:::o;26041:147::-;26136:45;26175:5;26136:45;:::i;:::-;26131:3;26124:58;26041:147;;:::o;26194:831::-;26457:4;26495:3;26484:9;26480:19;26472:27;;26509:71;26577:1;26566:9;26562:17;26553:6;26509:71;:::i;:::-;26590:80;26666:2;26655:9;26651:18;26642:6;26590:80;:::i;:::-;26717:9;26711:4;26707:20;26702:2;26691:9;26687:18;26680:48;26745:108;26848:4;26839:6;26745:108;:::i;:::-;26737:116;;26863:72;26931:2;26920:9;26916:18;26907:6;26863:72;:::i;:::-;26945:73;27013:3;27002:9;26998:19;26989:6;26945:73;:::i;:::-;26194:831;;;;;;;;:::o;27031:807::-;27280:4;27318:3;27307:9;27303:19;27295:27;;27332:71;27400:1;27389:9;27385:17;27376:6;27332:71;:::i;:::-;27413:72;27481:2;27470:9;27466:18;27457:6;27413:72;:::i;:::-;27495:80;27571:2;27560:9;27556:18;27547:6;27495:80;:::i;:::-;27585;27661:2;27650:9;27646:18;27637:6;27585:80;:::i;:::-;27675:73;27743:3;27732:9;27728:19;27719:6;27675:73;:::i;:::-;27758;27826:3;27815:9;27811:19;27802:6;27758:73;:::i;:::-;27031:807;;;;;;;;;:::o;27844:663::-;27932:6;27940;27948;27997:2;27985:9;27976:7;27972:23;27968:32;27965:119;;;28003:79;;:::i;:::-;27965:119;28123:1;28148:64;28204:7;28195:6;28184:9;28180:22;28148:64;:::i;:::-;28138:74;;28094:128;28261:2;28287:64;28343:7;28334:6;28323:9;28319:22;28287:64;:::i;:::-;28277:74;;28232:129;28400:2;28426:64;28482:7;28473:6;28462:9;28458:22;28426:64;:::i;:::-;28416:74;;28371:129;27844:663;;;;;:::o

Swarm Source

ipfs://6cfa512f7e2f3ad856dea497603d11a68f57feabd2562eed8b085ea1259f81fc

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  ]

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.