ETH Price: $2,649.96 (+1.44%)

Contract

0x52a9EEf606115f488abd34194C73256F982A2Ab9
 

Overview

ETH Balance

0.017666190000002602 ETH

Eth Value

$46.81 (@ $2,649.96/ETH)

Token Holdings

Multichain Info

Transaction Hash
Method
Block
From
To
Approve206690782024-09-03 9:13:1145 days ago1725354791IN
0x52a9EEf6...F982A2Ab9
0 ETH0.000154473.31917598
Approve201947152024-06-29 3:39:35111 days ago1719632375IN
0x52a9EEf6...F982A2Ab9
0 ETH0.000086621.86140553
Approve198706842024-05-14 20:44:23156 days ago1715719463IN
0x52a9EEf6...F982A2Ab9
0 ETH0.000126745.22519996
Transfer198390622024-05-10 10:33:11161 days ago1715337191IN
0x52a9EEf6...F982A2Ab9
0 ETH0.000198645.08786079
Approve196705212024-04-16 20:47:59184 days ago1713300479IN
0x52a9EEf6...F982A2Ab9
0 ETH0.000210918.67406121
Approve195696372024-04-02 17:37:59198 days ago1712079479IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0011815248.71065533
Approve194747242024-03-20 8:27:47212 days ago1710923267IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0013472129.10516367
Approve194050722024-03-10 13:44:23222 days ago1710078263IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0013986257.66112817
Transfer193037182024-02-25 9:31:47236 days ago1708853507IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0023908730.44577942
Approve193007642024-02-24 23:35:59236 days ago1708817759IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0011812125.3805858
Approve192716422024-02-20 21:39:11240 days ago1708465151IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0029126262.58324878
Approve192469592024-02-17 10:23:11244 days ago1708165391IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0004343417.86253705
Approve192288572024-02-14 21:24:59246 days ago1707945899IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0005936324.47365977
Approve191116072024-01-29 10:31:59263 days ago1706524319IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0005468211.74947482
Approve190957082024-01-27 5:02:47265 days ago1706331767IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0006056513.01355462
Approve190711042024-01-23 18:18:23268 days ago1706033903IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0007381515.86061148
Transfer190649262024-01-22 21:27:47269 days ago1705958867IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0012737116.21963248
Approve190109592024-01-15 8:01:11277 days ago1705305671IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0008060117.42662737
Approve189572772024-01-07 19:27:59284 days ago1704655679IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0015002432.23564335
Approve189229932024-01-02 23:33:59289 days ago1704238439IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0008938719.20651994
Approve189221772024-01-02 20:48:59289 days ago1704228539IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0008336218.01415427
Approve189213902024-01-02 18:10:35289 days ago1704219035IN
0x52a9EEf6...F982A2Ab9
0 ETH0.00058123.95311926
Approve189205182024-01-02 15:14:35290 days ago1704208475IN
0x52a9EEf6...F982A2Ab9
0 ETH0.000812527.88296667
Approve189205112024-01-02 15:13:11290 days ago1704208391IN
0x52a9EEf6...F982A2Ab9
0 ETH0.001309628.29989835
Approve189149992024-01-01 20:36:59290 days ago1704141419IN
0x52a9EEf6...F982A2Ab9
0 ETH0.0008188317.59422094
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
189229982024-01-02 23:34:59289 days ago1704238499
0x52a9EEf6...F982A2Ab9
0.02206199 ETH
189229982024-01-02 23:34:59289 days ago1704238499
0x52a9EEf6...F982A2Ab9
0.02206199 ETH
188798682023-12-27 22:10:11295 days ago1703715011
0x52a9EEf6...F982A2Ab9
0.03506098 ETH
188798682023-12-27 22:10:11295 days ago1703715011
0x52a9EEf6...F982A2Ab9
0.03506098 ETH
188651232023-12-25 20:29:59297 days ago1703536199
0x52a9EEf6...F982A2Ab9
0.0817071 ETH
188651232023-12-25 20:29:59297 days ago1703536199
0x52a9EEf6...F982A2Ab9
0.0817071 ETH
188494242023-12-23 15:32:35300 days ago1703345555
0x52a9EEf6...F982A2Ab9
0.14832882 ETH
188494242023-12-23 15:32:35300 days ago1703345555
0x52a9EEf6...F982A2Ab9
0.14832882 ETH
188354792023-12-21 16:37:47301 days ago1703176667
0x52a9EEf6...F982A2Ab9
0.1382982 ETH
188354792023-12-21 16:37:47301 days ago1703176667
0x52a9EEf6...F982A2Ab9
0.1382982 ETH
188296612023-12-20 21:02:35302 days ago1703106155
0x52a9EEf6...F982A2Ab9
0.20854833 ETH
188296612023-12-20 21:02:35302 days ago1703106155
0x52a9EEf6...F982A2Ab9
0.20854833 ETH
188265422023-12-20 10:31:23303 days ago1703068283
0x52a9EEf6...F982A2Ab9
0.14797169 ETH
188265422023-12-20 10:31:23303 days ago1703068283
0x52a9EEf6...F982A2Ab9
0.14797169 ETH
188231462023-12-19 23:04:59303 days ago1703027099
0x52a9EEf6...F982A2Ab9
0.17619326 ETH
188231462023-12-19 23:04:59303 days ago1703027099
0x52a9EEf6...F982A2Ab9
0.17619326 ETH
188216462023-12-19 18:02:23303 days ago1703008943
0x52a9EEf6...F982A2Ab9
0.19197767 ETH
188216462023-12-19 18:02:23303 days ago1703008943
0x52a9EEf6...F982A2Ab9
0.19197767 ETH
188215502023-12-19 17:42:59303 days ago1703007779
0x52a9EEf6...F982A2Ab9
0.1459541 ETH
188215502023-12-19 17:42:59303 days ago1703007779
0x52a9EEf6...F982A2Ab9
0.1459541 ETH
188213642023-12-19 17:05:11303 days ago1703005511
0x52a9EEf6...F982A2Ab9
0.01766619 ETH
188209842023-12-19 15:48:35304 days ago1703000915
0x52a9EEf6...F982A2Ab9
0.09599769 ETH
188209842023-12-19 15:48:35304 days ago1703000915
0x52a9EEf6...F982A2Ab9
0.09599769 ETH
188195742023-12-19 11:03:11304 days ago1702983791
0x52a9EEf6...F982A2Ab9
0.13905767 ETH
188195742023-12-19 11:03:11304 days ago1702983791
0x52a9EEf6...F982A2Ab9
0.13905767 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SafeScriptAi

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-16
*/

//SPDX-License-Identifier: UNLICENSED

/**

TG : https://t.me/SafeScript_Ai

Website : https://safescriptai.tech/

Twitter : https://twitter.com/safescriptai

**/

pragma solidity ^0.8.23;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

    event Transfer(address indexed from, address indexed to, uint256 value);

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

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

    
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    
    function _tokengeneration(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

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

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

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

    
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _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);
    }
}

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

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

    function WETH() external pure returns (address);

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

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

