ETH Price: $2,213.81 (+1.90%)

Token

SBF Charity Fund (SAMCF)
 

Overview

Max Total Supply

26,000,000,000 SAMCF

Holders

46

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000008360826384 SAMCF

Value
$0.00
0x55b644dea40f031cb9ad0c3e14376c3489631fc1
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SBFCharityFund

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Final.sol
/**
 *Submitted for verification at Etherscan.io on 2023-08-26
*/

// SPDX-License-Identifier:MIT

pragma solidity ^0.8.10;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        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
    );
}

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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;
    }
}

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapPair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

}

contract SBFCharityFund is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "SBF Charity Fund";
    string private _symbol = "SAMCF";
    uint8 private _decimals = 18; 

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    uint _buyMarketingTax = 1;
    uint _buyLpTax = 1;
    uint _buyCharityTax = 1;

    uint _sellMarketingTax = 1;
    uint _sellLpTax = 1;
    uint _sellCharityTax = 1;

    uint256 public _totalbuyFee = _buyMarketingTax.add(_buyLpTax).add(_buyCharityTax);
    uint256 public _totalSellFee = _sellMarketingTax.add(_sellLpTax).add(_sellCharityTax);

    address public MarketingWallet = address(0x89C1948DD8356c619E937CCeB7b8b5189c747889);
    address public lpReceiverWallet;
    address public CharityWallet = address(0x45DB13C65017Fe2920F8202c359c7BdA6F6a5a4d);

    address teamWallet = 0x0BDC9902F0B5DfbB5eB8605CCAD7D06Ad192Dd2A;
    address cexWallet = 0x37995edc8b82b483bDfcbd22a39B53e48e2c1C8D;
    
    uint256 feedenominator = 100;

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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 private _totalSupply = 26_000_000_000 * 10**_decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(2).div(100);     // 2%
    uint256 public _walletMax = _totalSupply.mul(2).div(100);        // 2%

    uint256 public swapThreshold = 520_000_000 * 10**_decimals;     // 2%

    uint256 public launchedAt;
    bool public normalizeTrade;

    bool tradingActive;

    bool public swapEnabled = true;
    bool public swapbylimit = true;
    bool public EnableTxLimit = false;
    bool public checkWalletLimit = false;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier onlyGuard() {
        require(msg.sender == lpReceiverWallet,"Invalid Caller");
        _;
    }

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor()  {

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexRouter = _dexRouter;
        
        lpReceiverWallet = msg.sender;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _allowances[address(this)][address(dexRouter)] = ~uint256(0);
    
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
        transfer(teamWallet, _totalSupply.mul(5).div(100));
        transfer(cexWallet,_totalSupply.mul(5).div(100));
    }

    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 getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    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 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);
    }

     //to recieve ETH from Router 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: Exceeds allowance"));
        return true;
    }

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

        require(sender != address(0));
        require(recipient != address(0));
        require(amount > 0);
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if (!tradingActive) {
                require(isExcludedFromFee[sender] || isExcludedFromFee[recipient],"Trading is not active.");
            }

            if (launchedAt != 0 && !normalizeTrade) {
                dynamicTaxSetter();
            }

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

            if (
                overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !isExcludedFromFee[sender] &&
                !isExcludedFromFee[recipient]
                ) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Exceeds maxTxAmount");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Exceeds Wallet");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            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 shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

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

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(_totalbuyFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(_totalSellFee).div(feedenominator);
            }

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

            return amount.sub(feeAmount);
        }
        
    }

    function launch() public payable onlyOwner {
        require(launchedAt == 0, "Already launched!");
        launchedAt = block.number;
        tradingActive = true;

        uint tokenForLp = _balances[address(this)];

        _buyMarketingTax = 1;
        _buyLpTax = 0;
        _buyCharityTax = 0;

        _sellMarketingTax = 1;
        _sellLpTax = 0;
        _sellCharityTax = 0;

        dexRouter.addLiquidityETH{ value: msg.value }(
            address(this),
            tokenForLp,
            0,
            0,
            owner(),
            block.timestamp
        );

        IDexSwapFactory factory = IDexSwapFactory(dexRouter.factory());

        IDexSwapPair pair = IDexSwapPair(factory.getPair(address(this), dexRouter.WETH()));

        dexPair = address(pair);

        isMarketPair[address(dexPair)] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        _allowances[address(this)][address(dexPair)] = ~uint256(0);

        swapEnabled = true;
        EnableTxLimit = true;
        checkWalletLimit =  true;
    }

    function dynamicTaxSetter() internal {
        if (block.number <= launchedAt + 3) {
            dynamicSetter(99,99);
        }
        if (block.number > launchedAt + 3 && block.number <= launchedAt + 22) {
            dynamicSetter(45,45);
        }
        if (block.number > launchedAt + 22) {
            dynamicSetter(3,3);
            normalizeTrade = true;
        }
            
    }

    function dynamicSetter(uint _buy, uint _Sell) internal {
        _totalbuyFee = _buy;
        _totalSellFee = _Sell;
    }


    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 totalShares = _totalbuyFee.add(_totalSellFee);

        uint256 _liquidityShare = _buyLpTax.add(_sellLpTax);
        // uint256 _MarketingShare = _buyMarketingTax.add(_sellMarketingTax);
        uint256 _CharityShare = _buyCharityTax.add(_sellCharityTax);

        uint256 tokensForLP = contractBalance.mul(_liquidityShare).div(totalShares).div(2);
        uint256 tokensForSwap = contractBalance.sub(tokensForLP);

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

        uint256 totalETHFee = totalShares.sub(_liquidityShare.div(2));
        
        uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHCharity = amountReceived.mul(_CharityShare).div(totalETHFee);
        uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity).sub(amountETHCharity);

       if(amountETHCharity > 0)
            payable(CharityWallet).transfer(amountETHCharity);

        if(amountETHMarketing > 0)
            payable(MarketingWallet).transfer(amountETHMarketing);

        if(amountETHLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountETHLiquidity);

    }

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

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

    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] = dexRouter.WETH();

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

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

    function rescueFunds() external onlyGuard { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyGuard {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setBuyFee(uint _MarketingFee, uint _lpFee, uint _CharityFee) external onlyOwner {    
        _buyMarketingTax = _MarketingFee;
        _buyLpTax = _lpFee;
        _buyCharityTax = _CharityFee;

        _totalbuyFee = _buyMarketingTax.add(_buyLpTax).add(_buyCharityTax);
    }

    function setSellFee(uint _MarketingFee, uint _lpFee, uint _CharityFee) external onlyOwner {
        _sellMarketingTax = _MarketingFee;
        _sellLpTax = _lpFee;
        _sellCharityTax = _CharityFee;
        _totalSellFee = _sellMarketingTax.add(_sellLpTax).add(_sellCharityTax);
    }

    function removeLimits() external onlyGuard {
        EnableTxLimit = false;
        checkWalletLimit =  false;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setMarketingWallet(address _newWallet) external onlyOwner {
        MarketingWallet = _newWallet;
    }

    function setLpWallet(address _newWallet) external onlyOwner {
        lpReceiverWallet = _newWallet;
    }

    function setCharityWallet(address _newWallet) external onlyOwner {
        CharityWallet = _newWallet;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

    function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited)
        external
        onlyGuard
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        swapThreshold = _threshold;
    }

    function setManualRouter(address _router) external onlyOwner {
        dexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        dexPair = _pair;
    }


}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"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":"CharityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalbuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpReceiverWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"normalizeTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_MarketingFee","type":"uint256"},{"internalType":"uint256","name":"_lpFee","type":"uint256"},{"internalType":"uint256","name":"_CharityFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setCharityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setLpWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_MarketingFee","type":"uint256"},{"internalType":"uint256","name":"_lpFee","type":"uint256"},{"internalType":"uint256","name":"_CharityFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280601081526020017f53424620436861726974792046756e6400000000000000000000000000000000815250600190805190602001906200005192919062002719565b506040518060400160405280600581526020017f53414d4346000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062002719565b506012600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152506001600455600160055560016006556001600755600160085560016009556200017c6006546200016860055460045462000cb460201b62002c261790919060201c565b62000cb460201b62002c261790919060201c565b600a55620001b8600954620001a460085460075462000cb460201b62002c261790919060201c565b62000cb460201b62002c261790919060201c565b600b557389c1948dd8356c619e937cceb7b8b5189c747889600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507345db13c65017fe2920f8202c359c7bda6f6a5a4d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730bdc9902f0b5dfbb5eb8605ccad7d06ad192dd2a600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507337995edc8b82b483bdfcbd22a39b53e48e2c1c8d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064601155600360009054906101000a900460ff16600a62000332919062002963565b64060db88400620003449190620029b4565b6018556200037e60646200036a600260185462000d1760201b62002c841790919060201c565b62000d9b60201b62002cff1790919060201c565b601955620003b86064620003a4600260185462000d1760201b62002c841790919060201c565b62000d9b60201b62002cff1790919060201c565b601a55600360009054906101000a900460ff16600a620003d9919062002963565b631efe9200620003ea9190620029b4565b601b556001601d60026101000a81548160ff0219169083151502179055506001601d60036101000a81548160ff0219169083151502179055506000601d60046101000a81548160ff0219169083151502179055506000601d60056101000a81548160ff0219169083151502179055503480156200046657600080fd5b50620004876200047b62000ded60201b60201c565b62000df560201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601d60066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160166000601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016016600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016016600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016017600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016017600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160156000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601854601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000bcf919062002a26565b60405180910390a362000c41600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000c35606462000c21600560185462000d1760201b62002c841790919060201c565b62000d9b60201b62002cff1790919060201c565b62000eb960201b60201c565b5062000cac601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000ca0606462000c8c600560185462000d1760201b62002c841790919060201c565b62000d9b60201b62002cff1790919060201c565b62000eb960201b60201c565b5050620033b7565b600080828462000cc5919062002a43565b90508381101562000d0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d049062002b01565b60405180910390fd5b8091505092915050565b60008083141562000d2c576000905062000d95565b6000828462000d3c9190620029b4565b905082848262000d4d919062002b52565b1462000d90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d879062002c00565b60405180910390fd5b809150505b92915050565b600062000de583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000ee860201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600062000edd62000ecf62000ded60201b60201c565b848462000f5060201b60201c565b506001905092915050565b6000808311829062000f32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f29919062002cb5565b60405180910390fd5b506000838562000f43919062002b52565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141562000f8c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000fc757600080fd5b6000821162000fd557600080fd5b601e60149054906101000a900460ff1615620010065762000ffe848484620016af60201b60201c565b9050620016a8565b601d60019054906101000a900460ff166200110057601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680620010bd5750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b620010ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010f69062002d29565b60405180910390fd5b5b6000601c5414158015620011215750601d60009054906101000a900460ff16155b156200113857620011376200189260201b60201c565b5b60006200114b306200195260201b60201c565b90506000601b548210159050808015620011725750601e60149054906101000a900460ff16155b8015620011c95750601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015620011e25750601d60029054906101000a900460ff165b8015620012395750601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015620012905750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15620012a857620012a7826200199b60201b60201c565b5b601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156200134d5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015620013665750601d60049054906101000a900460ff165b15620013b557601954841115620013b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620013ab9062002d9b565b60405180910390fd5b5b62001445846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462001d0f60201b62002d49179092919060201c565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006200149c878762001d7860201b60201c565b620014ba57620014b487878762001ee960201b60201c565b620014bc565b845b9050601d60059054906101000a900460ff168015620015255750601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156200159d57601a54620015588262001544896200195260201b60201c565b62000cb460201b62002c261790919060201c565b11156200159c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620015939062002e0d565b60405180910390fd5b5b620015f681601260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000cb460201b62002c261790919060201c565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162001698919062002a26565b60405180910390a3600193505050505b9392505050565b600062001741826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462001d0f60201b62002d49179092919060201c565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620017dd82601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000cb460201b62002c261790919060201c565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200187f919062002a26565b60405180910390a3600190509392505050565b6003601c54620018a3919062002a43565b4311620018be57620018bd6063806200213e60201b60201c565b5b6003601c54620018cf919062002a43565b43118015620018ee57506016601c54620018ea919062002a43565b4311155b15620019085762001907602d806200213e60201b60201c565b5b6016601c5462001919919062002a43565b4311156200195057620019346003806200213e60201b60201c565b6001601d60006101000a81548160ff0219169083151502179055505b565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6001601e60146101000a81548160ff021916908315150217905550601d60039054906101000a900460ff1615620019d257601b5490505b6000620019f2600b54600a5462000cb460201b62002c261790919060201c565b9050600062001a1460085460055462000cb460201b62002c261790919060201c565b9050600062001a3660095460065462000cb460201b62002c261790919060201c565b9050600062001a87600262001a738662001a5f878a62000d1760201b62002c841790919060201c565b62000d9b60201b62002cff1790919060201c565b62000d9b60201b62002cff1790919060201c565b9050600062001aa582876200215060201b62002dad1790919060201c565b9050600047905062001abd82620021a260201b60201c565b600062001ad982476200215060201b62002dad1790919060201c565b9050600062001b1162001afc60028962000d9b60201b62002cff1790919060201c565b896200215060201b62002dad1790919060201c565b9050600062001b62600262001b4e8462001b3a8c8862000d1760201b62002c841790919060201c565b62000d9b60201b62002cff1790919060201c565b62000d9b60201b62002cff1790919060201c565b9050600062001b998362001b858a8762000d1760201b62002c841790919060201c565b62000d9b60201b62002cff1790919060201c565b9050600062001bd08262001bbc85886200215060201b62002dad1790919060201c565b6200215060201b62002dad1790919060201c565b9050600082111562001c4757600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801562001c45573d6000803e3d6000fd5b505b600081111562001cbc57600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801562001cba573d6000803e3d6000fd5b505b60008311801562001ccd5750600088115b1562001ce65762001ce588846200243960201b60201c565b5b50505050505050505050506000601e60146101000a81548160ff02191690831515021790555050565b600083831115829062001d5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001d51919062002cb5565b60405180910390fd5b506000838562001d6b919062002e2f565b9050809150509392505050565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168062001e1c5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1562001e2c576001905062001ee3565b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168062001ece5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1562001ede576000905062001ee3565b600090505b92915050565b600080601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562001f7e5762001f7660115462001f62600a548662000d1760201b62002c841790919060201c565b62000d9b60201b62002cff1790919060201c565b90506200200c565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156200200b576200200860115462001ff4600b548662000d1760201b62002c841790919060201c565b62000d9b60201b62002cff1790919060201c565b90505b5b60008111156200211a576200206f81601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000cb460201b62002c261790919060201c565b601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162002111919062002a26565b60405180910390a35b6200213481846200215060201b62002dad1790919060201c565b9150509392505050565b81600a8190555080600b819055505050565b60006200219a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062001d0f60201b60201c565b905092915050565b6000600267ffffffffffffffff811115620021c257620021c162002e6a565b5b604051908082528060200260200182016040528015620021f15781602001602082028036833780820191505090505b50905030816000815181106200220c576200220b62002e99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620022b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022da919062002f32565b81600181518110620022f157620022f062002e99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506200236030601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846200254660201b60201c565b601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401620023c695949392919062003090565b600060405180830381600087803b158015620023e157600080fd5b505af1158015620023f6573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516200242d929190620030f4565b60405180910390a15050565b6200246e30601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846200254660201b60201c565b601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401620024f99695949392919062003128565b60606040518083038185885af115801562002518573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200253f9190620031c6565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620025b9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620025b09062003298565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200262c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620026239062003330565b60405180910390fd5b80601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200270c919062002a26565b60405180910390a3505050565b828054620027279062003381565b90600052602060002090601f0160209004810192826200274b576000855562002797565b82601f106200276657805160ff191683800117855562002797565b8280016001018555821562002797579182015b828111156200279657825182559160200191906001019062002779565b5b509050620027a69190620027aa565b5090565b5b80821115620027c5576000816000905550600101620027ab565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562002857578086048111156200282f576200282e620027c9565b5b60018516156200283f5780820291505b80810290506200284f85620027f8565b94506200280f565b94509492505050565b60008262002872576001905062002945565b8162002882576000905062002945565b81600181146200289b5760028114620028a657620028dc565b600191505062002945565b60ff841115620028bb57620028ba620027c9565b5b8360020a915084821115620028d557620028d4620027c9565b5b5062002945565b5060208310610133831016604e8410600b8410161715620029165782820a90508381111562002910576200290f620027c9565b5b62002945565b62002925848484600162002805565b925090508184048111156200293f576200293e620027c9565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062002970826200294c565b91506200297d8362002956565b9250620029ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462002860565b905092915050565b6000620029c1826200294c565b9150620029ce836200294c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562002a0a5762002a09620027c9565b5b828202905092915050565b62002a20816200294c565b82525050565b600060208201905062002a3d600083018462002a15565b92915050565b600062002a50826200294c565b915062002a5d836200294c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562002a955762002a94620027c9565b5b828201905092915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062002ae9601b8362002aa0565b915062002af68262002ab1565b602082019050919050565b6000602082019050818103600083015262002b1c8162002ada565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062002b5f826200294c565b915062002b6c836200294c565b92508262002b7f5762002b7e62002b23565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062002be860218362002aa0565b915062002bf58262002b8a565b604082019050919050565b6000602082019050818103600083015262002c1b8162002bd9565b9050919050565b600081519050919050565b60005b8381101562002c4d57808201518184015260208101905062002c30565b8381111562002c5d576000848401525b50505050565b6000601f19601f8301169050919050565b600062002c818262002c22565b62002c8d818562002aa0565b935062002c9f81856020860162002c2d565b62002caa8162002c63565b840191505092915050565b6000602082019050818103600083015262002cd1818462002c74565b905092915050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600062002d1160168362002aa0565b915062002d1e8262002cd9565b602082019050919050565b6000602082019050818103600083015262002d448162002d02565b9050919050565b7f45786365656473206d61785478416d6f756e7400000000000000000000000000600082015250565b600062002d8360138362002aa0565b915062002d908262002d4b565b602082019050919050565b6000602082019050818103600083015262002db68162002d74565b9050919050565b7f457863656564732057616c6c6574000000000000000000000000000000000000600082015250565b600062002df5600e8362002aa0565b915062002e028262002dbd565b602082019050919050565b6000602082019050818103600083015262002e288162002de6565b9050919050565b600062002e3c826200294c565b915062002e49836200294c565b92508282101562002e5f5762002e5e620027c9565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062002efa8262002ecd565b9050919050565b62002f0c8162002eed565b811462002f1857600080fd5b50565b60008151905062002f2c8162002f01565b92915050565b60006020828403121562002f4b5762002f4a62002ec8565b5b600062002f5b8482850162002f1b565b91505092915050565b6000819050919050565b6000819050919050565b600062002f9962002f9362002f8d8462002f64565b62002f6e565b6200294c565b9050919050565b62002fab8162002f78565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b62002fe88162002eed565b82525050565b600062002ffc838362002fdd565b60208301905092915050565b6000602082019050919050565b6000620030228262002fb1565b6200302e818562002fbc565b93506200303b8362002fcd565b8060005b838110156200307257815162003056888262002fee565b9750620030638362003008565b9250506001810190506200303f565b5085935050505092915050565b6200308a8162002eed565b82525050565b600060a082019050620030a7600083018862002a15565b620030b6602083018762002fa0565b8181036040830152620030ca818662003015565b9050620030db60608301856200307f565b620030ea608083018462002a15565b9695505050505050565b60006040820190506200310b600083018562002a15565b81810360208301526200311f818462003015565b90509392505050565b600060c0820190506200313f60008301896200307f565b6200314e602083018862002a15565b6200315d604083018762002fa0565b6200316c606083018662002fa0565b6200317b60808301856200307f565b6200318a60a083018462002a15565b979650505050505050565b620031a0816200294c565b8114620031ac57600080fd5b50565b600081519050620031c08162003195565b92915050565b600080600060608486031215620031e257620031e162002ec8565b5b6000620031f286828701620031af565b93505060206200320586828701620031af565b92505060406200321886828701620031af565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200328060248362002aa0565b91506200328d8262003222565b604082019050919050565b60006020820190508181036000830152620032b38162003271565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200331860228362002aa0565b91506200332582620032ba565b604082019050919050565b600060208201905081810360008301526200334b8162003309565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200339a57607f821691505b60208210811415620033b157620033b062003352565b5b50919050565b60805160a05161556a620033eb600039600081816113fe01526117340152600081816117080152611760015261556a6000f3fe60806040526004361061037a5760003560e01c806370a08231116101d1578063b94b0aef11610102578063e60ccfb0116100a0578063f242ab411161006f578063f242ab4114610cb6578063f2fde38b14610ce1578063f71b9bbf14610d0a578063f872858a14610d3357610381565b8063e60ccfb014610c20578063e6b2603b14610c4b578063e9fd339414610c62578063ee828db314610c8d57610381565b8063c867d60b116100dc578063c867d60b14610b54578063cea9d26f14610b91578063dd62ed3e14610bba578063df8408fe14610bf757610381565b8063b94b0aef14610ad7578063bf56b37114610b00578063c16dd4a414610b2b57610381565b80638b42507f1161016f578063a1c2478011610149578063a1c2478014610a09578063a457c2d714610a34578063a9059cbb14610a71578063ae85ade614610aae57610381565b80638b42507f146109765780638da5cb5b146109b357806395d89b41146109de57610381565b8063751039fc116101ab578063751039fc146108de5780637d1db4a5146108f5578063807c2d9c1461092057806388f8df0a1461094b57610381565b806370a0823114610861578063715018a61461089e578063728d41c9146108b557610381565b80632fb97b37116102ab5780635342acb4116102495780635d098b38116102235780635d098b38146107b95780635e42358c146107e2578063651a89871461080d5780636ddd17131461083657610381565b80635342acb41461072a57806359fac517146107675780635c85974f1461079057610381565b80633950935111610285578063395093511461065e5780633ecad2711461069b578063468c7ee2146106d85780634974d88f1461070157610381565b80632fb97b37146105df57806330563bd71461060a578063313ce5671461063357610381565b806318160ddd1161031857806325519cf2116102f257806325519cf2146105355780632598cdb21461055e57806327c8f835146105895780632b112e49146105b457610381565b806318160ddd146104a45780631d865c30146104cf57806323b872dd146104f857610381565b80630758d924116103545780630758d924146103e65780630930907b14610411578063095ea7b31461043c578063111a46511461047957610381565b806301339c21146103865780630445b6671461039057806306fdde03146103bb57610381565b3661038157005b600080fd5b61038e610d5e565b005b34801561039c57600080fd5b506103a561133e565b6040516103b2919061446e565b60405180910390f35b3480156103c757600080fd5b506103d0611344565b6040516103dd9190614522565b60405180910390f35b3480156103f257600080fd5b506103fb6113d6565b60405161040891906145c3565b60405180910390f35b34801561041d57600080fd5b506104266113fc565b60405161043391906145ff565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e9190614677565b611420565b60405161047091906146d2565b60405180910390f35b34801561048557600080fd5b5061048e61143e565b60405161049b91906146d2565b60405180910390f35b3480156104b057600080fd5b506104b9611451565b6040516104c6919061446e565b60405180910390f35b3480156104db57600080fd5b506104f660048036038101906104f191906146ed565b61145b565b005b34801561050457600080fd5b5061051f600480360381019061051a9190614740565b611522565b60405161052c91906146d2565b60405180910390f35b34801561054157600080fd5b5061055c600480360381019061055791906146ed565b611619565b005b34801561056a57600080fd5b506105736116e0565b60405161058091906145ff565b60405180910390f35b34801561059557600080fd5b5061059e611706565b6040516105ab91906145ff565b60405180910390f35b3480156105c057600080fd5b506105c961172a565b6040516105d6919061446e565b60405180910390f35b3480156105eb57600080fd5b506105f46117a8565b60405161060191906145ff565b60405180910390f35b34801561061657600080fd5b50610631600480360381019061062c9190614793565b6117ce565b005b34801561063f57600080fd5b5061064861188e565b60405161065591906147dc565b60405180910390f35b34801561066a57600080fd5b5061068560048036038101906106809190614677565b6118a5565b60405161069291906146d2565b60405180910390f35b3480156106a757600080fd5b506106c260048036038101906106bd9190614793565b611958565b6040516106cf91906146d2565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa9190614793565b611978565b005b34801561070d57600080fd5b5061072860048036038101906107239190614823565b611a38565b005b34801561073657600080fd5b50610751600480360381019061074c9190614793565b611ad1565b60405161075e91906146d2565b60405180910390f35b34801561077357600080fd5b5061078e60048036038101906107899190614793565b611af1565b005b34801561079c57600080fd5b506107b760048036038101906107b29190614850565b611bb1565b005b3480156107c557600080fd5b506107e060048036038101906107db9190614793565b611c37565b005b3480156107ee57600080fd5b506107f7611cf7565b60405161080491906146d2565b60405180910390f35b34801561081957600080fd5b50610834600480360381019061082f919061487d565b611d0a565b005b34801561084257600080fd5b5061084b611de1565b60405161085891906146d2565b60405180910390f35b34801561086d57600080fd5b5061088860048036038101906108839190614793565b611df4565b604051610895919061446e565b60405180910390f35b3480156108aa57600080fd5b506108b3611e3d565b005b3480156108c157600080fd5b506108dc60048036038101906108d79190614850565b611ec5565b005b3480156108ea57600080fd5b506108f3611f4b565b005b34801561090157600080fd5b5061090a612013565b604051610917919061446e565b60405180910390f35b34801561092c57600080fd5b50610935612019565b604051610942919061446e565b60405180910390f35b34801561095757600080fd5b5061096061201f565b60405161096d919061446e565b60405180910390f35b34801561098257600080fd5b5061099d60048036038101906109989190614793565b612025565b6040516109aa91906146d2565b60405180910390f35b3480156109bf57600080fd5b506109c8612045565b6040516109d591906145ff565b60405180910390f35b3480156109ea57600080fd5b506109f361206e565b604051610a009190614522565b60405180910390f35b348015610a1557600080fd5b50610a1e612100565b604051610a2b919061446e565b60405180910390f35b348015610a4057600080fd5b50610a5b6004803603810190610a569190614677565b612106565b604051610a6891906146d2565b60405180910390f35b348015610a7d57600080fd5b50610a986004803603810190610a939190614677565b6121d3565b604051610aa591906146d2565b60405180910390f35b348015610aba57600080fd5b50610ad56004803603810190610ad0919061487d565b6121f2565b005b348015610ae357600080fd5b50610afe6004803603810190610af991906148bd565b6122c9565b005b348015610b0c57600080fd5b50610b15612399565b604051610b22919061446e565b60405180910390f35b348015610b3757600080fd5b50610b526004803603810190610b4d919061487d565b61239f565b005b348015610b6057600080fd5b50610b7b6004803603810190610b769190614793565b6124d4565b604051610b8891906146d2565b60405180910390f35b348015610b9d57600080fd5b50610bb86004803603810190610bb39190614740565b6124f4565b005b348015610bc657600080fd5b50610be16004803603810190610bdc9190614910565b6126c6565b604051610bee919061446e565b60405180910390f35b348015610c0357600080fd5b50610c1e6004803603810190610c19919061487d565b61274d565b005b348015610c2c57600080fd5b50610c35612824565b604051610c4291906145ff565b60405180910390f35b348015610c5757600080fd5b50610c6061284a565b005b348015610c6e57600080fd5b50610c77612989565b604051610c8491906146d2565b60405180910390f35b348015610c9957600080fd5b50610cb46004803603810190610caf9190614823565b61299c565b005b348015610cc257600080fd5b50610ccb612a35565b604051610cd891906145ff565b60405180910390f35b348015610ced57600080fd5b50610d086004803603810190610d039190614793565b612a5b565b005b348015610d1657600080fd5b50610d316004803603810190610d2c9190614793565b612b53565b005b348015610d3f57600080fd5b50610d48612c13565b604051610d5591906146d2565b60405180910390f35b610d66612df7565b73ffffffffffffffffffffffffffffffffffffffff16610d84612045565b73ffffffffffffffffffffffffffffffffffffffff1614610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd19061499c565b60405180910390fd5b6000601c5414610e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1690614a08565b60405180910390fd5b43601c819055506001601d60016101000a81548160ff0219169083151502179055506000601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600160048190555060006005819055506000600681905550600160078190555060006008819055506000600981905550601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080610f01612045565b426040518863ffffffff1660e01b8152600401610f2396959493929190614a63565b60606040518083038185885af1158015610f41573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f669190614ad9565b5050506000601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190614b41565b905060008173ffffffffffffffffffffffffffffffffffffffff1663e6a4390530601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ae9190614b41565b6040518363ffffffff1660e01b81526004016110cb929190614b6e565b602060405180830381865afa1580156110e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110c9190614b41565b905080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160156000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160166000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601d60026101000a81548160ff0219169083151502179055506001601d60046101000a81548160ff0219169083151502179055506001601d60056101000a81548160ff021916908315150217905550505050565b601b5481565b60606001805461135390614bc6565b80601f016020809104026020016040519081016040528092919081815260200182805461137f90614bc6565b80156113cc5780601f106113a1576101008083540402835291602001916113cc565b820191906000526020600020905b8154815290600101906020018083116113af57829003601f168201915b5050505050905090565b601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061143461142d612df7565b8484612dff565b6001905092915050565b601d60009054906101000a900460ff1681565b6000601854905090565b611463612df7565b73ffffffffffffffffffffffffffffffffffffffff16611481612045565b73ffffffffffffffffffffffffffffffffffffffff16146114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce9061499c565b60405180910390fd5b826007819055508160088190555080600981905550611517600954611509600854600754612c2690919063ffffffff16565b612c2690919063ffffffff16565b600b81905550505050565b600061152f848484612fca565b5061160e8461153c612df7565b611609856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250601360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006115bf612df7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d499092919063ffffffff16565b612dff565b600190509392505050565b611621612df7565b73ffffffffffffffffffffffffffffffffffffffff1661163f612045565b73ffffffffffffffffffffffffffffffffffffffff1614611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c9061499c565b60405180910390fd5b8260048190555081600581905550806006819055506116d56006546116c7600554600454612c2690919063ffffffff16565b612c2690919063ffffffff16565b600a81905550505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006117a36117587f0000000000000000000000000000000000000000000000000000000000000000611df4565b6117956117847f0000000000000000000000000000000000000000000000000000000000000000611df4565b601854612dad90919063ffffffff16565b612dad90919063ffffffff16565b905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117d6612df7565b73ffffffffffffffffffffffffffffffffffffffff166117f4612045565b73ffffffffffffffffffffffffffffffffffffffff161461184a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118419061499c565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b600061194e6118b2612df7565b8461194985601360006118c3612df7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2690919063ffffffff16565b612dff565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b611980612df7565b73ffffffffffffffffffffffffffffffffffffffff1661199e612045565b73ffffffffffffffffffffffffffffffffffffffff16146119f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119eb9061499c565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a40612df7565b73ffffffffffffffffffffffffffffffffffffffff16611a5e612045565b73ffffffffffffffffffffffffffffffffffffffff1614611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab9061499c565b60405180910390fd5b80601d60056101000a81548160ff02191690831515021790555050565b60146020528060005260406000206000915054906101000a900460ff1681565b611af9612df7565b73ffffffffffffffffffffffffffffffffffffffff16611b17612045565b73ffffffffffffffffffffffffffffffffffffffff1614611b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b649061499c565b60405180910390fd5b80601d60066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611bb9612df7565b73ffffffffffffffffffffffffffffffffffffffff16611bd7612045565b73ffffffffffffffffffffffffffffffffffffffff1614611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c249061499c565b60405180910390fd5b8060198190555050565b611c3f612df7565b73ffffffffffffffffffffffffffffffffffffffff16611c5d612045565b73ffffffffffffffffffffffffffffffffffffffff1614611cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caa9061499c565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60049054906101000a900460ff1681565b611d12612df7565b73ffffffffffffffffffffffffffffffffffffffff16611d30612045565b73ffffffffffffffffffffffffffffffffffffffff1614611d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7d9061499c565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60029054906101000a900460ff1681565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611e45612df7565b73ffffffffffffffffffffffffffffffffffffffff16611e63612045565b73ffffffffffffffffffffffffffffffffffffffff1614611eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb09061499c565b60405180910390fd5b611ec360006136bb565b565b611ecd612df7565b73ffffffffffffffffffffffffffffffffffffffff16611eeb612045565b73ffffffffffffffffffffffffffffffffffffffff1614611f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f389061499c565b60405180910390fd5b80601a8190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd290614c44565b60405180910390fd5b6000601d60046101000a81548160ff0219169083151502179055506000601d60056101000a81548160ff021916908315150217905550565b60195481565b601a5481565b600a5481565b60176020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461207d90614bc6565b80601f01602080910402602001604051908101604052809291908181526020018280546120a990614bc6565b80156120f65780601f106120cb576101008083540402835291602001916120f6565b820191906000526020600020905b8154815290600101906020018083116120d957829003601f168201915b5050505050905090565b600b5481565b60006121c9612113612df7565b846121c485604051806060016040528060258152602001615510602591396013600061213d612df7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d499092919063ffffffff16565b612dff565b6001905092915050565b60006121e76121e0612df7565b8484612fca565b506001905092915050565b6121fa612df7565b73ffffffffffffffffffffffffffffffffffffffff16612218612045565b73ffffffffffffffffffffffffffffffffffffffff161461226e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122659061499c565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235090614c44565b60405180910390fd5b81601d60026101000a81548160ff02191690831515021790555080601d60036101000a81548160ff02191690831515021790555082601b81905550505050565b601c5481565b6123a7612df7565b73ffffffffffffffffffffffffffffffffffffffff166123c5612045565b73ffffffffffffffffffffffffffffffffffffffff161461241b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124129061499c565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156124d05780601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b60166020528060005260406000206000915054906101000a900460ff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257b90614c44565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516024016125b0929190614c64565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161263a9190614cd4565b6000604051808303816000865af19150503d8060008114612677576040519150601f19603f3d011682016040523d82523d6000602084013e61267c565b606091505b50509050806126c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b790614d37565b60405180910390fd5b50505050565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612755612df7565b73ffffffffffffffffffffffffffffffffffffffff16612773612045565b73ffffffffffffffffffffffffffffffffffffffff16146127c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c09061499c565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146128da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d190614c44565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161290090614d7d565b60006040518083038185875af1925050503d806000811461293d576040519150601f19603f3d011682016040523d82523d6000602084013e612942565b606091505b5050905080612986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297d90614dde565b60405180910390fd5b50565b601d60039054906101000a900460ff1681565b6129a4612df7565b73ffffffffffffffffffffffffffffffffffffffff166129c2612045565b73ffffffffffffffffffffffffffffffffffffffff1614612a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0f9061499c565b60405180910390fd5b80601d60046101000a81548160ff02191690831515021790555050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612a63612df7565b73ffffffffffffffffffffffffffffffffffffffff16612a81612045565b73ffffffffffffffffffffffffffffffffffffffff1614612ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ace9061499c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3e90614e70565b60405180910390fd5b612b50816136bb565b50565b612b5b612df7565b73ffffffffffffffffffffffffffffffffffffffff16612b79612045565b73ffffffffffffffffffffffffffffffffffffffff1614612bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc69061499c565b60405180910390fd5b80601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60059054906101000a900460ff1681565b6000808284612c359190614ebf565b905083811015612c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7190614f61565b60405180910390fd5b8091505092915050565b600080831415612c975760009050612cf9565b60008284612ca59190614f81565b9050828482612cb4919061500a565b14612cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ceb906150ad565b60405180910390fd5b809150505b92915050565b6000612d4183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061377f565b905092915050565b6000838311158290612d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d889190614522565b60405180910390fd5b5060008385612da091906150cd565b9050809150509392505050565b6000612def83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d49565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6690615173565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed690615205565b60405180910390fd5b80601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612fbd919061446e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561300557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561303f57600080fd5b6000821161304c57600080fd5b601e60149054906101000a900460ff16156130735761306c8484846137e2565b90506136b4565b601d60019054906101000a900460ff1661316857601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806131285750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315e90615271565b60405180910390fd5b5b6000601c54141580156131885750601d60009054906101000a900460ff16155b15613196576131956139b5565b5b60006131a130611df4565b90506000601b5482101590508080156131c75750601e60149054906101000a900460ff16155b801561321d5750601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156132355750601d60029054906101000a900460ff165b801561328b5750601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156132e15750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156132f0576132ef82613a51565b5b601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156133945750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156133ac5750601d60049054906101000a900460ff165b156133f7576019548411156133f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ed906152dd565b60405180910390fd5b5b613480846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d499092919063ffffffff16565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006134cf8787613d37565b6134e3576134de878787613ea2565b6134e5565b845b9050601d60059054906101000a900460ff16801561354d5750601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156135b257601a546135708261356289611df4565b612c2690919063ffffffff16565b11156135b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135a890615349565b60405180910390fd5b5b61360481601260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2690919063ffffffff16565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136a4919061446e565b60405180910390a3600193505050505b9392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080831182906137c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137bd9190614522565b60405180910390fd5b50600083856137d5919061500a565b9050809150509392505050565b600061386d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d499092919063ffffffff16565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061390282601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2690919063ffffffff16565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139a2919061446e565b60405180910390a3600190509392505050565b6003601c546139c49190614ebf565b43116139d6576139d56063806140c7565b5b6003601c546139e59190614ebf565b43118015613a0157506016601c546139fd9190614ebf565b4311155b15613a1257613a11602d806140c7565b5b6016601c54613a219190614ebf565b431115613a4f57613a336003806140c7565b6001601d60006101000a81548160ff0219169083151502179055505b565b6001601e60146101000a81548160ff021916908315150217905550601d60039054906101000a900460ff1615613a8757601b5490505b6000613aa0600b54600a54612c2690919063ffffffff16565b90506000613abb600854600554612c2690919063ffffffff16565b90506000613ad6600954600654612c2690919063ffffffff16565b90506000613b126002613b0486613af6878a612c8490919063ffffffff16565b612cff90919063ffffffff16565b612cff90919063ffffffff16565b90506000613b298287612dad90919063ffffffff16565b90506000479050613b39826140d9565b6000613b4e8247612dad90919063ffffffff16565b90506000613b78613b69600289612cff90919063ffffffff16565b89612dad90919063ffffffff16565b90506000613bb46002613ba684613b988c88612c8490919063ffffffff16565b612cff90919063ffffffff16565b612cff90919063ffffffff16565b90506000613bdd83613bcf8a87612c8490919063ffffffff16565b612cff90919063ffffffff16565b90506000613c0682613bf88588612dad90919063ffffffff16565b612dad90919063ffffffff16565b90506000821115613c7b57600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613c79573d6000803e3d6000fd5b505b6000811115613cee57600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613cec573d6000803e3d6000fd5b505b600083118015613cfe5750600088115b15613d0e57613d0d8884614355565b5b50505050505050505050506000601e60146101000a81548160ff02191690831515021790555050565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613dda5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613de85760019050613e9c565b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613e895750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613e975760009050613e9c565b600090505b92915050565b600080601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613f2757613f20601154613f12600a5486612c8490919063ffffffff16565b612cff90919063ffffffff16565b9050613fa6565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613fa557613fa2601154613f94600b5486612c8490919063ffffffff16565b612cff90919063ffffffff16565b90505b5b60008111156140aa5761400181601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2690919063ffffffff16565b601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516140a1919061446e565b60405180910390a35b6140bd8184612dad90919063ffffffff16565b9150509392505050565b81600a8190555080600b819055505050565b6000600267ffffffffffffffff8111156140f6576140f5615369565b5b6040519080825280602002602001820160405280156141245781602001602082028036833780820191505090505b509050308160008151811061413c5761413b615398565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156141e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142079190614b41565b8160018151811061421b5761421a615398565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061428230601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612dff565b601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016142e6959493929190615485565b600060405180830381600087803b15801561430057600080fd5b505af1158015614314573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516143499291906154df565b60405180910390a15050565b61438230601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612dff565b601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161440b96959493929190614a63565b60606040518083038185885af1158015614429573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061444e9190614ad9565b5050505050565b6000819050919050565b61446881614455565b82525050565b6000602082019050614483600083018461445f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156144c35780820151818401526020810190506144a8565b838111156144d2576000848401525b50505050565b6000601f19601f8301169050919050565b60006144f482614489565b6144fe8185614494565b935061450e8185602086016144a5565b614517816144d8565b840191505092915050565b6000602082019050818103600083015261453c81846144e9565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061458961458461457f84614544565b614564565b614544565b9050919050565b600061459b8261456e565b9050919050565b60006145ad82614590565b9050919050565b6145bd816145a2565b82525050565b60006020820190506145d860008301846145b4565b92915050565b60006145e982614544565b9050919050565b6145f9816145de565b82525050565b600060208201905061461460008301846145f0565b92915050565b600080fd5b614628816145de565b811461463357600080fd5b50565b6000813590506146458161461f565b92915050565b61465481614455565b811461465f57600080fd5b50565b6000813590506146718161464b565b92915050565b6000806040838503121561468e5761468d61461a565b5b600061469c85828601614636565b92505060206146ad85828601614662565b9150509250929050565b60008115159050919050565b6146cc816146b7565b82525050565b60006020820190506146e760008301846146c3565b92915050565b6000806000606084860312156147065761470561461a565b5b600061471486828701614662565b935050602061472586828701614662565b925050604061473686828701614662565b9150509250925092565b6000806000606084860312156147595761475861461a565b5b600061476786828701614636565b935050602061477886828701614636565b925050604061478986828701614662565b9150509250925092565b6000602082840312156147a9576147a861461a565b5b60006147b784828501614636565b91505092915050565b600060ff82169050919050565b6147d6816147c0565b82525050565b60006020820190506147f160008301846147cd565b92915050565b614800816146b7565b811461480b57600080fd5b50565b60008135905061481d816147f7565b92915050565b6000602082840312156148395761483861461a565b5b60006148478482850161480e565b91505092915050565b6000602082840312156148665761486561461a565b5b600061487484828501614662565b91505092915050565b600080604083850312156148945761489361461a565b5b60006148a285828601614636565b92505060206148b38582860161480e565b9150509250929050565b6000806000606084860312156148d6576148d561461a565b5b60006148e486828701614662565b93505060206148f58682870161480e565b92505060406149068682870161480e565b9150509250925092565b600080604083850312156149275761492661461a565b5b600061493585828601614636565b925050602061494685828601614636565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614986602083614494565b915061499182614950565b602082019050919050565b600060208201905081810360008301526149b581614979565b9050919050565b7f416c7265616479206c61756e6368656421000000000000000000000000000000600082015250565b60006149f2601183614494565b91506149fd826149bc565b602082019050919050565b60006020820190508181036000830152614a21816149e5565b9050919050565b6000819050919050565b6000614a4d614a48614a4384614a28565b614564565b614455565b9050919050565b614a5d81614a32565b82525050565b600060c082019050614a7860008301896145f0565b614a85602083018861445f565b614a926040830187614a54565b614a9f6060830186614a54565b614aac60808301856145f0565b614ab960a083018461445f565b979650505050505050565b600081519050614ad38161464b565b92915050565b600080600060608486031215614af257614af161461a565b5b6000614b0086828701614ac4565b9350506020614b1186828701614ac4565b9250506040614b2286828701614ac4565b9150509250925092565b600081519050614b3b8161461f565b92915050565b600060208284031215614b5757614b5661461a565b5b6000614b6584828501614b2c565b91505092915050565b6000604082019050614b8360008301856145f0565b614b9060208301846145f0565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614bde57607f821691505b60208210811415614bf257614bf1614b97565b5b50919050565b7f496e76616c69642043616c6c6572000000000000000000000000000000000000600082015250565b6000614c2e600e83614494565b9150614c3982614bf8565b602082019050919050565b60006020820190508181036000830152614c5d81614c21565b9050919050565b6000604082019050614c7960008301856145f0565b614c86602083018461445f565b9392505050565b600081519050919050565b600081905092915050565b6000614cae82614c8d565b614cb88185614c98565b9350614cc88185602086016144a5565b80840191505092915050565b6000614ce08284614ca3565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b6000614d21601483614494565b9150614d2c82614ceb565b602082019050919050565b60006020820190508181036000830152614d5081614d14565b9050919050565b50565b6000614d67600083614c98565b9150614d7282614d57565b600082019050919050565b6000614d8882614d5a565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614dc8601483614494565b9150614dd382614d92565b602082019050919050565b60006020820190508181036000830152614df781614dbb565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614e5a602683614494565b9150614e6582614dfe565b604082019050919050565b60006020820190508181036000830152614e8981614e4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614eca82614455565b9150614ed583614455565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614f0a57614f09614e90565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614f4b601b83614494565b9150614f5682614f15565b602082019050919050565b60006020820190508181036000830152614f7a81614f3e565b9050919050565b6000614f8c82614455565b9150614f9783614455565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614fd057614fcf614e90565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061501582614455565b915061502083614455565b9250826150305761502f614fdb565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000615097602183614494565b91506150a28261503b565b604082019050919050565b600060208201905081810360008301526150c68161508a565b9050919050565b60006150d882614455565b91506150e383614455565b9250828210156150f6576150f5614e90565b5b828203905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061515d602483614494565b915061516882615101565b604082019050919050565b6000602082019050818103600083015261518c81615150565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006151ef602283614494565b91506151fa82615193565b604082019050919050565b6000602082019050818103600083015261521e816151e2565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061525b601683614494565b915061526682615225565b602082019050919050565b6000602082019050818103600083015261528a8161524e565b9050919050565b7f45786365656473206d61785478416d6f756e7400000000000000000000000000600082015250565b60006152c7601383614494565b91506152d282615291565b602082019050919050565b600060208201905081810360008301526152f6816152ba565b9050919050565b7f457863656564732057616c6c6574000000000000000000000000000000000000600082015250565b6000615333600e83614494565b915061533e826152fd565b602082019050919050565b6000602082019050818103600083015261536281615326565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6153fc816145de565b82525050565b600061540e83836153f3565b60208301905092915050565b6000602082019050919050565b6000615432826153c7565b61543c81856153d2565b9350615447836153e3565b8060005b8381101561547857815161545f8882615402565b975061546a8361541a565b92505060018101905061544b565b5085935050505092915050565b600060a08201905061549a600083018861445f565b6154a76020830187614a54565b81810360408301526154b98186615427565b90506154c860608301856145f0565b6154d5608083018461445f565b9695505050505050565b60006040820190506154f4600083018561445f565b81810360208301526155068184615427565b9050939250505056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220defb66b5e0d1e999a499a48018641e112d59c8b94556e8d170021c646f175a1464736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061037a5760003560e01c806370a08231116101d1578063b94b0aef11610102578063e60ccfb0116100a0578063f242ab411161006f578063f242ab4114610cb6578063f2fde38b14610ce1578063f71b9bbf14610d0a578063f872858a14610d3357610381565b8063e60ccfb014610c20578063e6b2603b14610c4b578063e9fd339414610c62578063ee828db314610c8d57610381565b8063c867d60b116100dc578063c867d60b14610b54578063cea9d26f14610b91578063dd62ed3e14610bba578063df8408fe14610bf757610381565b8063b94b0aef14610ad7578063bf56b37114610b00578063c16dd4a414610b2b57610381565b80638b42507f1161016f578063a1c2478011610149578063a1c2478014610a09578063a457c2d714610a34578063a9059cbb14610a71578063ae85ade614610aae57610381565b80638b42507f146109765780638da5cb5b146109b357806395d89b41146109de57610381565b8063751039fc116101ab578063751039fc146108de5780637d1db4a5146108f5578063807c2d9c1461092057806388f8df0a1461094b57610381565b806370a0823114610861578063715018a61461089e578063728d41c9146108b557610381565b80632fb97b37116102ab5780635342acb4116102495780635d098b38116102235780635d098b38146107b95780635e42358c146107e2578063651a89871461080d5780636ddd17131461083657610381565b80635342acb41461072a57806359fac517146107675780635c85974f1461079057610381565b80633950935111610285578063395093511461065e5780633ecad2711461069b578063468c7ee2146106d85780634974d88f1461070157610381565b80632fb97b37146105df57806330563bd71461060a578063313ce5671461063357610381565b806318160ddd1161031857806325519cf2116102f257806325519cf2146105355780632598cdb21461055e57806327c8f835146105895780632b112e49146105b457610381565b806318160ddd146104a45780631d865c30146104cf57806323b872dd146104f857610381565b80630758d924116103545780630758d924146103e65780630930907b14610411578063095ea7b31461043c578063111a46511461047957610381565b806301339c21146103865780630445b6671461039057806306fdde03146103bb57610381565b3661038157005b600080fd5b61038e610d5e565b005b34801561039c57600080fd5b506103a561133e565b6040516103b2919061446e565b60405180910390f35b3480156103c757600080fd5b506103d0611344565b6040516103dd9190614522565b60405180910390f35b3480156103f257600080fd5b506103fb6113d6565b60405161040891906145c3565b60405180910390f35b34801561041d57600080fd5b506104266113fc565b60405161043391906145ff565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e9190614677565b611420565b60405161047091906146d2565b60405180910390f35b34801561048557600080fd5b5061048e61143e565b60405161049b91906146d2565b60405180910390f35b3480156104b057600080fd5b506104b9611451565b6040516104c6919061446e565b60405180910390f35b3480156104db57600080fd5b506104f660048036038101906104f191906146ed565b61145b565b005b34801561050457600080fd5b5061051f600480360381019061051a9190614740565b611522565b60405161052c91906146d2565b60405180910390f35b34801561054157600080fd5b5061055c600480360381019061055791906146ed565b611619565b005b34801561056a57600080fd5b506105736116e0565b60405161058091906145ff565b60405180910390f35b34801561059557600080fd5b5061059e611706565b6040516105ab91906145ff565b60405180910390f35b3480156105c057600080fd5b506105c961172a565b6040516105d6919061446e565b60405180910390f35b3480156105eb57600080fd5b506105f46117a8565b60405161060191906145ff565b60405180910390f35b34801561061657600080fd5b50610631600480360381019061062c9190614793565b6117ce565b005b34801561063f57600080fd5b5061064861188e565b60405161065591906147dc565b60405180910390f35b34801561066a57600080fd5b5061068560048036038101906106809190614677565b6118a5565b60405161069291906146d2565b60405180910390f35b3480156106a757600080fd5b506106c260048036038101906106bd9190614793565b611958565b6040516106cf91906146d2565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa9190614793565b611978565b005b34801561070d57600080fd5b5061072860048036038101906107239190614823565b611a38565b005b34801561073657600080fd5b50610751600480360381019061074c9190614793565b611ad1565b60405161075e91906146d2565b60405180910390f35b34801561077357600080fd5b5061078e60048036038101906107899190614793565b611af1565b005b34801561079c57600080fd5b506107b760048036038101906107b29190614850565b611bb1565b005b3480156107c557600080fd5b506107e060048036038101906107db9190614793565b611c37565b005b3480156107ee57600080fd5b506107f7611cf7565b60405161080491906146d2565b60405180910390f35b34801561081957600080fd5b50610834600480360381019061082f919061487d565b611d0a565b005b34801561084257600080fd5b5061084b611de1565b60405161085891906146d2565b60405180910390f35b34801561086d57600080fd5b5061088860048036038101906108839190614793565b611df4565b604051610895919061446e565b60405180910390f35b3480156108aa57600080fd5b506108b3611e3d565b005b3480156108c157600080fd5b506108dc60048036038101906108d79190614850565b611ec5565b005b3480156108ea57600080fd5b506108f3611f4b565b005b34801561090157600080fd5b5061090a612013565b604051610917919061446e565b60405180910390f35b34801561092c57600080fd5b50610935612019565b604051610942919061446e565b60405180910390f35b34801561095757600080fd5b5061096061201f565b60405161096d919061446e565b60405180910390f35b34801561098257600080fd5b5061099d60048036038101906109989190614793565b612025565b6040516109aa91906146d2565b60405180910390f35b3480156109bf57600080fd5b506109c8612045565b6040516109d591906145ff565b60405180910390f35b3480156109ea57600080fd5b506109f361206e565b604051610a009190614522565b60405180910390f35b348015610a1557600080fd5b50610a1e612100565b604051610a2b919061446e565b60405180910390f35b348015610a4057600080fd5b50610a5b6004803603810190610a569190614677565b612106565b604051610a6891906146d2565b60405180910390f35b348015610a7d57600080fd5b50610a986004803603810190610a939190614677565b6121d3565b604051610aa591906146d2565b60405180910390f35b348015610aba57600080fd5b50610ad56004803603810190610ad0919061487d565b6121f2565b005b348015610ae357600080fd5b50610afe6004803603810190610af991906148bd565b6122c9565b005b348015610b0c57600080fd5b50610b15612399565b604051610b22919061446e565b60405180910390f35b348015610b3757600080fd5b50610b526004803603810190610b4d919061487d565b61239f565b005b348015610b6057600080fd5b50610b7b6004803603810190610b769190614793565b6124d4565b604051610b8891906146d2565b60405180910390f35b348015610b9d57600080fd5b50610bb86004803603810190610bb39190614740565b6124f4565b005b348015610bc657600080fd5b50610be16004803603810190610bdc9190614910565b6126c6565b604051610bee919061446e565b60405180910390f35b348015610c0357600080fd5b50610c1e6004803603810190610c19919061487d565b61274d565b005b348015610c2c57600080fd5b50610c35612824565b604051610c4291906145ff565b60405180910390f35b348015610c5757600080fd5b50610c6061284a565b005b348015610c6e57600080fd5b50610c77612989565b604051610c8491906146d2565b60405180910390f35b348015610c9957600080fd5b50610cb46004803603810190610caf9190614823565b61299c565b005b348015610cc257600080fd5b50610ccb612a35565b604051610cd891906145ff565b60405180910390f35b348015610ced57600080fd5b50610d086004803603810190610d039190614793565b612a5b565b005b348015610d1657600080fd5b50610d316004803603810190610d2c9190614793565b612b53565b005b348015610d3f57600080fd5b50610d48612c13565b604051610d5591906146d2565b60405180910390f35b610d66612df7565b73ffffffffffffffffffffffffffffffffffffffff16610d84612045565b73ffffffffffffffffffffffffffffffffffffffff1614610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd19061499c565b60405180910390fd5b6000601c5414610e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1690614a08565b60405180910390fd5b43601c819055506001601d60016101000a81548160ff0219169083151502179055506000601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600160048190555060006005819055506000600681905550600160078190555060006008819055506000600981905550601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080610f01612045565b426040518863ffffffff1660e01b8152600401610f2396959493929190614a63565b60606040518083038185885af1158015610f41573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f669190614ad9565b5050506000601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190614b41565b905060008173ffffffffffffffffffffffffffffffffffffffff1663e6a4390530601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ae9190614b41565b6040518363ffffffff1660e01b81526004016110cb929190614b6e565b602060405180830381865afa1580156110e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110c9190614b41565b905080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160156000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160166000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601d60026101000a81548160ff0219169083151502179055506001601d60046101000a81548160ff0219169083151502179055506001601d60056101000a81548160ff021916908315150217905550505050565b601b5481565b60606001805461135390614bc6565b80601f016020809104026020016040519081016040528092919081815260200182805461137f90614bc6565b80156113cc5780601f106113a1576101008083540402835291602001916113cc565b820191906000526020600020905b8154815290600101906020018083116113af57829003601f168201915b5050505050905090565b601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061143461142d612df7565b8484612dff565b6001905092915050565b601d60009054906101000a900460ff1681565b6000601854905090565b611463612df7565b73ffffffffffffffffffffffffffffffffffffffff16611481612045565b73ffffffffffffffffffffffffffffffffffffffff16146114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce9061499c565b60405180910390fd5b826007819055508160088190555080600981905550611517600954611509600854600754612c2690919063ffffffff16565b612c2690919063ffffffff16565b600b81905550505050565b600061152f848484612fca565b5061160e8461153c612df7565b611609856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250601360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006115bf612df7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d499092919063ffffffff16565b612dff565b600190509392505050565b611621612df7565b73ffffffffffffffffffffffffffffffffffffffff1661163f612045565b73ffffffffffffffffffffffffffffffffffffffff1614611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c9061499c565b60405180910390fd5b8260048190555081600581905550806006819055506116d56006546116c7600554600454612c2690919063ffffffff16565b612c2690919063ffffffff16565b600a81905550505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006117a36117587f0000000000000000000000000000000000000000000000000000000000000000611df4565b6117956117847f000000000000000000000000000000000000000000000000000000000000dead611df4565b601854612dad90919063ffffffff16565b612dad90919063ffffffff16565b905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117d6612df7565b73ffffffffffffffffffffffffffffffffffffffff166117f4612045565b73ffffffffffffffffffffffffffffffffffffffff161461184a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118419061499c565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b600061194e6118b2612df7565b8461194985601360006118c3612df7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2690919063ffffffff16565b612dff565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b611980612df7565b73ffffffffffffffffffffffffffffffffffffffff1661199e612045565b73ffffffffffffffffffffffffffffffffffffffff16146119f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119eb9061499c565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a40612df7565b73ffffffffffffffffffffffffffffffffffffffff16611a5e612045565b73ffffffffffffffffffffffffffffffffffffffff1614611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab9061499c565b60405180910390fd5b80601d60056101000a81548160ff02191690831515021790555050565b60146020528060005260406000206000915054906101000a900460ff1681565b611af9612df7565b73ffffffffffffffffffffffffffffffffffffffff16611b17612045565b73ffffffffffffffffffffffffffffffffffffffff1614611b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b649061499c565b60405180910390fd5b80601d60066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611bb9612df7565b73ffffffffffffffffffffffffffffffffffffffff16611bd7612045565b73ffffffffffffffffffffffffffffffffffffffff1614611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c249061499c565b60405180910390fd5b8060198190555050565b611c3f612df7565b73ffffffffffffffffffffffffffffffffffffffff16611c5d612045565b73ffffffffffffffffffffffffffffffffffffffff1614611cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caa9061499c565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60049054906101000a900460ff1681565b611d12612df7565b73ffffffffffffffffffffffffffffffffffffffff16611d30612045565b73ffffffffffffffffffffffffffffffffffffffff1614611d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7d9061499c565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60029054906101000a900460ff1681565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611e45612df7565b73ffffffffffffffffffffffffffffffffffffffff16611e63612045565b73ffffffffffffffffffffffffffffffffffffffff1614611eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb09061499c565b60405180910390fd5b611ec360006136bb565b565b611ecd612df7565b73ffffffffffffffffffffffffffffffffffffffff16611eeb612045565b73ffffffffffffffffffffffffffffffffffffffff1614611f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f389061499c565b60405180910390fd5b80601a8190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd290614c44565b60405180910390fd5b6000601d60046101000a81548160ff0219169083151502179055506000601d60056101000a81548160ff021916908315150217905550565b60195481565b601a5481565b600a5481565b60176020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461207d90614bc6565b80601f01602080910402602001604051908101604052809291908181526020018280546120a990614bc6565b80156120f65780601f106120cb576101008083540402835291602001916120f6565b820191906000526020600020905b8154815290600101906020018083116120d957829003601f168201915b5050505050905090565b600b5481565b60006121c9612113612df7565b846121c485604051806060016040528060258152602001615510602591396013600061213d612df7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d499092919063ffffffff16565b612dff565b6001905092915050565b60006121e76121e0612df7565b8484612fca565b506001905092915050565b6121fa612df7565b73ffffffffffffffffffffffffffffffffffffffff16612218612045565b73ffffffffffffffffffffffffffffffffffffffff161461226e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122659061499c565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235090614c44565b60405180910390fd5b81601d60026101000a81548160ff02191690831515021790555080601d60036101000a81548160ff02191690831515021790555082601b81905550505050565b601c5481565b6123a7612df7565b73ffffffffffffffffffffffffffffffffffffffff166123c5612045565b73ffffffffffffffffffffffffffffffffffffffff161461241b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124129061499c565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156124d05780601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b60166020528060005260406000206000915054906101000a900460ff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257b90614c44565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516024016125b0929190614c64565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161263a9190614cd4565b6000604051808303816000865af19150503d8060008114612677576040519150601f19603f3d011682016040523d82523d6000602084013e61267c565b606091505b50509050806126c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b790614d37565b60405180910390fd5b50505050565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612755612df7565b73ffffffffffffffffffffffffffffffffffffffff16612773612045565b73ffffffffffffffffffffffffffffffffffffffff16146127c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c09061499c565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146128da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d190614c44565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161290090614d7d565b60006040518083038185875af1925050503d806000811461293d576040519150601f19603f3d011682016040523d82523d6000602084013e612942565b606091505b5050905080612986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297d90614dde565b60405180910390fd5b50565b601d60039054906101000a900460ff1681565b6129a4612df7565b73ffffffffffffffffffffffffffffffffffffffff166129c2612045565b73ffffffffffffffffffffffffffffffffffffffff1614612a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0f9061499c565b60405180910390fd5b80601d60046101000a81548160ff02191690831515021790555050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612a63612df7565b73ffffffffffffffffffffffffffffffffffffffff16612a81612045565b73ffffffffffffffffffffffffffffffffffffffff1614612ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ace9061499c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3e90614e70565b60405180910390fd5b612b50816136bb565b50565b612b5b612df7565b73ffffffffffffffffffffffffffffffffffffffff16612b79612045565b73ffffffffffffffffffffffffffffffffffffffff1614612bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc69061499c565b60405180910390fd5b80601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60059054906101000a900460ff1681565b6000808284612c359190614ebf565b905083811015612c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7190614f61565b60405180910390fd5b8091505092915050565b600080831415612c975760009050612cf9565b60008284612ca59190614f81565b9050828482612cb4919061500a565b14612cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ceb906150ad565b60405180910390fd5b809150505b92915050565b6000612d4183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061377f565b905092915050565b6000838311158290612d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d889190614522565b60405180910390fd5b5060008385612da091906150cd565b9050809150509392505050565b6000612def83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d49565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6690615173565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed690615205565b60405180910390fd5b80601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612fbd919061446e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561300557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561303f57600080fd5b6000821161304c57600080fd5b601e60149054906101000a900460ff16156130735761306c8484846137e2565b90506136b4565b601d60019054906101000a900460ff1661316857601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806131285750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315e90615271565b60405180910390fd5b5b6000601c54141580156131885750601d60009054906101000a900460ff16155b15613196576131956139b5565b5b60006131a130611df4565b90506000601b5482101590508080156131c75750601e60149054906101000a900460ff16155b801561321d5750601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156132355750601d60029054906101000a900460ff165b801561328b5750601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156132e15750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156132f0576132ef82613a51565b5b601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156133945750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156133ac5750601d60049054906101000a900460ff165b156133f7576019548411156133f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ed906152dd565b60405180910390fd5b5b613480846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d499092919063ffffffff16565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006134cf8787613d37565b6134e3576134de878787613ea2565b6134e5565b845b9050601d60059054906101000a900460ff16801561354d5750601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156135b257601a546135708261356289611df4565b612c2690919063ffffffff16565b11156135b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135a890615349565b60405180910390fd5b5b61360481601260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2690919063ffffffff16565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136a4919061446e565b60405180910390a3600193505050505b9392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080831182906137c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137bd9190614522565b60405180910390fd5b50600083856137d5919061500a565b9050809150509392505050565b600061386d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d499092919063ffffffff16565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061390282601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2690919063ffffffff16565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139a2919061446e565b60405180910390a3600190509392505050565b6003601c546139c49190614ebf565b43116139d6576139d56063806140c7565b5b6003601c546139e59190614ebf565b43118015613a0157506016601c546139fd9190614ebf565b4311155b15613a1257613a11602d806140c7565b5b6016601c54613a219190614ebf565b431115613a4f57613a336003806140c7565b6001601d60006101000a81548160ff0219169083151502179055505b565b6001601e60146101000a81548160ff021916908315150217905550601d60039054906101000a900460ff1615613a8757601b5490505b6000613aa0600b54600a54612c2690919063ffffffff16565b90506000613abb600854600554612c2690919063ffffffff16565b90506000613ad6600954600654612c2690919063ffffffff16565b90506000613b126002613b0486613af6878a612c8490919063ffffffff16565b612cff90919063ffffffff16565b612cff90919063ffffffff16565b90506000613b298287612dad90919063ffffffff16565b90506000479050613b39826140d9565b6000613b4e8247612dad90919063ffffffff16565b90506000613b78613b69600289612cff90919063ffffffff16565b89612dad90919063ffffffff16565b90506000613bb46002613ba684613b988c88612c8490919063ffffffff16565b612cff90919063ffffffff16565b612cff90919063ffffffff16565b90506000613bdd83613bcf8a87612c8490919063ffffffff16565b612cff90919063ffffffff16565b90506000613c0682613bf88588612dad90919063ffffffff16565b612dad90919063ffffffff16565b90506000821115613c7b57600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613c79573d6000803e3d6000fd5b505b6000811115613cee57600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613cec573d6000803e3d6000fd5b505b600083118015613cfe5750600088115b15613d0e57613d0d8884614355565b5b50505050505050505050506000601e60146101000a81548160ff02191690831515021790555050565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613dda5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613de85760019050613e9c565b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613e895750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613e975760009050613e9c565b600090505b92915050565b600080601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613f2757613f20601154613f12600a5486612c8490919063ffffffff16565b612cff90919063ffffffff16565b9050613fa6565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613fa557613fa2601154613f94600b5486612c8490919063ffffffff16565b612cff90919063ffffffff16565b90505b5b60008111156140aa5761400181601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2690919063ffffffff16565b601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516140a1919061446e565b60405180910390a35b6140bd8184612dad90919063ffffffff16565b9150509392505050565b81600a8190555080600b819055505050565b6000600267ffffffffffffffff8111156140f6576140f5615369565b5b6040519080825280602002602001820160405280156141245781602001602082028036833780820191505090505b509050308160008151811061413c5761413b615398565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156141e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142079190614b41565b8160018151811061421b5761421a615398565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061428230601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612dff565b601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016142e6959493929190615485565b600060405180830381600087803b15801561430057600080fd5b505af1158015614314573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516143499291906154df565b60405180910390a15050565b61438230601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612dff565b601d60069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161440b96959493929190614a63565b60606040518083038185885af1158015614429573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061444e9190614ad9565b5050505050565b6000819050919050565b61446881614455565b82525050565b6000602082019050614483600083018461445f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156144c35780820151818401526020810190506144a8565b838111156144d2576000848401525b50505050565b6000601f19601f8301169050919050565b60006144f482614489565b6144fe8185614494565b935061450e8185602086016144a5565b614517816144d8565b840191505092915050565b6000602082019050818103600083015261453c81846144e9565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061458961458461457f84614544565b614564565b614544565b9050919050565b600061459b8261456e565b9050919050565b60006145ad82614590565b9050919050565b6145bd816145a2565b82525050565b60006020820190506145d860008301846145b4565b92915050565b60006145e982614544565b9050919050565b6145f9816145de565b82525050565b600060208201905061461460008301846145f0565b92915050565b600080fd5b614628816145de565b811461463357600080fd5b50565b6000813590506146458161461f565b92915050565b61465481614455565b811461465f57600080fd5b50565b6000813590506146718161464b565b92915050565b6000806040838503121561468e5761468d61461a565b5b600061469c85828601614636565b92505060206146ad85828601614662565b9150509250929050565b60008115159050919050565b6146cc816146b7565b82525050565b60006020820190506146e760008301846146c3565b92915050565b6000806000606084860312156147065761470561461a565b5b600061471486828701614662565b935050602061472586828701614662565b925050604061473686828701614662565b9150509250925092565b6000806000606084860312156147595761475861461a565b5b600061476786828701614636565b935050602061477886828701614636565b925050604061478986828701614662565b9150509250925092565b6000602082840312156147a9576147a861461a565b5b60006147b784828501614636565b91505092915050565b600060ff82169050919050565b6147d6816147c0565b82525050565b60006020820190506147f160008301846147cd565b92915050565b614800816146b7565b811461480b57600080fd5b50565b60008135905061481d816147f7565b92915050565b6000602082840312156148395761483861461a565b5b60006148478482850161480e565b91505092915050565b6000602082840312156148665761486561461a565b5b600061487484828501614662565b91505092915050565b600080604083850312156148945761489361461a565b5b60006148a285828601614636565b92505060206148b38582860161480e565b9150509250929050565b6000806000606084860312156148d6576148d561461a565b5b60006148e486828701614662565b93505060206148f58682870161480e565b92505060406149068682870161480e565b9150509250925092565b600080604083850312156149275761492661461a565b5b600061493585828601614636565b925050602061494685828601614636565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614986602083614494565b915061499182614950565b602082019050919050565b600060208201905081810360008301526149b581614979565b9050919050565b7f416c7265616479206c61756e6368656421000000000000000000000000000000600082015250565b60006149f2601183614494565b91506149fd826149bc565b602082019050919050565b60006020820190508181036000830152614a21816149e5565b9050919050565b6000819050919050565b6000614a4d614a48614a4384614a28565b614564565b614455565b9050919050565b614a5d81614a32565b82525050565b600060c082019050614a7860008301896145f0565b614a85602083018861445f565b614a926040830187614a54565b614a9f6060830186614a54565b614aac60808301856145f0565b614ab960a083018461445f565b979650505050505050565b600081519050614ad38161464b565b92915050565b600080600060608486031215614af257614af161461a565b5b6000614b0086828701614ac4565b9350506020614b1186828701614ac4565b9250506040614b2286828701614ac4565b9150509250925092565b600081519050614b3b8161461f565b92915050565b600060208284031215614b5757614b5661461a565b5b6000614b6584828501614b2c565b91505092915050565b6000604082019050614b8360008301856145f0565b614b9060208301846145f0565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614bde57607f821691505b60208210811415614bf257614bf1614b97565b5b50919050565b7f496e76616c69642043616c6c6572000000000000000000000000000000000000600082015250565b6000614c2e600e83614494565b9150614c3982614bf8565b602082019050919050565b60006020820190508181036000830152614c5d81614c21565b9050919050565b6000604082019050614c7960008301856145f0565b614c86602083018461445f565b9392505050565b600081519050919050565b600081905092915050565b6000614cae82614c8d565b614cb88185614c98565b9350614cc88185602086016144a5565b80840191505092915050565b6000614ce08284614ca3565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b6000614d21601483614494565b9150614d2c82614ceb565b602082019050919050565b60006020820190508181036000830152614d5081614d14565b9050919050565b50565b6000614d67600083614c98565b9150614d7282614d57565b600082019050919050565b6000614d8882614d5a565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614dc8601483614494565b9150614dd382614d92565b602082019050919050565b60006020820190508181036000830152614df781614dbb565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614e5a602683614494565b9150614e6582614dfe565b604082019050919050565b60006020820190508181036000830152614e8981614e4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614eca82614455565b9150614ed583614455565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614f0a57614f09614e90565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614f4b601b83614494565b9150614f5682614f15565b602082019050919050565b60006020820190508181036000830152614f7a81614f3e565b9050919050565b6000614f8c82614455565b9150614f9783614455565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614fd057614fcf614e90565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061501582614455565b915061502083614455565b9250826150305761502f614fdb565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000615097602183614494565b91506150a28261503b565b604082019050919050565b600060208201905081810360008301526150c68161508a565b9050919050565b60006150d882614455565b91506150e383614455565b9250828210156150f6576150f5614e90565b5b828203905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061515d602483614494565b915061516882615101565b604082019050919050565b6000602082019050818103600083015261518c81615150565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006151ef602283614494565b91506151fa82615193565b604082019050919050565b6000602082019050818103600083015261521e816151e2565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061525b601683614494565b915061526682615225565b602082019050919050565b6000602082019050818103600083015261528a8161524e565b9050919050565b7f45786365656473206d61785478416d6f756e7400000000000000000000000000600082015250565b60006152c7601383614494565b91506152d282615291565b602082019050919050565b600060208201905081810360008301526152f6816152ba565b9050919050565b7f457863656564732057616c6c6574000000000000000000000000000000000000600082015250565b6000615333600e83614494565b915061533e826152fd565b602082019050919050565b6000602082019050818103600083015261536281615326565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6153fc816145de565b82525050565b600061540e83836153f3565b60208301905092915050565b6000602082019050919050565b6000615432826153c7565b61543c81856153d2565b9350615447836153e3565b8060005b8381101561547857815161545f8882615402565b975061546a8361541a565b92505060018101905061544b565b5085935050505092915050565b600060a08201905061549a600083018861445f565b6154a76020830187614a54565b81810360408301526154b98186615427565b90506154c860608301856145f0565b6154d5608083018461445f565b9695505050505050565b60006040820190506154f4600083018561445f565b81810360208301526155068184615427565b9050939250505056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220defb66b5e0d1e999a499a48018641e112d59c8b94556e8d170021c646f175a1464736f6c634300080a0033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.