contract SafeScriptAi is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _liquidityMutex = false;
    bool private  providingLiquidity = false;
    bool public tradingEnabled = false;

    uint256 private  tokenLiquidityThreshold = 400000 * 10**18;
    uint256 public maxWalletLimit = 2000000 * 10**18;

    uint256 private  genesis_block;
    uint256 private deadline = 5;
    uint256 private launchtax = 35;

    address private  marketingWallet = 0x86f74bEE1B1bEC839dad43d41463488A4566E712;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes public taxes = Taxes(35, 0);
    Taxes public sellTaxes = Taxes(35, 0);

    mapping(address => bool) public exemptFee;


    modifier mutexLock() {
        if (!_liquidityMutex) {
            _liquidityMutex = true;
            _;
            _liquidityMutex = false;
        }
    }

    constructor() ERC20("SafeScriptAi", "$SSAi") {
        _tokengeneration(msg.sender, 100000000 * 10**decimals());

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // Create a pair for this new token
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[msg.sender] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[deadWallet] = true;
    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if (sender == pair && !exemptFee[recipient] && !_liquidityMutex) {
            require(balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex) {
           
            if (recipient != pair) {
                require(balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
        }

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;

        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;

        //set fee to zero if fees in contract are handled or exempted
        if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

            //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing ;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }

    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {

	if(feeswap == 0){
            return;
        }	

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }

        }
    }

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

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

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

    function updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function UpdateBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity);
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity
    ) external onlyOwner {
        sellTaxes = Taxes(_marketing, _liquidity);
    }

   function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }


    function AddExemptFee(address _address) external onlyOwner {
        exemptFee[_address] = true;
    }

    function RemoveExemptFee(address _address) external onlyOwner {
        exemptFee[_address] = false;
    }


    function updateMaxWalletLimit(uint256 maxWallet) external onlyOwner {
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }


    // fallbacks
    receive() external payable {}
}

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":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":[{"internalType":"address","name":"_address","type":"address"}],"name":"AddExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"RemoveExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"UpdateBuyTaxes","outputs":[],"stateMutability":"nonpayable","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":"deadWallet","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191690556954b40b1f852bda0000006008556a01a784379d99db420000006009556005600b556023600c819055600d80546001600160a01b0319167386f74bee1b1bec839dad43d41463488a4566e71217905560808190525f60a0819052600e829055600f81905561010060405260c082905260e081905260109190915560115534801562000097575f80fd5b506040518060400160405280600c81526020016b53616665536372697074416960a01b81525060405180604001604052806005815260200164245353416960d81b8152508160039081620000ec9190620004f8565b506004620000fb8282620004f8565b50505062000118620001126200034560201b60201c565b62000349565b62000141336200012b6012600a620006d3565b6200013b906305f5e100620006ea565b6200039a565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000197573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001bd919062000704565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000209573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022f919062000704565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200027a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a0919062000704565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f90815260126020526040808220805460ff1990811660019081179092553384528284208054821683179055600d549094168352908220805484168217905561dead9091527f1120e10407cab1193d7c5139d9aae5536deb3d83e855f25f8e42f811c01f56f780549092161790556200072c565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004035760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b60028190556001600160a01b0382165f81815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200048457607f821691505b602082108103620004a357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200045657805f5260205f20601f840160051c81016020851015620004d05750805b601f840160051c820191505b81811015620004f1575f8155600101620004dc565b5050505050565b81516001600160401b038111156200051457620005146200045b565b6200052c816200052584546200046f565b84620004a9565b602080601f83116001811462000562575f84156200054a5750858301515b5f19600386901b1c1916600185901b178555620005bc565b5f85815260208120601f198616915b82811015620005925788860151825594840194600190910190840162000571565b5085821015620005b057878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200061857815f1904821115620005fc57620005fc620005c4565b808516156200060a57918102915b93841c9390800290620005dd565b509250929050565b5f826200063057506001620006cd565b816200063e57505f620006cd565b8160018114620006575760028114620006625762000682565b6001915050620006cd565b60ff841115620006765762000676620005c4565b50506001821b620006cd565b5060208310610133831016604e8410600b8410161715620006a7575081810a620006cd565b620006b38383620005d8565b805f1904821115620006c957620006c9620005c4565b0290505b92915050565b5f620006e360ff84168362000620565b9392505050565b8082028115828204841417620006cd57620006cd620005c4565b5f6020828403121562000715575f80fd5b81516001600160a01b0381168114620006e3575f80fd5b611d2d806200073a5f395ff3fe6080604052600436106101de575f3560e01c806385141a77116100fd578063aacebbe311610092578063f2fde38b11610062578063f2fde38b146105a0578063f52be97c146105bf578063f66895a3146105de578063f887ea40146105f8575f80fd5b8063aacebbe3146104f0578063c5d32bb21461050f578063d695609b1461053d578063dd62ed3e1461055c575f80fd5b80639e252f00116100cd5780639e252f0014610474578063a457c2d714610493578063a8aa1b31146104b2578063a9059cbb146104d1575f80fd5b806385141a77146104025780638a8c523c1461042f5780638da5cb5b1461044357806395d89b4114610460575f80fd5b80634324deae1161017357806370a082311161014357806370a082311461036c578063715018a6146103a0578063728f8eea146103b4578063832c2bd2146103e3575f80fd5b80634324deae146102f95780634ada218b146103185780635dbdb7e31461033857806366a88d9614610357575f80fd5b806323b872dd116101ae57806323b872dd14610281578063313ce567146102a057806339509351146102bb57806342b6fa11146102da575f80fd5b806306fdde03146101e9578063095ea7b3146102135780631340538f1461024257806318160ddd14610263575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506101fd610617565b60405161020a91906118ea565b60405180910390f35b34801561021e575f80fd5b5061023261022d36600461194a565b6106a7565b604051901515815260200161020a565b34801561024d575f80fd5b5061026161025c366004611974565b6106bd565b005b34801561026e575f80fd5b506002545b60405190815260200161020a565b34801561028c575f80fd5b5061023261029b36600461199a565b61070e565b3480156102ab575f80fd5b506040516012815260200161020a565b3480156102c6575f80fd5b506102326102d536600461194a565b6107bd565b3480156102e5575f80fd5b506102616102f43660046119d8565b6107f3565b348015610304575f80fd5b506102616103133660046119d8565b610839565b348015610323575f80fd5b5060075461023290600160b01b900460ff1681565b348015610343575f80fd5b506102616103523660046119ef565b61087f565b348015610362575f80fd5b5061027360095481565b348015610377575f80fd5b506102736103863660046119ef565b6001600160a01b03165f9081526020819052604090205490565b3480156103ab575f80fd5b506102616108cc565b3480156103bf575f80fd5b50600e54600f546103ce919082565b6040805192835260208301919091520161020a565b3480156103ee575f80fd5b506102616103fd3660046119ef565b610901565b34801561040d575f80fd5b5061041761dead81565b6040516001600160a01b03909116815260200161020a565b34801561043a575f80fd5b5061026161094b565b34801561044e575f80fd5b506005546001600160a01b0316610417565b34801561046b575f80fd5b506101fd6109ea565b34801561047f575f80fd5b5061026161048e3660046119d8565b6109f9565b34801561049e575f80fd5b506102326104ad36600461194a565b610a5e565b3480156104bd575f80fd5b50600754610417906001600160a01b031681565b3480156104dc575f80fd5b506102326104eb36600461194a565b610af8565b3480156104fb575f80fd5b5061026161050a3660046119ef565b610b04565b34801561051a575f80fd5b506102326105293660046119ef565b60126020525f908152604090205460ff1681565b348015610548575f80fd5b50610261610557366004611a0a565b610b50565b348015610567575f80fd5b50610273610576366004611a2a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156105ab575f80fd5b506102616105ba3660046119ef565b610b98565b3480156105ca575f80fd5b506102616105d9366004611a0a565b610c33565b3480156105e9575f80fd5b506010546011546103ce919082565b348015610603575f80fd5b50600654610417906001600160a01b031681565b60606003805461062690611a61565b80601f016020809104026020016040519081016040528092919081815260200182805461065290611a61565b801561069d5780601f106106745761010080835404028352916020019161069d565b820191905f5260205f20905b81548152906001019060200180831161068057829003601f168201915b5050505050905090565b5f6106b3338484610c7b565b5060015b92915050565b6005546001600160a01b031633146106f05760405162461bcd60e51b81526004016106e790611a99565b60405180910390fd5b60078054911515600160a81b0260ff60a81b19909216919091179055565b5f61071a848484610d9e565b6001600160a01b0384165f9081526001602090815260408083203384529091529020548281101561079e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106e7565b6107b285336107ad8685611ae2565b610c7b565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916106b39185906107ad908690611af5565b6005546001600160a01b0316331461081d5760405162461bcd60e51b81526004016106e790611a99565b6108296012600a611be8565b6108339082611bf6565b60085550565b6005546001600160a01b031633146108635760405162461bcd60e51b81526004016106e790611a99565b61086f6012600a611be8565b6108799082611bf6565b60095550565b6005546001600160a01b031633146108a95760405162461bcd60e51b81526004016106e790611a99565b6001600160a01b03165f908152601260205260409020805460ff19166001179055565b6005546001600160a01b031633146108f65760405162461bcd60e51b81526004016106e790611a99565b6108ff5f611275565b565b6005546001600160a01b0316331461092b5760405162461bcd60e51b81526004016106e790611a99565b6001600160a01b03165f908152601260205260409020805460ff19169055565b6005546001600160a01b031633146109755760405162461bcd60e51b81526004016106e790611a99565b600754600160b01b900460ff16156109cf5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016106e7565b6007805461ffff60a81b191661010160a81b17905543600a55565b60606004805461062690611a61565b6005546001600160a01b03163314610a235760405162461bcd60e51b81526004016106e790611a99565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610a5a573d5f803e3d5ffd5b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610adf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106e7565b610aee33856107ad8685611ae2565b5060019392505050565b5f6106b3338484610d9e565b6005546001600160a01b03163314610b2e5760405162461bcd60e51b81526004016106e790611a99565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610b7a5760405162461bcd60e51b81526004016106e790611a99565b60408051808201909152828152602001819052600e91909155600f55565b6005546001600160a01b03163314610bc25760405162461bcd60e51b81526004016106e790611a99565b6001600160a01b038116610c275760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e7565b610c3081611275565b50565b6005546001600160a01b03163314610c5d5760405162461bcd60e51b81526004016106e790611a99565b60408051808201909152828152602001819052601091909155601155565b6001600160a01b038316610cdd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e7565b6001600160a01b038216610d3e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610dff5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e7565b6001600160a01b0383165f9081526012602052604090205460ff16158015610e3f57506001600160a01b0382165f9081526012602052604090205460ff16155b15610e9357600754600160b01b900460ff16610e935760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016106e7565b6007546001600160a01b038481169116148015610ec857506001600160a01b0382165f9081526012602052604090205460ff16155b8015610ede5750600754600160a01b900460ff16155b15610f5d5760095481610f05846001600160a01b03165f9081526020819052604090205490565b610f0f9190611af5565b1115610f5d5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106e7565b6007546001600160a01b03848116911614801590610f9357506001600160a01b0382165f9081526012602052604090205460ff16155b8015610fb757506001600160a01b0383165f9081526012602052604090205460ff16155b8015610fcd5750600754600160a01b900460ff16155b15611061576007546001600160a01b038381169116146110615760095481611009846001600160a01b03165f9081526020819052604090205490565b6110139190611af5565b11156110615760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106e7565b5f805f61107f60405180604001604052805f81526020015f81525090565b6001600160a01b0387165f9081526012602052604081205460ff161580156110bf57506001600160a01b0387165f9081526012602052604090205460ff16155b80156110d95750600b54600a546110d69190611af5565b43105b600754909150600160a01b900460ff168061110b57506001600160a01b0388165f9081526012602052604090205460ff165b8061112d57506001600160a01b0387165f9081526012602052604090205460ff165b1561113a575f92506111d6565b6007546001600160a01b038881169116148015611155575080155b1561118e5760105460115461116a9190611af5565b604080518082019091526010548152601154602082015290955085945091506111d6565b806111c757600e54600f546111a39190611af5565b60408051808201909152600e548152600f54602082015290955085945091506111d6565b80156111d657600c5494508493505b60646111e28588611bf6565b6111ec9190611c0d565b600754909350600160a81b900460ff16801561121657506007546001600160a01b03898116911614155b156112255761122585836112c6565b6112398888611234868a611ae2565b6113fb565b821561126b57841561126b575f60646112528789611bf6565b61125c9190611c0d565b90506112698930836113fb565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610a5a576007805460ff60a01b1916600160a01b17905581156113ea57305f9081526020819052604090205460085481106113e8576001600854111561131857506008545b5f611324846002611bf6565b90505f818460200151846113389190611bf6565b6113429190611c0d565b90505f61134f8285611ae2565b90504761135b826115d1565b5f6113668247611ae2565b90505f8760200151866113799190611ae2565b6113839083611c0d565b90505f8860200151826113969190611bf6565b905080156113a8576113a88682611721565b88515f906113b7846002611bf6565b6113c19190611bf6565b905080156113df57600d546113df906001600160a01b0316826117d0565b50505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b03831661145f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e7565b6001600160a01b0382166114c15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e7565b6001600160a01b0383165f90815260208190526040902054818110156115385760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106e7565b6115428282611ae2565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611577908490611af5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115c391815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061160457611604611c2c565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561165b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167f9190611c40565b8160018151811061169257611692611c2c565b6001600160a01b0392831660209182029290920101526006546116b89130911684610c7b565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906116f09085905f90869030904290600401611c5b565b5f604051808303815f87803b158015611707575f80fd5b505af1158015611719573d5f803e3d5ffd5b505050505050565b6006546117399030906001600160a01b031684610c7b565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156117a4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117c99190611ccc565b5050505050565b804710156118205760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106e7565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611869576040519150601f19603f3d011682016040523d82523d5f602084013e61186e565b606091505b50509050806118e55760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106e7565b505050565b5f602080835283518060208501525f5b81811015611916578581018301518582016040015282016118fa565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c30575f80fd5b5f806040838503121561195b575f80fd5b823561196681611936565b946020939093013593505050565b5f60208284031215611984575f80fd5b81358015158114611993575f80fd5b9392505050565b5f805f606084860312156119ac575f80fd5b83356119b781611936565b925060208401356119c781611936565b929592945050506040919091013590565b5f602082840312156119e8575f80fd5b5035919050565b5f602082840312156119ff575f80fd5b813561199381611936565b5f8060408385031215611a1b575f80fd5b50508035926020909101359150565b5f8060408385031215611a3b575f80fd5b8235611a4681611936565b91506020830135611a5681611936565b809150509250929050565b600181811c90821680611a7557607f821691505b602082108103611a9357634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156106b7576106b7611ace565b808201808211156106b7576106b7611ace565b600181815b80851115611b4257815f1904821115611b2857611b28611ace565b80851615611b3557918102915b93841c9390800290611b0d565b509250929050565b5f82611b58575060016106b7565b81611b6457505f6106b7565b8160018114611b7a5760028114611b8457611ba0565b60019150506106b7565b60ff841115611b9557611b95611ace565b50506001821b6106b7565b5060208310610133831016604e8410600b8410161715611bc3575081810a6106b7565b611bcd8383611b08565b805f1904821115611be057611be0611ace565b029392505050565b5f61199360ff841683611b4a565b80820281158282048414176106b7576106b7611ace565b5f82611c2757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c50575f80fd5b815161199381611936565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611cab5784516001600160a01b031683529383019391830191600101611c86565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611cde575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122087da9689482dd49f09f9033f6b47b1d6ffc6f81aef81dd7acf5372e6736b4f7264736f6c63430008170033

Deployed Bytecode

0x6080604052600436106101de575f3560e01c806385141a77116100fd578063aacebbe311610092578063f2fde38b11610062578063f2fde38b146105a0578063f52be97c146105bf578063f66895a3146105de578063f887ea40146105f8575f80fd5b8063aacebbe3146104f0578063c5d32bb21461050f578063d695609b1461053d578063dd62ed3e1461055c575f80fd5b80639e252f00116100cd5780639e252f0014610474578063a457c2d714610493578063a8aa1b31146104b2578063a9059cbb146104d1575f80fd5b806385141a77146104025780638a8c523c1461042f5780638da5cb5b1461044357806395d89b4114610460575f80fd5b80634324deae1161017357806370a082311161014357806370a082311461036c578063715018a6146103a0578063728f8eea146103b4578063832c2bd2146103e3575f80fd5b80634324deae146102f95780634ada218b146103185780635dbdb7e31461033857806366a88d9614610357575f80fd5b806323b872dd116101ae57806323b872dd14610281578063313ce567146102a057806339509351146102bb57806342b6fa11146102da575f80fd5b806306fdde03146101e9578063095ea7b3146102135780631340538f1461024257806318160ddd14610263575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506101fd610617565b60405161020a91906118ea565b60405180910390f35b34801561021e575f80fd5b5061023261022d36600461194a565b6106a7565b604051901515815260200161020a565b34801561024d575f80fd5b5061026161025c366004611974565b6106bd565b005b34801561026e575f80fd5b506002545b60405190815260200161020a565b34801561028c575f80fd5b5061023261029b36600461199a565b61070e565b3480156102ab575f80fd5b506040516012815260200161020a565b3480156102c6575f80fd5b506102326102d536600461194a565b6107bd565b3480156102e5575f80fd5b506102616102f43660046119d8565b6107f3565b348015610304575f80fd5b506102616103133660046119d8565b610839565b348015610323575f80fd5b5060075461023290600160b01b900460ff1681565b348015610343575f80fd5b506102616103523660046119ef565b61087f565b348015610362575f80fd5b5061027360095481565b348015610377575f80fd5b506102736103863660046119ef565b6001600160a01b03165f9081526020819052604090205490565b3480156103ab575f80fd5b506102616108cc565b3480156103bf575f80fd5b50600e54600f546103ce919082565b6040805192835260208301919091520161020a565b3480156103ee575f80fd5b506102616103fd3660046119ef565b610901565b34801561040d575f80fd5b5061041761dead81565b6040516001600160a01b03909116815260200161020a565b34801561043a575f80fd5b5061026161094b565b34801561044e575f80fd5b506005546001600160a01b0316610417565b34801561046b575f80fd5b506101fd6109ea565b34801561047f575f80fd5b5061026161048e3660046119d8565b6109f9565b34801561049e575f80fd5b506102326104ad36600461194a565b610a5e565b3480156104bd575f80fd5b50600754610417906001600160a01b031681565b3480156104dc575f80fd5b506102326104eb36600461194a565b610af8565b3480156104fb575f80fd5b5061026161050a3660046119ef565b610b04565b34801561051a575f80fd5b506102326105293660046119ef565b60126020525f908152604090205460ff1681565b348015610548575f80fd5b50610261610557366004611a0a565b610b50565b348015610567575f80fd5b50610273610576366004611a2a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156105ab575f80fd5b506102616105ba3660046119ef565b610b98565b3480156105ca575f80fd5b506102616105d9366004611a0a565b610c33565b3480156105e9575f80fd5b506010546011546103ce919082565b348015610603575f80fd5b50600654610417906001600160a01b031681565b60606003805461062690611a61565b80601f016020809104026020016040519081016040528092919081815260200182805461065290611a61565b801561069d5780601f106106745761010080835404028352916020019161069d565b820191905f5260205f20905b81548152906001019060200180831161068057829003601f168201915b5050505050905090565b5f6106b3338484610c7b565b5060015b92915050565b6005546001600160a01b031633146106f05760405162461bcd60e51b81526004016106e790611a99565b60405180910390fd5b60078054911515600160a81b0260ff60a81b19909216919091179055565b5f61071a848484610d9e565b6001600160a01b0384165f9081526001602090815260408083203384529091529020548281101561079e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106e7565b6107b285336107ad8685611ae2565b610c7b565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916106b39185906107ad908690611af5565b6005546001600160a01b0316331461081d5760405162461bcd60e51b81526004016106e790611a99565b6108296012600a611be8565b6108339082611bf6565b60085550565b6005546001600160a01b031633146108635760405162461bcd60e51b81526004016106e790611a99565b61086f6012600a611be8565b6108799082611bf6565b60095550565b6005546001600160a01b031633146108a95760405162461bcd60e51b81526004016106e790611a99565b6001600160a01b03165f908152601260205260409020805460ff19166001179055565b6005546001600160a01b031633146108f65760405162461bcd60e51b81526004016106e790611a99565b6108ff5f611275565b565b6005546001600160a01b0316331461092b5760405162461bcd60e51b81526004016106e790611a99565b6001600160a01b03165f908152601260205260409020805460ff19169055565b6005546001600160a01b031633146109755760405162461bcd60e51b81526004016106e790611a99565b600754600160b01b900460ff16156109cf5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016106e7565b6007805461ffff60a81b191661010160a81b17905543600a55565b60606004805461062690611a61565b6005546001600160a01b03163314610a235760405162461bcd60e51b81526004016106e790611a99565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610a5a573d5f803e3d5ffd5b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610adf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106e7565b610aee33856107ad8685611ae2565b5060019392505050565b5f6106b3338484610d9e565b6005546001600160a01b03163314610b2e5760405162461bcd60e51b81526004016106e790611a99565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610b7a5760405162461bcd60e51b81526004016106e790611a99565b60408051808201909152828152602001819052600e91909155600f55565b6005546001600160a01b03163314610bc25760405162461bcd60e51b81526004016106e790611a99565b6001600160a01b038116610c275760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e7565b610c3081611275565b50565b6005546001600160a01b03163314610c5d5760405162461bcd60e51b81526004016106e790611a99565b60408051808201909152828152602001819052601091909155601155565b6001600160a01b038316610cdd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e7565b6001600160a01b038216610d3e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610dff5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e7565b6001600160a01b0383165f9081526012602052604090205460ff16158015610e3f57506001600160a01b0382165f9081526012602052604090205460ff16155b15610e9357600754600160b01b900460ff16610e935760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016106e7565b6007546001600160a01b038481169116148015610ec857506001600160a01b0382165f9081526012602052604090205460ff16155b8015610ede5750600754600160a01b900460ff16155b15610f5d5760095481610f05846001600160a01b03165f9081526020819052604090205490565b610f0f9190611af5565b1115610f5d5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106e7565b6007546001600160a01b03848116911614801590610f9357506001600160a01b0382165f9081526012602052604090205460ff16155b8015610fb757506001600160a01b0383165f9081526012602052604090205460ff16155b8015610fcd5750600754600160a01b900460ff16155b15611061576007546001600160a01b038381169116146110615760095481611009846001600160a01b03165f9081526020819052604090205490565b6110139190611af5565b11156110615760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106e7565b5f805f61107f60405180604001604052805f81526020015f81525090565b6001600160a01b0387165f9081526012602052604081205460ff161580156110bf57506001600160a01b0387165f9081526012602052604090205460ff16155b80156110d95750600b54600a546110d69190611af5565b43105b600754909150600160a01b900460ff168061110b57506001600160a01b0388165f9081526012602052604090205460ff165b8061112d57506001600160a01b0387165f9081526012602052604090205460ff165b1561113a575f92506111d6565b6007546001600160a01b038881169116148015611155575080155b1561118e5760105460115461116a9190611af5565b604080518082019091526010548152601154602082015290955085945091506111d6565b806111c757600e54600f546111a39190611af5565b60408051808201909152600e548152600f54602082015290955085945091506111d6565b80156111d657600c5494508493505b60646111e28588611bf6565b6111ec9190611c0d565b600754909350600160a81b900460ff16801561121657506007546001600160a01b03898116911614155b156112255761122585836112c6565b6112398888611234868a611ae2565b6113fb565b821561126b57841561126b575f60646112528789611bf6565b61125c9190611c0d565b90506112698930836113fb565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610a5a576007805460ff60a01b1916600160a01b17905581156113ea57305f9081526020819052604090205460085481106113e8576001600854111561131857506008545b5f611324846002611bf6565b90505f818460200151846113389190611bf6565b6113429190611c0d565b90505f61134f8285611ae2565b90504761135b826115d1565b5f6113668247611ae2565b90505f8760200151866113799190611ae2565b6113839083611c0d565b90505f8860200151826113969190611bf6565b905080156113a8576113a88682611721565b88515f906113b7846002611bf6565b6113c19190611bf6565b905080156113df57600d546113df906001600160a01b0316826117d0565b50505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b03831661145f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e7565b6001600160a01b0382166114c15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e7565b6001600160a01b0383165f90815260208190526040902054818110156115385760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106e7565b6115428282611ae2565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611577908490611af5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115c391815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061160457611604611c2c565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561165b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167f9190611c40565b8160018151811061169257611692611c2c565b6001600160a01b0392831660209182029290920101526006546116b89130911684610c7b565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906116f09085905f90869030904290600401611c5b565b5f604051808303815f87803b158015611707575f80fd5b505af1158015611719573d5f803e3d5ffd5b505050505050565b6006546117399030906001600160a01b031684610c7b565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156117a4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117c99190611ccc565b5050505050565b804710156118205760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106e7565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611869576040519150601f19603f3d011682016040523d82523d5f602084013e61186e565b606091505b50509050806118e55760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106e7565b505050565b5f602080835283518060208501525f5b81811015611916578581018301518582016040015282016118fa565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c30575f80fd5b5f806040838503121561195b575f80fd5b823561196681611936565b946020939093013593505050565b5f60208284031215611984575f80fd5b81358015158114611993575f80fd5b9392505050565b5f805f606084860312156119ac575f80fd5b83356119b781611936565b925060208401356119c781611936565b929592945050506040919091013590565b5f602082840312156119e8575f80fd5b5035919050565b5f602082840312156119ff575f80fd5b813561199381611936565b5f8060408385031215611a1b575f80fd5b50508035926020909101359150565b5f8060408385031215611a3b575f80fd5b8235611a4681611936565b91506020830135611a5681611936565b809150509250929050565b600181811c90821680611a7557607f821691505b602082108103611a9357634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156106b7576106b7611ace565b808201808211156106b7576106b7611ace565b600181815b80851115611b4257815f1904821115611b2857611b28611ace565b80851615611b3557918102915b93841c9390800290611b0d565b509250929050565b5f82611b58575060016106b7565b81611b6457505f6106b7565b8160018114611b7a5760028114611b8457611ba0565b60019150506106b7565b60ff841115611b9557611b95611ace565b50506001821b6106b7565b5060208310610133831016604e8410600b8410161715611bc3575081810a6106b7565b611bcd8383611b08565b805f1904821115611be057611be0611ace565b029392505050565b5f61199360ff841683611b4a565b80820281158282048414176106b7576106b7611ace565b5f82611c2757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c50575f80fd5b815161199381611936565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611cab5784516001600160a01b031683529383019391830191600101611c86565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611cde575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122087da9689482dd49f09f9033f6b47b1d6ffc6f81aef81dd7acf5372e6736b4f7264736f6c63430008170033

Deployed Bytecode Sourcemap

8223:9646:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9865:161;;;;;;;;;;-1:-1:-1;9865:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9865:161:0;1023:187:1;16281:152:0;;;;;;;;;;-1:-1:-1;16281:152:0;;;;;:::i;:::-;;:::i;:::-;;2493:108;;;;;;;;;;-1:-1:-1;2581:12:0;;2493:108;;;1639:25:1;;;1627:2;1612:18;2493:108:0;1493:177:1;10034:448:0;;;;;;;;;;-1:-1:-1;10034:448:0;;;;;:::i;:::-;;:::i;2386:93::-;;;;;;;;;;-1:-1:-1;2386:93:0;;2469:2;2278:36:1;;2266:2;2251:18;2386:93:0;2136:184:1;10490:248:0;;;;;;;;;;-1:-1:-1;10490:248:0;;;;;:::i;:::-;;:::i;16441:177::-;;;;;;;;;;-1:-1:-1;16441:177:0;;;;;:::i;:::-;;:::i;17558:131::-;;;;;;;;;;-1:-1:-1;17558:131:0;;;;;:::i;:::-;;:::i;8458:34::-;;;;;;;;;;-1:-1:-1;8458:34:0;;;;-1:-1:-1;;;8458:34:0;;;;;;17328:104;;;;;;;;;;-1:-1:-1;17328:104:0;;;;;:::i;:::-;;:::i;8566:48::-;;;;;;;;;;;;;;;;2615:127;;;;;;;;;;-1:-1:-1;2615:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2716:18:0;2689:7;2716:18;;;;;;;;;;;;2615:127;6886:94;;;;;;;;;;;;;:::i;8988:33::-;;;;;;;;;;-1:-1:-1;8988:33:0;;;;;;;;;;;;;2936:25:1;;;2992:2;2977:18;;2970:34;;;;2909:18;8988:33:0;2762:248:1;17440:108:0;;;;;;;;;;-1:-1:-1;17440:108:0;;;;;:::i;:::-;;:::i;8815:79::-;;;;;;;;;;;;8852:42;8815:79;;;;;-1:-1:-1;;;;;3179:32:1;;;3161:51;;3149:2;3134:18;8815:79:0;3015:203:1;16971:224:0;;;;;;;;;;;;;:::i;6663:87::-;;;;;;;;;;-1:-1:-1;6736:6:0;;-1:-1:-1;;;;;6736:6:0;6663:87;;2268:104;;;;;;;;;;;;;:::i;17697:112::-;;;;;;;;;;-1:-1:-1;17697:112:0;;;;;:::i;:::-;;:::i;10746:410::-;;;;;;;;;;-1:-1:-1;10746:410:0;;;;;:::i;:::-;;:::i;8340:19::-;;;;;;;;;;-1:-1:-1;8340:19:0;;;;-1:-1:-1;;;;;8340:19:0;;;11164:165;;;;;;;;;;-1:-1:-1;11164:165:0;;;;;:::i;:::-;;:::i;17203:115::-;;;;;;;;;;-1:-1:-1;17203:115:0;;;;;:::i;:::-;;:::i;9074:41::-;;;;;;;;;;-1:-1:-1;9074:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16626:164;;;;;;;;;;-1:-1:-1;16626:164:0;;;;;:::i;:::-;;:::i;2986:201::-;;;;;;;;;;-1:-1:-1;2986:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;3152:18:0;;;3120:7;3152:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2986:201;6988:192;;;;;;;;;;-1:-1:-1;6988:192:0;;;;;:::i;:::-;;:::i;16798:166::-;;;;;;;;;;-1:-1:-1;16798:166:0;;;;;:::i;:::-;;:::i;9028:37::-;;;;;;;;;;-1:-1:-1;9028:37:0;;;;;;;;;8312:21;;;;;;;;;;-1:-1:-1;8312:21:0;;;;-1:-1:-1;;;;;8312:21:0;;;2154:100;2208:13;2241:5;2234:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:100;:::o;9865:161::-;9940:4;9957:39;317:10;9980:7;9989:6;9957:8;:39::i;:::-;-1:-1:-1;10014:4:0;9865:161;;;;;:::o;16281:152::-;6736:6;;-1:-1:-1;;;;;6736:6:0;317:10;6798:23;6790:68;;;;-1:-1:-1;;;6790:68:0;;;;;;;:::i;:::-;;;;;;;;;16399:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16399:26:0::1;-1:-1:-1::0;;;;16399:26:0;;::::1;::::0;;;::::1;::::0;;16281:152::o;10034:448::-;10166:4;10183:36;10193:6;10201:9;10212:6;10183:9;:36::i;:::-;-1:-1:-1;;;;;10259:19:0;;10232:24;10259:19;;;:11;:19;;;;;;;;317:10;10259:33;;;;;;;;10311:26;;;;10303:79;;;;-1:-1:-1;;;10303:79:0;;5040:2:1;10303:79:0;;;5022:21:1;5079:2;5059:18;;;5052:30;5118:34;5098:18;;;5091:62;-1:-1:-1;;;5169:18:1;;;5162:38;5217:19;;10303:79:0;4838:404:1;10303:79:0;10393:57;10402:6;317:10;10424:25;10443:6;10424:16;:25;:::i;:::-;10393:8;:57::i;:::-;-1:-1:-1;10470:4:0;;10034:448;-1:-1:-1;;;;10034:448:0:o;10490:248::-;317:10;10606:4;10660:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10660:34:0;;;;;;;;;;10606:4;;10628:80;;10651:7;;10660:47;;10697:10;;10660:47;:::i;16441:177::-;6736:6;;-1:-1:-1;;;;;6736:6:0;317:10;6798:23;6790:68;;;;-1:-1:-1;;;6790:68:0;;;;;;;:::i;:::-;16596:14:::1;2469:2:::0;16596::::1;:14;:::i;:::-;16583:27;::::0;:10;:27:::1;:::i;:::-;16557:23;:53:::0;-1:-1:-1;16441:177:0:o;17558:131::-;6736:6;;-1:-1:-1;;;;;6736:6:0;317:10;6798:23;6790:68;;;;-1:-1:-1;;;6790:68:0;;;;;;;:::i;:::-;17666:14:::1;2469:2:::0;17666::::1;:14;:::i;:::-;17654:26;::::0;:9;:26:::1;:::i;:::-;17637:14;:43:::0;-1:-1:-1;17558:131:0:o;17328:104::-;6736:6;;-1:-1:-1;;;;;6736:6:0;317:10;6798:23;6790:68;;;;-1:-1:-1;;;6790:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17398:19:0::1;;::::0;;;:9:::1;:19;::::0;;;;:26;;-1:-1:-1;;17398:26:0::1;17420:4;17398:26;::::0;;17328:104::o;6886:94::-;6736:6;;-1:-1:-1;;;;;6736:6:0;317:10;6798:23;6790:68;;;;-1:-1:-1;;;6790:68:0;;;;;;;:::i;:::-;6951:21:::1;6969:1;6951:9;:21::i;:::-;6886:94::o:0;17440:108::-;6736:6;;-1:-1:-1;;;;;6736:6:0;317:10;6798:23;6790:68;;;;-1:-1:-1;;;6790:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17513:19:0::1;17535:5;17513:19:::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;17513:27:0::1;::::0;;17440:108::o;16971:224::-;6736:6;;-1:-1:-1;;;;;6736:6:0;317:10;6798:23;6790:68;;;;-1:-1:-1;;;6790:68:0;;;;;;;:::i;:::-;17035:14:::1;::::0;-1:-1:-1;;;17035:14:0;::::1;;;17034:15;17026:54;;;::::0;-1:-1:-1;;;17026:54:0;;7394:2:1;17026:54:0::1;::::0;::::1;7376:21:1::0;7433:2;7413:18;;;7406:30;7472:28;7452:18;;;7445:56;7518:18;;17026:54:0::1;7192:350:1::0;17026:54:0::1;17091:14;:21:::0;;-1:-1:-1;;;;17123:25:0;-1:-1:-1;;;17123:25:0;;;17175:12:::1;17159:13;:28:::0;16971:224::o;2268:104::-;2324:13;2357:7;2350:14;;;;;:::i;17697:112::-;6736:6;;-1:-1:-1;;;;;6736:6:0;317:10;6798:23;6790:68;;;;-1:-1:-1;;;6790:68:0;;;;;;;:::i;:::-;6736:6;;17765:36:::1;::::0;-1:-1:-1;;;;;6736:6:0;;;;17765:36;::::1;;;::::0;17791:9;;17765:36:::1;::::0;;;17791:9;6736:6;17765:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17697:112:::0;:::o;10746:410::-;317:10;10867:4;10916:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10916:34:0;;;;;;;;;;10969:35;;;;10961:85;;;;-1:-1:-1;;;10961:85:0;;7749:2:1;10961:85:0;;;7731:21:1;7788:2;7768:18;;;7761:30;7827:34;7807:18;;;7800:62;-1:-1:-1;;;7878:18:1;;;7871:35;7923:19;;10961:85:0;7547:401:1;10961:85:0;11057:67;317:10;11080:7;11089:34;11108:15;11089:16;:34;:::i;11057:67::-;-1:-1:-1;11144:4:0;;10746:410;-1:-1:-1;;;10746:410:0:o;11164:165::-;11242:4;11259:40;11269:10;11281:9;11292:6;11259:9;:40::i;17203:115::-;6736:6;;-1:-1:-1;;;;;6736:6:0;317:10;6798:23;6790:68;;;;-1:-1:-1;;;6790:68:0;;;;;;;:::i;:::-;17283:15:::1;:27:::0;;-1:-1:-1;;;;;;17283:27:0::1;-1:-1:-1::0;;;;;17283:27:0;;;::::1;::::0;;;::::1;::::0;;17203:115::o;16626:164::-;6736:6;;-1:-1:-1;;;;;6736:6:0;317:10;6798:23;6790:68;;;;-1:-1:-1;;;6790:68:0;;;;;;;:::i;:::-;16753:29:::1;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;16745:5:::1;:37:::0;;;;;;16626:164::o;6988:192::-;6736:6;;-1:-1:-1;;;;;6736:6:0;317:10;6798:23;6790:68;;;;-1:-1:-1;;;6790:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7077:22:0;::::1;7069:73;;;::::0;-1:-1:-1;;;7069:73:0;;8155:2:1;7069:73:0::1;::::0;::::1;8137:21:1::0;8194:2;8174:18;;;8167:30;8233:34;8213:18;;;8206:62;-1:-1:-1;;;8284:18:1;;;8277:36;8330:19;;7069:73:0::1;7953:402:1::0;7069:73:0::1;7153:19;7163:8;7153:9;:19::i;:::-;6988:192:::0;:::o;16798:166::-;6736:6;;-1:-1:-1;;;;;6736:6:0;317:10;6798:23;6790:68;;;;-1:-1:-1;;;6790:68:0;;;;;;;:::i;:::-;16927:29:::1;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;16915:9:::1;:41:::0;;;;;;16798:166::o;5557:380::-;-1:-1:-1;;;;;5693:19:0;;5685:68;;;;-1:-1:-1;;;5685:68:0;;8562:2:1;5685:68:0;;;8544:21:1;8601:2;8581:18;;;8574:30;8640:34;8620:18;;;8613:62;-1:-1:-1;;;8691:18:1;;;8684:34;8735:19;;5685:68:0;8360:400:1;5685:68:0;-1:-1:-1;;;;;5772:21:0;;5764:68;;;;-1:-1:-1;;;5764:68:0;;8967:2:1;5764:68:0;;;8949:21:1;9006:2;8986:18;;;8979:30;9045:34;9025:18;;;9018:62;-1:-1:-1;;;9096:18:1;;;9089:32;9138:19;;5764:68:0;8765:398:1;5764:68:0;-1:-1:-1;;;;;5845:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5897:32;;1639:25:1;;;5897:32:0;;1612:18:1;5897:32:0;;;;;;;5557:380;;;:::o;11337:2464::-;11487:1;11478:6;:10;11470:64;;;;-1:-1:-1;;;11470:64:0;;9370:2:1;11470:64:0;;;9352:21:1;9409:2;9389:18;;;9382:30;9448:34;9428:18;;;9421:62;-1:-1:-1;;;9499:18:1;;;9492:39;9548:19;;11470:64:0;9168:405:1;11470:64:0;-1:-1:-1;;;;;11552:17:0;;;;;;:9;:17;;;;;;;;11551:18;:43;;;;-1:-1:-1;;;;;;11574:20:0;;;;;;:9;:20;;;;;;;;11573:21;11551:43;11547:122;;;11619:14;;-1:-1:-1;;;11619:14:0;;;;11611:46;;;;-1:-1:-1;;;11611:46:0;;9780:2:1;11611:46:0;;;9762:21:1;9819:2;9799:18;;;9792:30;-1:-1:-1;;;9838:18:1;;;9831:49;9897:18;;11611:46:0;9578:343:1;11611:46:0;11695:4;;-1:-1:-1;;;;;11685:14:0;;;11695:4;;11685:14;:39;;;;-1:-1:-1;;;;;;11704:20:0;;;;;;:9;:20;;;;;;;;11703:21;11685:39;:59;;;;-1:-1:-1;11729:15:0;;-1:-1:-1;;;11729:15:0;;;;11728:16;11685:59;11681:215;;;11802:14;;11792:6;11769:20;11779:9;-1:-1:-1;;;;;2716:18:0;2689:7;2716:18;;;;;;;;;;;;2615:127;11769:20;:29;;;;:::i;:::-;:47;;11761:123;;;;-1:-1:-1;;;11761:123:0;;10128:2:1;11761:123:0;;;10110:21:1;;;10147:18;;;10140:30;10206:34;10186:18;;;10179:62;10258:18;;11761:123:0;9926:356:1;11761:123:0;11922:4;;-1:-1:-1;;;;;11912:14:0;;;11922:4;;11912:14;;;;:39;;-1:-1:-1;;;;;;11931:20:0;;;;;;:9;:20;;;;;;;;11930:21;11912:39;:61;;;;-1:-1:-1;;;;;;11956:17:0;;;;;;:9;:17;;;;;;;;11955:18;11912:61;:81;;;;-1:-1:-1;11978:15:0;;-1:-1:-1;;;11978:15:0;;;;11977:16;11912:81;11908:315;;;12040:4;;-1:-1:-1;;;;;12027:17:0;;;12040:4;;12027:17;12023:189;;12106:14;;12096:6;12073:20;12083:9;-1:-1:-1;;;;;2716:18:0;2689:7;2716:18;;;;;;;;;;;;2615:127;12073:20;:29;;;;:::i;:::-;:47;;12065:131;;;;-1:-1:-1;;;12065:131:0;;10128:2:1;12065:131:0;;;10110:21:1;;;10147:18;;;10140:30;10206:34;10186:18;;;10179:62;10258:18;;12065:131:0;9926:356:1;12065:131:0;12235:15;12261:14;12286:11;12308:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;12308:25:0;-1:-1:-1;;;;;12367:17:0;;12346;12367;;;:9;:17;;;;;;;;12366:18;:56;;;;-1:-1:-1;;;;;;12402:20:0;;;;;;:9;:20;;;;;;;;12401:21;12366:56;:112;;;;;12470:8;;12454:13;;:24;;;;:::i;:::-;12439:12;:39;12366:112;12566:15;;12346:132;;-1:-1:-1;;;;12566:15:0;;;;;:36;;-1:-1:-1;;;;;;12585:17:0;;;;;;:9;:17;;;;;;;;12566:36;:60;;;-1:-1:-1;;;;;;12606:20:0;;;;;;:9;:20;;;;;;;;12566:60;12562:655;;;12647:1;12641:7;;12562:655;;;12712:4;;-1:-1:-1;;;;;12699:17:0;;;12712:4;;12699:17;:34;;;;;12721:12;12720:13;12699:34;12695:522;;;12816:9;:19;12777;;:58;;12816:19;12777:58;:::i;:::-;12882:24;;;;;;;;;12897:9;12882:24;;;;;;;;;12750:85;;-1:-1:-1;12750:85:0;;-1:-1:-1;12882:24:0;-1:-1:-1;12695:522:0;;;12929:12;12924:293;;13020:5;:15;12985;;:50;;13020:15;12985:50;:::i;:::-;13082:20;;;;;;;;;13097:5;13082:20;;;;;;;;;12958:77;;-1:-1:-1;12958:77:0;;-1:-1:-1;13082:20:0;-1:-1:-1;12924:293:0;;;13124:12;13120:97;;;13163:9;;;-1:-1:-1;13163:9:0;;-1:-1:-1;13120:97:0;13255:3;13236:15;13245:6;13236;:15;:::i;:::-;13235:23;;;;:::i;:::-;13372:18;;13229:29;;-1:-1:-1;;;;13372:18:0;;;;:36;;;;-1:-1:-1;13404:4:0;;-1:-1:-1;;;;;13394:14:0;;;13404:4;;13394:14;;13372:36;13368:76;;;13410:34;13422:7;13431:12;13410:11;:34::i;:::-;13486:48;13502:6;13510:9;13521:12;13530:3;13521:6;:12;:::i;:::-;13486:15;:48::i;:::-;13549:7;;13545:249;;13621:11;;13617:164;;13653:17;13694:3;13674:16;13683:7;13674:6;:16;:::i;:::-;13673:24;;;;:::i;:::-;13653:44;;13716:49;13732:6;13748:4;13755:9;13716:15;:49::i;:::-;13634:147;13617:164;11459:2342;;;;;11337:2464;;;:::o;7188:173::-;7263:6;;;-1:-1:-1;;;;;7280:17:0;;;-1:-1:-1;;;;;;7280:17:0;;;;;;;7313:40;;7263:6;;;7280:17;7263:6;;7313:40;;7244:16;;7313:40;7233:128;7188:173;:::o;13809:1422::-;9163:15;;-1:-1:-1;;;9163:15:0;;;;9158:125;;9195:15;:22;;-1:-1:-1;;;;9195:22:0;-1:-1:-1;;;9195:22:0;;;13895:49;;13926:7:::1;13895:49;14001:4;13957:23;2716:18:::0;;;;;;;;;;;14041:23:::1;::::0;14022:42;::::1;14018:1206;;14111:1;14085:23;;:27;14081:109;;;-1:-1:-1::0;14151:23:0::1;::::0;14081:109:::1;14261:19;14283:11;:7:::0;14293:1:::1;14283:11;:::i;:::-;14261:33;;14309:32;14403:11;14363:9;:19;;;14345:15;:37;;;;:::i;:::-;14344:70;;;;:::i;:::-;14309:105:::0;-1:-1:-1;14429:14:0::1;14446:42;14309:105:::0;14446:15;:42:::1;:::i;:::-;14429:59:::0;-1:-1:-1;14530:21:0::1;14568:24;14429:59:::0;14568:16:::1;:24::i;:::-;14609:20;14632:38;14656:14:::0;14632:21:::1;:38;:::i;:::-;14609:61;;14685:19;14737:9;:19;;;14723:11;:33;;;;:::i;:::-;14707:50;::::0;:12;:50:::1;:::i;:::-;14685:72;;14772:29;14818:9;:19;;;14804:11;:33;;;;:::i;:::-;14772:65:::0;-1:-1:-1;14858:25:0;;14854:161:::1;;14938:61;14951:24;14977:21;14938:12;:61::i;:::-;15072:19:::0;;15031:20:::1;::::0;15054:15:::1;:11:::0;15068:1:::1;15054:15;:::i;:::-;:37;;;;:::i;:::-;15031:60:::0;-1:-1:-1;15110:16:0;;15106:105:::1;;15155:15;::::0;15147:48:::1;::::0;-1:-1:-1;;;;;15155:15:0::1;15182:12:::0;15147:34:::1;:48::i;:::-;14066:1158;;;;;;;;14018:1206;13889:1342;9232:1;9248:15:::0;:23;;-1:-1:-1;;;;9248:23:0;;;13809:1422;;:::o;4538:638::-;-1:-1:-1;;;;;4678:20:0;;4670:70;;;;-1:-1:-1;;;4670:70:0;;10711:2:1;4670:70:0;;;10693:21:1;10750:2;10730:18;;;10723:30;10789:34;10769:18;;;10762:62;-1:-1:-1;;;10840:18:1;;;10833:35;10885:19;;4670:70:0;10509:401:1;4670:70:0;-1:-1:-1;;;;;4759:23:0;;4751:71;;;;-1:-1:-1;;;4751:71:0;;11117:2:1;4751:71:0;;;11099:21:1;11156:2;11136:18;;;11129:30;11195:34;11175:18;;;11168:62;-1:-1:-1;;;11246:18:1;;;11239:33;11289:19;;4751:71:0;10915:399:1;4751:71:0;-1:-1:-1;;;;;4919:17:0;;4895:21;4919:17;;;;;;;;;;;4955:23;;;;4947:74;;;;-1:-1:-1;;;4947:74:0;;11521:2:1;4947:74:0;;;11503:21:1;11560:2;11540:18;;;11533:30;11599:34;11579:18;;;11572:62;-1:-1:-1;;;11650:18:1;;;11643:36;11696:19;;4947:74:0;11319:402:1;4947:74:0;5052:22;5068:6;5052:13;:22;:::i;:::-;-1:-1:-1;;;;;5032:17:0;;;:9;:17;;;;;;;;;;;:42;;;;5085:20;;;;;;;;:30;;5109:6;;5032:9;5085:30;;5109:6;;5085:30;:::i;:::-;;;;;;;;5150:9;-1:-1:-1;;;;;5133:35:0;5142:6;-1:-1:-1;;;;;5133:35:0;;5161:6;5133:35;;;;1639:25:1;;1627:2;1612:18;;1493:177;5133:35:0;;;;;;;;4659:517;4538:638;;;:::o;15239:526::-;15381:16;;;15395:1;15381:16;;;;;;;;15357:21;;15381:16;;;;;;;;;;-1:-1:-1;15381:16:0;15357:40;;15426:4;15408;15413:1;15408:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15408:23:0;;;:7;;;;;;;;;;:23;;;;15452:6;;:13;;;-1:-1:-1;;;15452:13:0;;;;:6;;;;;:11;;:13;;;;;15408:7;;15452:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15442:4;15447:1;15442:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15442:23:0;;;:7;;;;;;;;;:23;15510:6;;15478:53;;15495:4;;15510:6;15519:11;15478:8;:53::i;:::-;15570:6;;:187;;-1:-1:-1;;;15570:187:0;;-1:-1:-1;;;;;15570:6:0;;;;:57;;:187;;15642:11;;15570:6;;15684:4;;15711;;15731:15;;15570:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15294:471;15239:526;:::o;15773:500::-;15953:6;;15921:53;;15938:4;;-1:-1:-1;;;;;15953:6:0;15962:11;15921:8;:53::i;:::-;16017:6;;:248;;-1:-1:-1;;;16017:248:0;;16082:4;16017:248;;;13572:34:1;13622:18;;;13615:34;;;16017:6:0;13665:18:1;;;13658:34;;;13708:18;;;13701:34;8852:42:0;13751:19:1;;;13744:44;16239:15:0;13804:19:1;;;13797:35;-1:-1:-1;;;;;16017:6:0;;;;:22;;16048:9;;13506:19:1;;16017:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15773:500;;:::o;6106:319::-;6221:6;6196:21;:31;;6188:73;;;;-1:-1:-1;;;6188:73:0;;14356:2:1;6188:73:0;;;14338:21:1;14395:2;14375:18;;;14368:30;14434:31;14414:18;;;14407:59;14483:18;;6188:73:0;14154:353:1;6188:73:0;6275:12;6293:9;-1:-1:-1;;;;;6293:14:0;6316:6;6293:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6274:54;;;6347:7;6339:78;;;;-1:-1:-1;;;6339:78:0;;14924:2:1;6339:78:0;;;14906:21:1;14963:2;14943:18;;;14936:30;15002:34;14982:18;;;14975:62;15073:28;15053:18;;;15046:56;15119:19;;6339:78:0;14722:422:1;6339:78:0;6177:248;6106:319;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:273::-;1271:6;1324:2;1312:9;1303:7;1299:23;1295:32;1292:52;;;1340:1;1337;1330:12;1292:52;1379:9;1366:23;1432:5;1425:13;1418:21;1411:5;1408:32;1398:60;;1454:1;1451;1444:12;1398:60;1477:5;1215:273;-1:-1:-1;;;1215:273:1:o;1675:456::-;1752:6;1760;1768;1821:2;1809:9;1800:7;1796:23;1792:32;1789:52;;;1837:1;1834;1827:12;1789:52;1876:9;1863:23;1895:31;1920:5;1895:31;:::i;:::-;1945:5;-1:-1:-1;2002:2:1;1987:18;;1974:32;2015:33;1974:32;2015:33;:::i;:::-;1675:456;;2067:7;;-1:-1:-1;;;2121:2:1;2106:18;;;;2093:32;;1675:456::o;2325:180::-;2384:6;2437:2;2425:9;2416:7;2412:23;2408:32;2405:52;;;2453:1;2450;2443:12;2405:52;-1:-1:-1;2476:23:1;;2325:180;-1:-1:-1;2325:180:1:o;2510:247::-;2569:6;2622:2;2610:9;2601:7;2597:23;2593:32;2590:52;;;2638:1;2635;2628:12;2590:52;2677:9;2664:23;2696:31;2721:5;2696:31;:::i;3223:248::-;3291:6;3299;3352:2;3340:9;3331:7;3327:23;3323:32;3320:52;;;3368:1;3365;3358:12;3320:52;-1:-1:-1;;3391:23:1;;;3461:2;3446:18;;;3433:32;;-1:-1:-1;3223:248:1:o;3476:388::-;3544:6;3552;3605:2;3593:9;3584:7;3580:23;3576:32;3573:52;;;3621:1;3618;3611:12;3573:52;3660:9;3647:23;3679:31;3704:5;3679:31;:::i;:::-;3729:5;-1:-1:-1;3786:2:1;3771:18;;3758:32;3799:33;3758:32;3799:33;:::i;:::-;3851:7;3841:17;;;3476:388;;;;;:::o;4092:380::-;4171:1;4167:12;;;;4214;;;4235:61;;4289:4;4281:6;4277:17;4267:27;;4235:61;4342:2;4334:6;4331:14;4311:18;4308:38;4305:161;;4388:10;4383:3;4379:20;4376:1;4369:31;4423:4;4420:1;4413:15;4451:4;4448:1;4441:15;4305:161;;4092:380;;;:::o;4477:356::-;4679:2;4661:21;;;4698:18;;;4691:30;4757:34;4752:2;4737:18;;4730:62;4824:2;4809:18;;4477:356::o;5247:127::-;5308:10;5303:3;5299:20;5296:1;5289:31;5339:4;5336:1;5329:15;5363:4;5360:1;5353:15;5379:128;5446:9;;;5467:11;;;5464:37;;;5481:18;;:::i;5512:125::-;5577:9;;;5598:10;;;5595:36;;;5611:18;;:::i;5642:416::-;5731:1;5768:5;5731:1;5782:270;5803:7;5793:8;5790:21;5782:270;;;5862:4;5858:1;5854:6;5850:17;5844:4;5841:27;5838:53;;;5871:18;;:::i;:::-;5921:7;5911:8;5907:22;5904:55;;;5941:16;;;;5904:55;6020:22;;;;5980:15;;;;5782:270;;;5786:3;5642:416;;;;;:::o;6063:806::-;6112:5;6142:8;6132:80;;-1:-1:-1;6183:1:1;6197:5;;6132:80;6231:4;6221:76;;-1:-1:-1;6268:1:1;6282:5;;6221:76;6313:4;6331:1;6326:59;;;;6399:1;6394:130;;;;6306:218;;6326:59;6356:1;6347:10;;6370:5;;;6394:130;6431:3;6421:8;6418:17;6415:43;;;6438:18;;:::i;:::-;-1:-1:-1;;6494:1:1;6480:16;;6509:5;;6306:218;;6608:2;6598:8;6595:16;6589:3;6583:4;6580:13;6576:36;6570:2;6560:8;6557:16;6552:2;6546:4;6543:12;6539:35;6536:77;6533:159;;;-1:-1:-1;6645:19:1;;;6677:5;;6533:159;6724:34;6749:8;6743:4;6724:34;:::i;:::-;6794:6;6790:1;6786:6;6782:19;6773:7;6770:32;6767:58;;;6805:18;;:::i;:::-;6843:20;;6063:806;-1:-1:-1;;;6063:806:1:o;6874:140::-;6932:5;6961:47;7002:4;6992:8;6988:19;6982:4;6961:47;:::i;7019:168::-;7092:9;;;7123;;7140:15;;;7134:22;;7120:37;7110:71;;7161:18;;:::i;10287:217::-;10327:1;10353;10343:132;;10397:10;10392:3;10388:20;10385:1;10378:31;10432:4;10429:1;10422:15;10460:4;10457:1;10450:15;10343:132;-1:-1:-1;10489:9:1;;10287:217::o;11858:127::-;11919:10;11914:3;11910:20;11907:1;11900:31;11950:4;11947:1;11940:15;11974:4;11971:1;11964:15;11990:251;12060:6;12113:2;12101:9;12092:7;12088:23;12084:32;12081:52;;;12129:1;12126;12119:12;12081:52;12161:9;12155:16;12180:31;12205:5;12180:31;:::i;12246:980::-;12508:4;12556:3;12545:9;12541:19;12587:6;12576:9;12569:25;12613:2;12651:6;12646:2;12635:9;12631:18;12624:34;12694:3;12689:2;12678:9;12674:18;12667:31;12718:6;12753;12747:13;12784:6;12776;12769:22;12822:3;12811:9;12807:19;12800:26;;12861:2;12853:6;12849:15;12835:29;;12882:1;12892:195;12906:6;12903:1;12900:13;12892:195;;;12971:13;;-1:-1:-1;;;;;12967:39:1;12955:52;;13062:15;;;;13027:12;;;;13003:1;12921:9;12892:195;;;-1:-1:-1;;;;;;;13143:32:1;;;;13138:2;13123:18;;13116:60;-1:-1:-1;;;13207:3:1;13192:19;13185:35;13104:3;12246:980;-1:-1:-1;;;12246:980:1:o;13843:306::-;13931:6;13939;13947;14000:2;13988:9;13979:7;13975:23;13971:32;13968:52;;;14016:1;14013;14006:12;13968:52;14045:9;14039:16;14029:26;;14095:2;14084:9;14080:18;14074:25;14064:35;;14139:2;14128:9;14124:18;14118:25;14108:35;;13843:306;;;;;:::o

Swarm Source

ipfs://87da9689482dd49f09f9033f6b47b1d6ffc6f81aef81dd7acf5372e6736b4f72

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.