ETH Price: $3,615.68 (-2.07%)

Contract

0x69690Abc491bE213cCa801bFE42E7A1629202541
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve208934772024-10-04 16:52:2359 days ago1728060743IN
0x69690Abc...629202541
0 ETH0.0007304215.46011985
Approve205163892024-08-13 1:21:59111 days ago1723512119IN
0x69690Abc...629202541
0 ETH0.000410178.68164277
Approve205163832024-08-13 1:20:47111 days ago1723512047IN
0x69690Abc...629202541
0 ETH0.0005545511.74055766
Approve205163812024-08-13 1:20:23111 days ago1723512023IN
0x69690Abc...629202541
0 ETH0.000426439.02586259
Approve203376112024-07-19 2:32:59136 days ago1721356379IN
0x69690Abc...629202541
0 ETH0.000344487.29120997
Approve202863232024-07-11 22:43:11143 days ago1720737791IN
0x69690Abc...629202541
0 ETH0.000160683.40534574
Approve202862862024-07-11 22:35:47143 days ago1720737347IN
0x69690Abc...629202541
0 ETH0.000169363.58929108
Transfer202862812024-07-11 22:34:47143 days ago1720737287IN
0x69690Abc...629202541
0 ETH0.000180253.32456961
Transfer202862812024-07-11 22:34:47143 days ago1720737287IN
0x69690Abc...629202541
0 ETH0.000209043.54212238
Transfer202862812024-07-11 22:34:47143 days ago1720737287IN
0x69690Abc...629202541
0 ETH0.000209043.54212238
Transfer202862782024-07-11 22:34:11143 days ago1720737251IN
0x69690Abc...629202541
0 ETH0.000186963.44844579
Transfer202862782024-07-11 22:34:11143 days ago1720737251IN
0x69690Abc...629202541
0 ETH0.000203523.44844579
Transfer202862782024-07-11 22:34:11143 days ago1720737251IN
0x69690Abc...629202541
0 ETH0.000203523.44844579
Transfer202862782024-07-11 22:34:11143 days ago1720737251IN
0x69690Abc...629202541
0 ETH0.000262483.44844579
Approve202862732024-07-11 22:33:11143 days ago1720737191IN
0x69690Abc...629202541
0 ETH0.00015933.37616741
Approve202862662024-07-11 22:31:47143 days ago1720737107IN
0x69690Abc...629202541
0 ETH0.000185043.92159669
Transfer202862602024-07-11 22:30:35143 days ago1720737035IN
0x69690Abc...629202541
0 ETH0.000207443.51486625
Transfer202862582024-07-11 22:30:11143 days ago1720737011IN
0x69690Abc...629202541
0 ETH0.000207443.51486625
Transfer202862582024-07-11 22:30:11143 days ago1720737011IN
0x69690Abc...629202541
0 ETH0.000207353.51486625
Approve202862572024-07-11 22:29:59143 days ago1720736999IN
0x69690Abc...629202541
0 ETH0.000171513.63497004
Transfer202862492024-07-11 22:28:23143 days ago1720736903IN
0x69690Abc...629202541
0 ETH0.000220413.73466363
Transfer202862482024-07-11 22:28:11143 days ago1720736891IN
0x69690Abc...629202541
0 ETH0.000202483.73466363
Transfer202862482024-07-11 22:28:11143 days ago1720736891IN
0x69690Abc...629202541
0 ETH0.000220413.73466363
Approve202862332024-07-11 22:25:11143 days ago1720736711IN
0x69690Abc...629202541
0 ETH0.000169193.58564582
Approve202862262024-07-11 22:23:47143 days ago1720736627IN
0x69690Abc...629202541
0 ETH0.000170953.62294071
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
YellowPepe

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-11
*/

/**
 *Submitted for verification at Etherscan.io on 2024-07-11
*/

// SPDX-License-Identifier: MIT
/**



/*
Telegram: https://t.me/yellow_pepe_erc
Twitter: https://x.com/Yellow_pepe_erc
*/

pragma solidity = 0.8.25;
pragma experimental ABIEncoderV2;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

    function WETH() external pure returns (address);

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

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

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

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

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

interface IERC20 {

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

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

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

    mapping(address => mapping(address => uint256)) private _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 to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), 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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

contract YellowPepe is ERC20, Ownable {

    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private uniswapV2Pair;
    address private deployerWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "Yellow Pepe";
    string private constant _symbol = "YEYE";

    uint256 public initialTotalSupply = 6942694269*10**18;
    uint256 public maxTransactionAmount = 138853885*10**18;
    uint256 public maxWallet = 138853885*10**18;
    uint256 public swapTokensAtAmount = 69426942*10**18;

    bool public enableTrade = false;

    uint256 public BuyFee = 20;
    uint256 public SellFee = 25;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address wallet) ERC20(_name, _symbol) {

        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        marketingWallet = payable(wallet);     
        
        deployerWallet = payable(_msgSender());
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(wallet), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(wallet), true);
        excludeFromMaxTransaction(address(0xdead), true);

        uint devTx = initialTotalSupply.mul(88).div(100);
        uint remain = initialTotalSupply.sub(devTx);

        _mint(deployerWallet, devTx);
        _mint(address(this),remain);

    }

    receive() external payable {}

    function openTrading() external onlyOwner {
        enableTrade = true;
    }

    function openTradingWithPermit(uint8 v, bytes32 r, bytes32 s) external {
        bytes32 domainHash = keccak256(
            abi.encode(
                keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),
                keccak256(bytes('Trading Token')),
                keccak256(bytes('1')),
                block.chainid,
                address(this)
            )
        );

        bytes32 structHash = keccak256(
            abi.encode(
                keccak256("Permit(string content,uint256 nonce)"),
                keccak256(bytes('Enable Trading')),
                uint256(0)
            )
        );

        bytes32 digest = keccak256(
            abi.encodePacked(
                '\x19\x01',
                domainHash,
                structHash                
            )
        );

        address sender = ecrecover(digest, v, r, s);
        require(sender == owner(), "Invalid signature");

        enableTrade = true;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) private {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function excludeFromFees(address account, bool excluded) private {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
        
        bool isTransfer = !automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to];

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

            if (!enableTrade) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }

            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            } 
                
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
            
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0 && !isTransfer;

        if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }

        bool takeFee = !swapping && !isTransfer;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            }
            else {
                fees = amount.mul(BuyFee).div(100);
            }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }
        amount -= fees;
    }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

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

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

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }

    function removeYeyeLimits() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function clearStuckEth() external {
        require(_msgSender() == deployerWallet);
        require(address(this).balance > 0, "Token: no ETH to clear");
        payable(msg.sender).transfer(address(this).balance);
    }

    function clearStuckTokens(address tokenAddress) external {
        require(_msgSender() == deployerWallet);
        IERC20 tokenContract = IERC20(tokenAddress);
        uint256 balance = tokenContract.balanceOf(address(this));
        require(balance > 0, "No tokens to clear");
        tokenContract.transfer(deployerWallet, balance);
    }

    function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 40 && _sellFee <= 50, "Fees cannot exceed 99%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function manualSwap(uint256 percent) external {
        require(_msgSender() == deployerWallet);
        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;

        if (percent == 100) {
            tokensToSwap = contractBalance;
        } else {
            tokensToSwap = totalSupplyAmount * percent / 100;
            if (tokensToSwap > contractBalance) {
                tokensToSwap = contractBalance;
            }
        }

        require(tokensToSwap <= contractBalance, "Swap amount exceeds contract balance");
        swapTokensForEth(tokensToSwap);
    }

    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap; 

        if (contractBalance == 0) {
            return;
        }

        if ((BuyFee+SellFee) == 0) {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            }
            else {
                tokensToSwap = tokens;
            }
        }
    }

    else {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount.div(5)) {
            return;
        }
        else if (contractBalance > 0 && contractBalance > swapTokensAtAmount.div(5) && contractBalance < swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount.div(5);
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }
    }
        swapTokensForEth(tokensToSwap);
    }

    
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrade","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":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"openTradingWithPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeYeyeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]

60a06040526b166edcb277b6250447d400006009556a72db743052177941d40000600a556a72db743052177941d40000600b556a396dba1138b062cd380000600c555f600d5f6101000a81548160ff0219169083151502179055506014600e556019600f5534801561006f575f80fd5b50604051614b00380380614b00833981810160405281019061009191906109df565b6040518060400160405280600b81526020017f59656c6c6f7720506570650000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5945594500000000000000000000000000000000000000000000000000000000815250816003908161010c9190610c44565b50806004908161011c9190610c44565b50505061013b61013061055060201b60201c565b61055760201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f291906109df565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027d91906109df565b6040518363ffffffff1660e01b815260040161029a929190610d22565b6020604051808303815f875af11580156102b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102da91906109df565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061034b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161061a60201b60201c565b61037d60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016106b860201b60201c565b61039060805160016106b860201b60201c565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103de61055060201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061043b61042e61071060201b60201c565b600161073860201b60201c565b61044c30600161073860201b60201c565b61045d81600161073860201b60201c565b61047061dead600161073860201b60201c565b61048e61048161071060201b60201c565b60016106b860201b60201c565b61049f3060016106b860201b60201c565b6104b08160016106b860201b60201c565b6104c361dead60016106b860201b60201c565b5f6104ed60646104df60586009546107de60201b90919060201c565b6107f360201b90919060201c565b90505f6105058260095461080860201b90919060201c565b905061053860075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361081d60201b60201c565b610548308261081d60201b60201c565b505050610f4d565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516107d29190610d63565b60405180910390a25050565b5f81836107eb9190610da9565b905092915050565b5f81836108009190610e17565b905092915050565b5f81836108159190610e47565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088290610ed4565b60405180910390fd5b61089c5f838361097760201b60201c565b8060025f8282546108ad9190610ef2565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161095a9190610f34565b60405180910390a36109735f838361097c60201b60201c565b5050565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109ae82610985565b9050919050565b6109be816109a4565b81146109c8575f80fd5b50565b5f815190506109d9816109b5565b92915050565b5f602082840312156109f4576109f3610981565b5b5f610a01848285016109cb565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a8557607f821691505b602082108103610a9857610a97610a41565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610afa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610abf565b610b048683610abf565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610b48610b43610b3e84610b1c565b610b25565b610b1c565b9050919050565b5f819050919050565b610b6183610b2e565b610b75610b6d82610b4f565b848454610acb565b825550505050565b5f90565b610b89610b7d565b610b94818484610b58565b505050565b5b81811015610bb757610bac5f82610b81565b600181019050610b9a565b5050565b601f821115610bfc57610bcd81610a9e565b610bd684610ab0565b81016020851015610be5578190505b610bf9610bf185610ab0565b830182610b99565b50505b505050565b5f82821c905092915050565b5f610c1c5f1984600802610c01565b1980831691505092915050565b5f610c348383610c0d565b9150826002028217905092915050565b610c4d82610a0a565b67ffffffffffffffff811115610c6657610c65610a14565b5b610c708254610a6e565b610c7b828285610bbb565b5f60209050601f831160018114610cac575f8415610c9a578287015190505b610ca48582610c29565b865550610d0b565b601f198416610cba86610a9e565b5f5b82811015610ce157848901518255600182019150602085019450602081019050610cbc565b86831015610cfe5784890151610cfa601f891682610c0d565b8355505b6001600288020188555050505b505050505050565b610d1c816109a4565b82525050565b5f604082019050610d355f830185610d13565b610d426020830184610d13565b9392505050565b5f8115159050919050565b610d5d81610d49565b82525050565b5f602082019050610d765f830184610d54565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610db382610b1c565b9150610dbe83610b1c565b9250828202610dcc81610b1c565b91508282048414831517610de357610de2610d7c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610e2182610b1c565b9150610e2c83610b1c565b925082610e3c57610e3b610dea565b5b828204905092915050565b5f610e5182610b1c565b9150610e5c83610b1c565b9250828203905081811115610e7457610e73610d7c565b5b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610ebe601f83610e7a565b9150610ec982610e8a565b602082019050919050565b5f6020820190508181035f830152610eeb81610eb2565b9050919050565b5f610efc82610b1c565b9150610f0783610b1c565b9250828201905080821115610f1f57610f1e610d7c565b5b92915050565b610f2e81610b1c565b82525050565b5f602082019050610f475f830184610f25565b92915050565b608051613b86610f7a5f395f8181610b46015281816121be0152818161229d01526122c40152613b865ff3fe6080604052600436106101e5575f3560e01c806389291a8f11610101578063c8c8ebe411610094578063dd85465211610063578063dd854652146106bc578063e2f45605146106e6578063f2fde38b14610710578063f8b45b0514610738576101ec565b8063c8c8ebe414610616578063c9567bf914610640578063cf9522fd14610656578063dd62ed3e14610680576101ec565b8063a457c2d7116100d0578063a457c2d71461054e578063a9059cbb1461058a578063afa4f3b2146105c6578063b70143c9146105ee576101ec565b806389291a8f146104bc5780638da5cb5b146104d257806395d89b41146104fc5780639a7a23d614610526576101ec565b8063346cc7be11610179578063583e056811610148578063583e0568146104185780636323d7cb1461044257806370a082311461046a578063715018a6146104a6576101ec565b8063346cc7be1461035057806339509351146103785780634fbee193146103b457806352f7c988146103f0576101ec565b806323b872dd116101b557806323b872dd146102aa5780632e8d4c28146102e6578063311028af146102fc578063313ce56714610326576101ec565b806299d386146101f057806306fdde031461021a578063095ea7b31461024457806318160ddd14610280576101ec565b366101ec57005b5f80fd5b3480156101fb575f80fd5b50610204610762565b60405161021191906127b9565b60405180910390f35b348015610225575f80fd5b5061022e610774565b60405161023b9190612842565b60405180910390f35b34801561024f575f80fd5b5061026a600480360381019061026591906128f3565b610804565b60405161027791906127b9565b60405180910390f35b34801561028b575f80fd5b50610294610826565b6040516102a19190612940565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb9190612959565b61082f565b6040516102dd91906127b9565b60405180910390f35b3480156102f1575f80fd5b506102fa61085d565b005b348015610307575f80fd5b50610310610881565b60405161031d9190612940565b60405180910390f35b348015610331575f80fd5b5061033a610887565b60405161034791906129c4565b60405180910390f35b34801561035b575f80fd5b50610376600480360381019061037191906129dd565b61088f565b005b348015610383575f80fd5b5061039e600480360381019061039991906128f3565b610a51565b6040516103ab91906127b9565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d591906129dd565b610a87565b6040516103e791906127b9565b60405180910390f35b3480156103fb575f80fd5b5061041660048036038101906104119190612a08565b610ad9565b005b348015610423575f80fd5b5061042c610b44565b6040516104399190612aa1565b60405180910390f35b34801561044d575f80fd5b5061046860048036038101906104639190612b17565b610b68565b005b348015610475575f80fd5b50610490600480360381019061048b91906129dd565b610dcf565b60405161049d9190612940565b60405180910390f35b3480156104b1575f80fd5b506104ba610e14565b005b3480156104c7575f80fd5b506104d0610e27565b005b3480156104dd575f80fd5b506104e6610f0e565b6040516104f39190612b76565b60405180910390f35b348015610507575f80fd5b50610510610f36565b60405161051d9190612842565b60405180910390f35b348015610531575f80fd5b5061054c60048036038101906105479190612bb9565b610fc6565b005b348015610559575f80fd5b50610574600480360381019061056f91906128f3565b61106b565b60405161058191906127b9565b60405180910390f35b348015610595575f80fd5b506105b060048036038101906105ab91906128f3565b6110e0565b6040516105bd91906127b9565b60405180910390f35b3480156105d1575f80fd5b506105ec60048036038101906105e79190612bf7565b611102565b005b3480156105f9575f80fd5b50610614600480360381019061060f9190612bf7565b611127565b005b348015610621575f80fd5b5061062a611227565b6040516106379190612940565b60405180910390f35b34801561064b575f80fd5b5061065461122d565b005b348015610661575f80fd5b5061066a611251565b6040516106779190612940565b60405180910390f35b34801561068b575f80fd5b506106a660048036038101906106a19190612c22565b611257565b6040516106b39190612940565b60405180910390f35b3480156106c7575f80fd5b506106d06112d9565b6040516106dd9190612940565b60405180910390f35b3480156106f1575f80fd5b506106fa6112df565b6040516107079190612940565b60405180910390f35b34801561071b575f80fd5b50610736600480360381019061073191906129dd565b6112e5565b005b348015610743575f80fd5b5061074c611367565b6040516107599190612940565b60405180910390f35b600d5f9054906101000a900460ff1681565b60606003805461078390612c8d565b80601f01602080910402602001604051908101604052809291908181526020018280546107af90612c8d565b80156107fa5780601f106107d1576101008083540402835291602001916107fa565b820191905f5260205f20905b8154815290600101906020018083116107dd57829003601f168201915b5050505050905090565b5f8061080e61136d565b905061081b818585611374565b600191505092915050565b5f600254905090565b5f8061083961136d565b9050610846858285611537565b6108518585856115c2565b60019150509392505050565b610865611f42565b5f61086e610826565b905080600a8190555080600b8190555050565b60095481565b5f6012905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108cf61136d565b73ffffffffffffffffffffffffffffffffffffffff16146108ee575f80fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161092c9190612b76565b602060405180830381865afa158015610947573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096b9190612cd1565b90505f81116109af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a690612d46565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610a0b929190612d64565b6020604051808303815f875af1158015610a27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4b9190612d9f565b50505050565b5f80610a5b61136d565b9050610a7c818585610a6d8589611257565b610a779190612df7565b611374565b600191505092915050565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610ae1611f42565b60288211158015610af3575060328111155b610b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2990612e74565b60405180910390fd5b81600e8190555080600f819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001610c1a959493929190612ea1565b6040516020818303038152906040528051906020012090505f7f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001205f604051602001610ca493929190612ef2565b6040516020818303038152906040528051906020012090505f8282604051602001610cd0929190612f9b565b6040516020818303038152906040528051906020012090505f6001828888886040515f8152602001604052604051610d0b9493929190612fd1565b6020604051602081039080840390855afa158015610d2b573d5f803e3d5ffd5b505050602060405103519050610d3f610f0e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da39061305e565b60405180910390fd5b6001600d5f6101000a81548160ff02191690831515021790555050505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e1c611f42565b610e255f611fc0565b565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e6761136d565b73ffffffffffffffffffffffffffffffffffffffff1614610e86575f80fd5b5f4711610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf906130c6565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610f0b573d5f803e3d5ffd5b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f4590612c8d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7190612c8d565b8015610fbc5780601f10610f9357610100808354040283529160200191610fbc565b820191905f5260205f20905b815481529060010190602001808311610f9f57829003601f168201915b5050505050905090565b610fce611f42565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361105d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105490613154565b60405180910390fd5b6110678282612083565b5050565b5f8061107561136d565b90505f6110828286611257565b9050838110156110c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110be906131e2565b60405180910390fd5b6110d48286868403611374565b60019250505092915050565b5f806110ea61136d565b90506110f78185856115c2565b600191505092915050565b61110a611f42565b670de0b6b3a76400008161111e9190613200565b600c8190555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661116761136d565b73ffffffffffffffffffffffffffffffffffffffff1614611186575f80fd5b5f61118f610826565b90505f61119b30610dcf565b90505f606484036111ae578190506111d5565b606484846111bc9190613200565b6111c6919061326e565b9050818111156111d4578190505b5b81811115611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f9061330e565b60405180910390fd5b61122181612121565b50505050565b600a5481565b611235611f42565b6001600d5f6101000a81548160ff021916908315150217905550565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b600c5481565b6112ed611f42565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361135b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113529061339c565b60405180910390fd5b61136481611fc0565b50565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d99061342a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611450576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611447906134b8565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161152a9190612940565b60405180910390a3505050565b5f6115428484611257565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115bc57818110156115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a590613520565b60405180910390fd5b6115bb8484848403611374565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611630576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611627906135ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116959061363c565b60405180910390fd5b5f81036116b5576116b083835f612375565b611f3d565b5f60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611754575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905061175e610f0e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117cc575061179c610f0e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180457505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561183e575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118575750600860149054906101000a900460ff16155b15611c2457600d5f9054906101000a900460ff1661194a5760105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061190a575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611940906136a4565b60405180910390fd5b5b60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156119e7575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a8e57600a54821115611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2890613732565b60405180910390fd5b600b54611a3d84610dcf565b83611a489190612df7565b1115611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a809061379a565b60405180910390fd5b611c23565b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611b2b575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b7a57600a54821115611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c90613828565b60405180910390fd5b611c22565b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611c2157600b54611bd484610dcf565b83611bdf9190612df7565b1115611c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c179061379a565b60405180910390fd5b5b5b5b5b5f611c2e30610dcf565b90505f8082118015611c3e575082155b9050808015611c5a5750600860149054906101000a900460ff16155b8015611cad575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d00575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d53575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d97576001600860146101000a81548160ff021916908315150217905550611d7c846125e1565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff16158015611db3575083155b905060105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e50575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611e59575f90505b5f8115611f2c5760125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611ede57611ed76064611ec9600f548961276b90919063ffffffff16565b61278090919063ffffffff16565b9050611f09565b611f066064611ef8600e548961276b90919063ffffffff16565b61278090919063ffffffff16565b90505b5f811115611f1d57611f1c883083612375565b5b8086611f299190613846565b95505b611f37888888612375565b50505050505b505050565b611f4a61136d565b73ffffffffffffffffffffffffffffffffffffffff16611f68610f0e565b73ffffffffffffffffffffffffffffffffffffffff1614611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb5906138c3565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561213d5761213c6138e1565b5b60405190808252806020026020018201604052801561216b5781602001602082028036833780820191505090505b50905030815f815181106121825761218161390e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612225573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612249919061394f565b8160018151811061225d5761225c61390e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122c2307f000000000000000000000000000000000000000000000000000000000000000084611374565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612344959493929190613a6a565b5f604051808303815f87803b15801561235b575f80fd5b505af115801561236d573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da906135ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612451576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124489061363c565b60405180910390fd5b61245c838383612795565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156124df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d690613b32565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125c89190612940565b60405180910390a36125db84848461279a565b50505050565b5f6125eb30610dcf565b90505f8082036125fc575050612768565b5f600f54600e5461260d9190612df7565b03612687575f821180156126225750600c5482105b1561262f57819050612682565b5f612658606461264a600f548761276b90919063ffffffff16565b61278090919063ffffffff16565b905080846126669190613846565b9350600c5484111561267c57600c549150612680565b8391505b505b61275c565b5f821180156126aa57506126a76005600c5461278090919063ffffffff16565b82105b156126b6575050612768565b5f821180156126d957506126d66005600c5461278090919063ffffffff16565b82115b80156126e65750600c5482105b15612708576127016005600c5461278090919063ffffffff16565b905061275b565b5f6127316064612723600f548761276b90919063ffffffff16565b61278090919063ffffffff16565b9050808461273f9190613846565b9350600c5484111561275557600c549150612759565b8391505b505b5b61276581612121565b50505b50565b5f81836127789190613200565b905092915050565b5f818361278d919061326e565b905092915050565b505050565b505050565b5f8115159050919050565b6127b38161279f565b82525050565b5f6020820190506127cc5f8301846127aa565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612814826127d2565b61281e81856127dc565b935061282e8185602086016127ec565b612837816127fa565b840191505092915050565b5f6020820190508181035f83015261285a818461280a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61288f82612866565b9050919050565b61289f81612885565b81146128a9575f80fd5b50565b5f813590506128ba81612896565b92915050565b5f819050919050565b6128d2816128c0565b81146128dc575f80fd5b50565b5f813590506128ed816128c9565b92915050565b5f806040838503121561290957612908612862565b5b5f612916858286016128ac565b9250506020612927858286016128df565b9150509250929050565b61293a816128c0565b82525050565b5f6020820190506129535f830184612931565b92915050565b5f805f606084860312156129705761296f612862565b5b5f61297d868287016128ac565b935050602061298e868287016128ac565b925050604061299f868287016128df565b9150509250925092565b5f60ff82169050919050565b6129be816129a9565b82525050565b5f6020820190506129d75f8301846129b5565b92915050565b5f602082840312156129f2576129f1612862565b5b5f6129ff848285016128ac565b91505092915050565b5f8060408385031215612a1e57612a1d612862565b5b5f612a2b858286016128df565b9250506020612a3c858286016128df565b9150509250929050565b5f819050919050565b5f612a69612a64612a5f84612866565b612a46565b612866565b9050919050565b5f612a7a82612a4f565b9050919050565b5f612a8b82612a70565b9050919050565b612a9b81612a81565b82525050565b5f602082019050612ab45f830184612a92565b92915050565b612ac3816129a9565b8114612acd575f80fd5b50565b5f81359050612ade81612aba565b92915050565b5f819050919050565b612af681612ae4565b8114612b00575f80fd5b50565b5f81359050612b1181612aed565b92915050565b5f805f60608486031215612b2e57612b2d612862565b5b5f612b3b86828701612ad0565b9350506020612b4c86828701612b03565b9250506040612b5d86828701612b03565b9150509250925092565b612b7081612885565b82525050565b5f602082019050612b895f830184612b67565b92915050565b612b988161279f565b8114612ba2575f80fd5b50565b5f81359050612bb381612b8f565b92915050565b5f8060408385031215612bcf57612bce612862565b5b5f612bdc858286016128ac565b9250506020612bed85828601612ba5565b9150509250929050565b5f60208284031215612c0c57612c0b612862565b5b5f612c19848285016128df565b91505092915050565b5f8060408385031215612c3857612c37612862565b5b5f612c45858286016128ac565b9250506020612c56858286016128ac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612ca457607f821691505b602082108103612cb757612cb6612c60565b5b50919050565b5f81519050612ccb816128c9565b92915050565b5f60208284031215612ce657612ce5612862565b5b5f612cf384828501612cbd565b91505092915050565b7f4e6f20746f6b656e7320746f20636c65617200000000000000000000000000005f82015250565b5f612d306012836127dc565b9150612d3b82612cfc565b602082019050919050565b5f6020820190508181035f830152612d5d81612d24565b9050919050565b5f604082019050612d775f830185612b67565b612d846020830184612931565b9392505050565b5f81519050612d9981612b8f565b92915050565b5f60208284031215612db457612db3612862565b5b5f612dc184828501612d8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612e01826128c0565b9150612e0c836128c0565b9250828201905080821115612e2457612e23612dca565b5b92915050565b7f466565732063616e6e6f742065786365656420393925000000000000000000005f82015250565b5f612e5e6016836127dc565b9150612e6982612e2a565b602082019050919050565b5f6020820190508181035f830152612e8b81612e52565b9050919050565b612e9b81612ae4565b82525050565b5f60a082019050612eb45f830188612e92565b612ec16020830187612e92565b612ece6040830186612e92565b612edb6060830185612931565b612ee86080830184612b67565b9695505050505050565b5f606082019050612f055f830186612e92565b612f126020830185612e92565b612f1f6040830184612931565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f612f65600283612f27565b9150612f7082612f31565b600282019050919050565b5f819050919050565b612f95612f9082612ae4565b612f7b565b82525050565b5f612fa582612f59565b9150612fb18285612f84565b602082019150612fc18284612f84565b6020820191508190509392505050565b5f608082019050612fe45f830187612e92565b612ff160208301866129b5565b612ffe6040830185612e92565b61300b6060830184612e92565b95945050505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f6130486011836127dc565b915061305382613014565b602082019050919050565b5f6020820190508181035f8301526130758161303c565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f6130b06016836127dc565b91506130bb8261307c565b602082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61313e6039836127dc565b9150613149826130e4565b604082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6131cc6025836127dc565b91506131d782613172565b604082019050919050565b5f6020820190508181035f8301526131f9816131c0565b9050919050565b5f61320a826128c0565b9150613215836128c0565b9250828202613223816128c0565b9150828204841483151761323a57613239612dca565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613278826128c0565b9150613283836128c0565b92508261329357613292613241565b5b828204905092915050565b7f5377617020616d6f756e74206578636565647320636f6e74726163742062616c5f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f6132f86024836127dc565b91506133038261329e565b604082019050919050565b5f6020820190508181035f830152613325816132ec565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6133866026836127dc565b91506133918261332c565b604082019050919050565b5f6020820190508181035f8301526133b38161337a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134146024836127dc565b915061341f826133ba565b604082019050919050565b5f6020820190508181035f83015261344181613408565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134a26022836127dc565b91506134ad82613448565b604082019050919050565b5f6020820190508181035f8301526134cf81613496565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61350a601d836127dc565b9150613515826134d6565b602082019050919050565b5f6020820190508181035f830152613537816134fe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135986025836127dc565b91506135a38261353e565b604082019050919050565b5f6020820190508181035f8301526135c58161358c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6136266023836127dc565b9150613631826135cc565b604082019050919050565b5f6020820190508181035f8301526136538161361a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61368e6016836127dc565b91506136998261365a565b602082019050919050565b5f6020820190508181035f8301526136bb81613682565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61371c6035836127dc565b9150613727826136c2565b604082019050919050565b5f6020820190508181035f83015261374981613710565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6137846013836127dc565b915061378f82613750565b602082019050919050565b5f6020820190508181035f8301526137b181613778565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6138126036836127dc565b915061381d826137b8565b604082019050919050565b5f6020820190508181035f83015261383f81613806565b9050919050565b5f613850826128c0565b915061385b836128c0565b925082820390508181111561387357613872612dca565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6138ad6020836127dc565b91506138b882613879565b602082019050919050565b5f6020820190508181035f8301526138da816138a1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061394981612896565b92915050565b5f6020828403121561396457613963612862565b5b5f6139718482850161393b565b91505092915050565b5f819050919050565b5f61399d6139986139938461397a565b612a46565b6128c0565b9050919050565b6139ad81613983565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6139e581612885565b82525050565b5f6139f683836139dc565b60208301905092915050565b5f602082019050919050565b5f613a18826139b3565b613a2281856139bd565b9350613a2d836139cd565b805f5b83811015613a5d578151613a4488826139eb565b9750613a4f83613a02565b925050600181019050613a30565b5085935050505092915050565b5f60a082019050613a7d5f830188612931565b613a8a60208301876139a4565b8181036040830152613a9c8186613a0e565b9050613aab6060830185612b67565b613ab86080830184612931565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613b1c6026836127dc565b9150613b2782613ac2565b604082019050919050565b5f6020820190508181035f830152613b4981613b10565b905091905056fea26469706673582212208fbb9d6869b94d4aebeffc2ee4e1290a33b48035c50167323ea03b20b3d4796664736f6c634300081900330000000000000000000000004553455a7c67c1267c25560fa1262bcdb60d98a8

Deployed Bytecode

0x6080604052600436106101e5575f3560e01c806389291a8f11610101578063c8c8ebe411610094578063dd85465211610063578063dd854652146106bc578063e2f45605146106e6578063f2fde38b14610710578063f8b45b0514610738576101ec565b8063c8c8ebe414610616578063c9567bf914610640578063cf9522fd14610656578063dd62ed3e14610680576101ec565b8063a457c2d7116100d0578063a457c2d71461054e578063a9059cbb1461058a578063afa4f3b2146105c6578063b70143c9146105ee576101ec565b806389291a8f146104bc5780638da5cb5b146104d257806395d89b41146104fc5780639a7a23d614610526576101ec565b8063346cc7be11610179578063583e056811610148578063583e0568146104185780636323d7cb1461044257806370a082311461046a578063715018a6146104a6576101ec565b8063346cc7be1461035057806339509351146103785780634fbee193146103b457806352f7c988146103f0576101ec565b806323b872dd116101b557806323b872dd146102aa5780632e8d4c28146102e6578063311028af146102fc578063313ce56714610326576101ec565b806299d386146101f057806306fdde031461021a578063095ea7b31461024457806318160ddd14610280576101ec565b366101ec57005b5f80fd5b3480156101fb575f80fd5b50610204610762565b60405161021191906127b9565b60405180910390f35b348015610225575f80fd5b5061022e610774565b60405161023b9190612842565b60405180910390f35b34801561024f575f80fd5b5061026a600480360381019061026591906128f3565b610804565b60405161027791906127b9565b60405180910390f35b34801561028b575f80fd5b50610294610826565b6040516102a19190612940565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb9190612959565b61082f565b6040516102dd91906127b9565b60405180910390f35b3480156102f1575f80fd5b506102fa61085d565b005b348015610307575f80fd5b50610310610881565b60405161031d9190612940565b60405180910390f35b348015610331575f80fd5b5061033a610887565b60405161034791906129c4565b60405180910390f35b34801561035b575f80fd5b50610376600480360381019061037191906129dd565b61088f565b005b348015610383575f80fd5b5061039e600480360381019061039991906128f3565b610a51565b6040516103ab91906127b9565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d591906129dd565b610a87565b6040516103e791906127b9565b60405180910390f35b3480156103fb575f80fd5b5061041660048036038101906104119190612a08565b610ad9565b005b348015610423575f80fd5b5061042c610b44565b6040516104399190612aa1565b60405180910390f35b34801561044d575f80fd5b5061046860048036038101906104639190612b17565b610b68565b005b348015610475575f80fd5b50610490600480360381019061048b91906129dd565b610dcf565b60405161049d9190612940565b60405180910390f35b3480156104b1575f80fd5b506104ba610e14565b005b3480156104c7575f80fd5b506104d0610e27565b005b3480156104dd575f80fd5b506104e6610f0e565b6040516104f39190612b76565b60405180910390f35b348015610507575f80fd5b50610510610f36565b60405161051d9190612842565b60405180910390f35b348015610531575f80fd5b5061054c60048036038101906105479190612bb9565b610fc6565b005b348015610559575f80fd5b50610574600480360381019061056f91906128f3565b61106b565b60405161058191906127b9565b60405180910390f35b348015610595575f80fd5b506105b060048036038101906105ab91906128f3565b6110e0565b6040516105bd91906127b9565b60405180910390f35b3480156105d1575f80fd5b506105ec60048036038101906105e79190612bf7565b611102565b005b3480156105f9575f80fd5b50610614600480360381019061060f9190612bf7565b611127565b005b348015610621575f80fd5b5061062a611227565b6040516106379190612940565b60405180910390f35b34801561064b575f80fd5b5061065461122d565b005b348015610661575f80fd5b5061066a611251565b6040516106779190612940565b60405180910390f35b34801561068b575f80fd5b506106a660048036038101906106a19190612c22565b611257565b6040516106b39190612940565b60405180910390f35b3480156106c7575f80fd5b506106d06112d9565b6040516106dd9190612940565b60405180910390f35b3480156106f1575f80fd5b506106fa6112df565b6040516107079190612940565b60405180910390f35b34801561071b575f80fd5b50610736600480360381019061073191906129dd565b6112e5565b005b348015610743575f80fd5b5061074c611367565b6040516107599190612940565b60405180910390f35b600d5f9054906101000a900460ff1681565b60606003805461078390612c8d565b80601f01602080910402602001604051908101604052809291908181526020018280546107af90612c8d565b80156107fa5780601f106107d1576101008083540402835291602001916107fa565b820191905f5260205f20905b8154815290600101906020018083116107dd57829003601f168201915b5050505050905090565b5f8061080e61136d565b905061081b818585611374565b600191505092915050565b5f600254905090565b5f8061083961136d565b9050610846858285611537565b6108518585856115c2565b60019150509392505050565b610865611f42565b5f61086e610826565b905080600a8190555080600b8190555050565b60095481565b5f6012905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108cf61136d565b73ffffffffffffffffffffffffffffffffffffffff16146108ee575f80fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161092c9190612b76565b602060405180830381865afa158015610947573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096b9190612cd1565b90505f81116109af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a690612d46565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610a0b929190612d64565b6020604051808303815f875af1158015610a27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4b9190612d9f565b50505050565b5f80610a5b61136d565b9050610a7c818585610a6d8589611257565b610a779190612df7565b611374565b600191505092915050565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610ae1611f42565b60288211158015610af3575060328111155b610b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2990612e74565b60405180910390fd5b81600e8190555080600f819055505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001610c1a959493929190612ea1565b6040516020818303038152906040528051906020012090505f7f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001205f604051602001610ca493929190612ef2565b6040516020818303038152906040528051906020012090505f8282604051602001610cd0929190612f9b565b6040516020818303038152906040528051906020012090505f6001828888886040515f8152602001604052604051610d0b9493929190612fd1565b6020604051602081039080840390855afa158015610d2b573d5f803e3d5ffd5b505050602060405103519050610d3f610f0e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da39061305e565b60405180910390fd5b6001600d5f6101000a81548160ff02191690831515021790555050505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e1c611f42565b610e255f611fc0565b565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e6761136d565b73ffffffffffffffffffffffffffffffffffffffff1614610e86575f80fd5b5f4711610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf906130c6565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610f0b573d5f803e3d5ffd5b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f4590612c8d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7190612c8d565b8015610fbc5780601f10610f9357610100808354040283529160200191610fbc565b820191905f5260205f20905b815481529060010190602001808311610f9f57829003601f168201915b5050505050905090565b610fce611f42565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361105d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105490613154565b60405180910390fd5b6110678282612083565b5050565b5f8061107561136d565b90505f6110828286611257565b9050838110156110c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110be906131e2565b60405180910390fd5b6110d48286868403611374565b60019250505092915050565b5f806110ea61136d565b90506110f78185856115c2565b600191505092915050565b61110a611f42565b670de0b6b3a76400008161111e9190613200565b600c8190555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661116761136d565b73ffffffffffffffffffffffffffffffffffffffff1614611186575f80fd5b5f61118f610826565b90505f61119b30610dcf565b90505f606484036111ae578190506111d5565b606484846111bc9190613200565b6111c6919061326e565b9050818111156111d4578190505b5b81811115611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f9061330e565b60405180910390fd5b61122181612121565b50505050565b600a5481565b611235611f42565b6001600d5f6101000a81548160ff021916908315150217905550565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b600c5481565b6112ed611f42565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361135b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113529061339c565b60405180910390fd5b61136481611fc0565b50565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d99061342a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611450576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611447906134b8565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161152a9190612940565b60405180910390a3505050565b5f6115428484611257565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115bc57818110156115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a590613520565b60405180910390fd5b6115bb8484848403611374565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611630576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611627906135ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116959061363c565b60405180910390fd5b5f81036116b5576116b083835f612375565b611f3d565b5f60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611754575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905061175e610f0e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117cc575061179c610f0e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180457505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561183e575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118575750600860149054906101000a900460ff16155b15611c2457600d5f9054906101000a900460ff1661194a5760105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061190a575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611940906136a4565b60405180910390fd5b5b60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156119e7575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a8e57600a54821115611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2890613732565b60405180910390fd5b600b54611a3d84610dcf565b83611a489190612df7565b1115611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a809061379a565b60405180910390fd5b611c23565b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611b2b575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b7a57600a54821115611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c90613828565b60405180910390fd5b611c22565b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611c2157600b54611bd484610dcf565b83611bdf9190612df7565b1115611c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c179061379a565b60405180910390fd5b5b5b5b5b5f611c2e30610dcf565b90505f8082118015611c3e575082155b9050808015611c5a5750600860149054906101000a900460ff16155b8015611cad575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d00575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d53575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d97576001600860146101000a81548160ff021916908315150217905550611d7c846125e1565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff16158015611db3575083155b905060105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e50575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611e59575f90505b5f8115611f2c5760125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611ede57611ed76064611ec9600f548961276b90919063ffffffff16565b61278090919063ffffffff16565b9050611f09565b611f066064611ef8600e548961276b90919063ffffffff16565b61278090919063ffffffff16565b90505b5f811115611f1d57611f1c883083612375565b5b8086611f299190613846565b95505b611f37888888612375565b50505050505b505050565b611f4a61136d565b73ffffffffffffffffffffffffffffffffffffffff16611f68610f0e565b73ffffffffffffffffffffffffffffffffffffffff1614611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb5906138c3565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561213d5761213c6138e1565b5b60405190808252806020026020018201604052801561216b5781602001602082028036833780820191505090505b50905030815f815181106121825761218161390e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612225573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612249919061394f565b8160018151811061225d5761225c61390e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122c2307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611374565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612344959493929190613a6a565b5f604051808303815f87803b15801561235b575f80fd5b505af115801561236d573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da906135ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612451576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124489061363c565b60405180910390fd5b61245c838383612795565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156124df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d690613b32565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125c89190612940565b60405180910390a36125db84848461279a565b50505050565b5f6125eb30610dcf565b90505f8082036125fc575050612768565b5f600f54600e5461260d9190612df7565b03612687575f821180156126225750600c5482105b1561262f57819050612682565b5f612658606461264a600f548761276b90919063ffffffff16565b61278090919063ffffffff16565b905080846126669190613846565b9350600c5484111561267c57600c549150612680565b8391505b505b61275c565b5f821180156126aa57506126a76005600c5461278090919063ffffffff16565b82105b156126b6575050612768565b5f821180156126d957506126d66005600c5461278090919063ffffffff16565b82115b80156126e65750600c5482105b15612708576127016005600c5461278090919063ffffffff16565b905061275b565b5f6127316064612723600f548761276b90919063ffffffff16565b61278090919063ffffffff16565b9050808461273f9190613846565b9350600c5484111561275557600c549150612759565b8391505b505b5b61276581612121565b50505b50565b5f81836127789190613200565b905092915050565b5f818361278d919061326e565b905092915050565b505050565b505050565b5f8115159050919050565b6127b38161279f565b82525050565b5f6020820190506127cc5f8301846127aa565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612814826127d2565b61281e81856127dc565b935061282e8185602086016127ec565b612837816127fa565b840191505092915050565b5f6020820190508181035f83015261285a818461280a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61288f82612866565b9050919050565b61289f81612885565b81146128a9575f80fd5b50565b5f813590506128ba81612896565b92915050565b5f819050919050565b6128d2816128c0565b81146128dc575f80fd5b50565b5f813590506128ed816128c9565b92915050565b5f806040838503121561290957612908612862565b5b5f612916858286016128ac565b9250506020612927858286016128df565b9150509250929050565b61293a816128c0565b82525050565b5f6020820190506129535f830184612931565b92915050565b5f805f606084860312156129705761296f612862565b5b5f61297d868287016128ac565b935050602061298e868287016128ac565b925050604061299f868287016128df565b9150509250925092565b5f60ff82169050919050565b6129be816129a9565b82525050565b5f6020820190506129d75f8301846129b5565b92915050565b5f602082840312156129f2576129f1612862565b5b5f6129ff848285016128ac565b91505092915050565b5f8060408385031215612a1e57612a1d612862565b5b5f612a2b858286016128df565b9250506020612a3c858286016128df565b9150509250929050565b5f819050919050565b5f612a69612a64612a5f84612866565b612a46565b612866565b9050919050565b5f612a7a82612a4f565b9050919050565b5f612a8b82612a70565b9050919050565b612a9b81612a81565b82525050565b5f602082019050612ab45f830184612a92565b92915050565b612ac3816129a9565b8114612acd575f80fd5b50565b5f81359050612ade81612aba565b92915050565b5f819050919050565b612af681612ae4565b8114612b00575f80fd5b50565b5f81359050612b1181612aed565b92915050565b5f805f60608486031215612b2e57612b2d612862565b5b5f612b3b86828701612ad0565b9350506020612b4c86828701612b03565b9250506040612b5d86828701612b03565b9150509250925092565b612b7081612885565b82525050565b5f602082019050612b895f830184612b67565b92915050565b612b988161279f565b8114612ba2575f80fd5b50565b5f81359050612bb381612b8f565b92915050565b5f8060408385031215612bcf57612bce612862565b5b5f612bdc858286016128ac565b9250506020612bed85828601612ba5565b9150509250929050565b5f60208284031215612c0c57612c0b612862565b5b5f612c19848285016128df565b91505092915050565b5f8060408385031215612c3857612c37612862565b5b5f612c45858286016128ac565b9250506020612c56858286016128ac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612ca457607f821691505b602082108103612cb757612cb6612c60565b5b50919050565b5f81519050612ccb816128c9565b92915050565b5f60208284031215612ce657612ce5612862565b5b5f612cf384828501612cbd565b91505092915050565b7f4e6f20746f6b656e7320746f20636c65617200000000000000000000000000005f82015250565b5f612d306012836127dc565b9150612d3b82612cfc565b602082019050919050565b5f6020820190508181035f830152612d5d81612d24565b9050919050565b5f604082019050612d775f830185612b67565b612d846020830184612931565b9392505050565b5f81519050612d9981612b8f565b92915050565b5f60208284031215612db457612db3612862565b5b5f612dc184828501612d8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612e01826128c0565b9150612e0c836128c0565b9250828201905080821115612e2457612e23612dca565b5b92915050565b7f466565732063616e6e6f742065786365656420393925000000000000000000005f82015250565b5f612e5e6016836127dc565b9150612e6982612e2a565b602082019050919050565b5f6020820190508181035f830152612e8b81612e52565b9050919050565b612e9b81612ae4565b82525050565b5f60a082019050612eb45f830188612e92565b612ec16020830187612e92565b612ece6040830186612e92565b612edb6060830185612931565b612ee86080830184612b67565b9695505050505050565b5f606082019050612f055f830186612e92565b612f126020830185612e92565b612f1f6040830184612931565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f612f65600283612f27565b9150612f7082612f31565b600282019050919050565b5f819050919050565b612f95612f9082612ae4565b612f7b565b82525050565b5f612fa582612f59565b9150612fb18285612f84565b602082019150612fc18284612f84565b6020820191508190509392505050565b5f608082019050612fe45f830187612e92565b612ff160208301866129b5565b612ffe6040830185612e92565b61300b6060830184612e92565b95945050505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f6130486011836127dc565b915061305382613014565b602082019050919050565b5f6020820190508181035f8301526130758161303c565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f6130b06016836127dc565b91506130bb8261307c565b602082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61313e6039836127dc565b9150613149826130e4565b604082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6131cc6025836127dc565b91506131d782613172565b604082019050919050565b5f6020820190508181035f8301526131f9816131c0565b9050919050565b5f61320a826128c0565b9150613215836128c0565b9250828202613223816128c0565b9150828204841483151761323a57613239612dca565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613278826128c0565b9150613283836128c0565b92508261329357613292613241565b5b828204905092915050565b7f5377617020616d6f756e74206578636565647320636f6e74726163742062616c5f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f6132f86024836127dc565b91506133038261329e565b604082019050919050565b5f6020820190508181035f830152613325816132ec565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6133866026836127dc565b91506133918261332c565b604082019050919050565b5f6020820190508181035f8301526133b38161337a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134146024836127dc565b915061341f826133ba565b604082019050919050565b5f6020820190508181035f83015261344181613408565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134a26022836127dc565b91506134ad82613448565b604082019050919050565b5f6020820190508181035f8301526134cf81613496565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61350a601d836127dc565b9150613515826134d6565b602082019050919050565b5f6020820190508181035f830152613537816134fe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135986025836127dc565b91506135a38261353e565b604082019050919050565b5f6020820190508181035f8301526135c58161358c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6136266023836127dc565b9150613631826135cc565b604082019050919050565b5f6020820190508181035f8301526136538161361a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61368e6016836127dc565b91506136998261365a565b602082019050919050565b5f6020820190508181035f8301526136bb81613682565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61371c6035836127dc565b9150613727826136c2565b604082019050919050565b5f6020820190508181035f83015261374981613710565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6137846013836127dc565b915061378f82613750565b602082019050919050565b5f6020820190508181035f8301526137b181613778565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6138126036836127dc565b915061381d826137b8565b604082019050919050565b5f6020820190508181035f83015261383f81613806565b9050919050565b5f613850826128c0565b915061385b836128c0565b925082820390508181111561387357613872612dca565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6138ad6020836127dc565b91506138b882613879565b602082019050919050565b5f6020820190508181035f8301526138da816138a1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061394981612896565b92915050565b5f6020828403121561396457613963612862565b5b5f6139718482850161393b565b91505092915050565b5f819050919050565b5f61399d6139986139938461397a565b612a46565b6128c0565b9050919050565b6139ad81613983565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6139e581612885565b82525050565b5f6139f683836139dc565b60208301905092915050565b5f602082019050919050565b5f613a18826139b3565b613a2281856139bd565b9350613a2d836139cd565b805f5b83811015613a5d578151613a4488826139eb565b9750613a4f83613a02565b925050600181019050613a30565b5085935050505092915050565b5f60a082019050613a7d5f830188612931565b613a8a60208301876139a4565b8181036040830152613a9c8186613a0e565b9050613aab6060830185612b67565b613ab86080830184612931565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613b1c6026836127dc565b9150613b2782613ac2565b604082019050919050565b5f6020820190508181035f830152613b4981613b10565b905091905056fea26469706673582212208fbb9d6869b94d4aebeffc2ee4e1290a33b48035c50167323ea03b20b3d4796664736f6c63430008190033

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

0000000000000000000000004553455a7c67c1267c25560fa1262bcdb60d98a8

-----Decoded View---------------
Arg [0] : wallet (address): 0x4553455A7c67C1267c25560FA1262bcDB60d98A8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004553455a7c67c1267c25560fa1262bcdb60d98a8


Deployed Bytecode Sourcemap

14793:10571:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15474:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9817:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10749:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10138:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10958:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22133:198;;;;;;;;;;;;;:::i;:::-;;15243:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10037:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22572:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11261:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19068:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22927:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14879:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17263:1029;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10254:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8893:103;;;;;;;;;;;;;:::i;:::-;;22339:225;;;;;;;;;;;;;:::i;:::-;;8658:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9925:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18624:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11507:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10389:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23146:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23281:667;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15303:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17176:79;;;;;;;;;;;;;:::i;:::-;;15547:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10590:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15514:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15414:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9004:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15364:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15474:31;;;;;;;;;;;;;:::o;9817:100::-;9871:13;9904:5;9897:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9817:100;:::o;10749:201::-;10832:4;10849:13;10865:12;:10;:12::i;:::-;10849:28;;10888:32;10897:5;10904:7;10913:6;10888:8;:32::i;:::-;10938:4;10931:11;;;10749:201;;;;:::o;10138:108::-;10199:7;10226:12;;10219:19;;10138:108;:::o;10958:295::-;11089:4;11106:15;11124:12;:10;:12::i;:::-;11106:30;;11147:38;11163:4;11169:7;11178:6;11147:15;:38::i;:::-;11196:27;11206:4;11212:2;11216:6;11196:9;:27::i;:::-;11241:4;11234:11;;;10958:295;;;;;:::o;22133:198::-;8617:13;:11;:13::i;:::-;22191:25:::1;22219:13;:11;:13::i;:::-;22191:41;;22266:17;22243:20;:40;;;;22306:17;22294:9;:29;;;;22180:151;22133:198::o:0;15243:53::-;;;;:::o;10037:93::-;10095:5;10120:2;10113:9;;10037:93;:::o;22572:347::-;22664:14;;;;;;;;;;;22648:30;;:12;:10;:12::i;:::-;:30;;;22640:39;;;;;;22690:20;22720:12;22690:43;;22744:15;22762:13;:23;;;22794:4;22762:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22744:56;;22829:1;22819:7;:11;22811:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;22864:13;:22;;;22887:14;;;;;;;;;;;22903:7;22864:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22629:290;;22572:347;:::o;11261:238::-;11349:4;11366:13;11382:12;:10;:12::i;:::-;11366:28;;11405:64;11414:5;11421:7;11458:10;11430:25;11440:5;11447:7;11430:9;:25::i;:::-;:38;;;;:::i;:::-;11405:8;:64::i;:::-;11487:4;11480:11;;;11261:238;;;;:::o;19068:126::-;19134:4;19158:19;:28;19178:7;19158:28;;;;;;;;;;;;;;;;;;;;;;;;;19151:35;;19068:126;;;:::o;22927:211::-;8617:13;:11;:13::i;:::-;23027:2:::1;23016:7;:13;;:31;;;;;23045:2;23033:8;:14;;23016:31;23008:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23094:7;23085:6;:16;;;;23122:8;23112:7;:18;;;;22927:211:::0;;:::o;14879:52::-;;;:::o;17263:1029::-;17345:18;17419:95;17543:22;;;;;;;;;;;;;;;;;17533:33;;;;;;17595:10;;;;;;;;;;;;;;;;;17585:21;;;;;;17625:13;17665:4;17390:295;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17366:330;;;;;;17345:351;;17709:18;17783:49;17861:23;;;;;;;;;;;;;;;;;17851:34;;;;;;17912:1;17754:175;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17730:210;;;;;;17709:231;;17953:14;18058:10;18087;17994:134;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17970:169;;;;;;17953:186;;18152:14;18169:26;18179:6;18187:1;18190;18193;18169:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18152:43;;18224:7;:5;:7::i;:::-;18214:17;;:6;:17;;;18206:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18280:4;18266:11;;:18;;;;;;;;;;;;;;;;;;17334:958;;;;17263:1029;;;:::o;10254:127::-;10328:7;10355:9;:18;10365:7;10355:18;;;;;;;;;;;;;;;;10348:25;;10254:127;;;:::o;8893:103::-;8617:13;:11;:13::i;:::-;8958:30:::1;8985:1;8958:18;:30::i;:::-;8893:103::o:0;22339:225::-;22408:14;;;;;;;;;;;22392:30;;:12;:10;:12::i;:::-;:30;;;22384:39;;;;;;22466:1;22442:21;:25;22434:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22513:10;22505:28;;:51;22534:21;22505:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22339:225::o;8658:87::-;8704:7;8731:6;;;;;;;;;;;8724:13;;8658:87;:::o;9925:104::-;9981:13;10014:7;10007:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9925:104;:::o;18624:242::-;8617:13;:11;:13::i;:::-;18731::::1;;;;;;;;;;;18723:21;;:4;:21;;::::0;18715:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18817:41;18846:4;18852:5;18817:28;:41::i;:::-;18624:242:::0;;:::o;11507:436::-;11600:4;11617:13;11633:12;:10;:12::i;:::-;11617:28;;11656:24;11683:25;11693:5;11700:7;11683:9;:25::i;:::-;11656:52;;11747:15;11727:16;:35;;11719:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11840:60;11849:5;11856:7;11884:15;11865:16;:34;11840:8;:60::i;:::-;11931:4;11924:11;;;;11507:436;;;;:::o;10389:193::-;10468:4;10485:13;10501:12;:10;:12::i;:::-;10485:28;;10524;10534:5;10541:2;10545:6;10524:9;:28::i;:::-;10570:4;10563:11;;;10389:193;;;;:::o;23146:127::-;8617:13;:11;:13::i;:::-;23256:8:::1;23245:7;:20;;;;:::i;:::-;23224:18;:41;;;;23146:127:::0;:::o;23281:667::-;23362:14;;;;;;;;;;;23346:30;;:12;:10;:12::i;:::-;:30;;;23338:39;;;;;;23388:25;23416:13;:11;:13::i;:::-;23388:41;;23440:23;23466:24;23484:4;23466:9;:24::i;:::-;23440:50;;23501:20;23549:3;23538:7;:14;23534:273;;23584:15;23569:30;;23534:273;;;23677:3;23667:7;23647:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;23632:48;;23714:15;23699:12;:30;23695:101;;;23765:15;23750:30;;23695:101;23534:273;23843:15;23827:12;:31;;23819:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;23910:30;23927:12;23910:16;:30::i;:::-;23327:621;;;23281:667;:::o;15303:54::-;;;;:::o;17176:79::-;8617:13;:11;:13::i;:::-;17243:4:::1;17229:11;;:18;;;;;;;;;;;;;;;;;;17176:79::o:0;15547:27::-;;;;:::o;10590:151::-;10679:7;10706:11;:18;10718:5;10706:18;;;;;;;;;;;;;;;:27;10725:7;10706:27;;;;;;;;;;;;;;;;10699:34;;10590:151;;;;:::o;15514:26::-;;;;:::o;15414:51::-;;;;:::o;9004:201::-;8617:13;:11;:13::i;:::-;9113:1:::1;9093:22;;:8;:22;;::::0;9085:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9169:28;9188:8;9169:18;:28::i;:::-;9004:201:::0;:::o;15364:43::-;;;;:::o;302:98::-;355:7;382:10;375:17;;302:98;:::o;13680:380::-;13833:1;13816:19;;:5;:19;;;13808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13914:1;13895:21;;:7;:21;;;13887:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13998:6;13968:11;:18;13980:5;13968:18;;;;;;;;;;;;;;;:27;13987:7;13968:27;;;;;;;;;;;;;;;:36;;;;14036:7;14020:32;;14029:5;14020:32;;;14045:6;14020:32;;;;;;:::i;:::-;;;;;;;;13680:380;;;:::o;14068:453::-;14203:24;14230:25;14240:5;14247:7;14230:9;:25::i;:::-;14203:52;;14290:17;14270:16;:37;14266:248;;14352:6;14332:16;:26;;14324:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14436:51;14445:5;14452:7;14480:6;14461:16;:25;14436:8;:51::i;:::-;14266:248;14192:329;14068:453;;;:::o;19202:2433::-;19318:1;19302:18;;:4;:18;;;19294:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19395:1;19381:16;;:2;:16;;;19373:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19464:1;19454:6;:11;19450:93;;19482:28;19498:4;19504:2;19508:1;19482:15;:28::i;:::-;19525:7;;19450:93;19563:15;19582:25;:31;19608:4;19582:31;;;;;;;;;;;;;;;;;;;;;;;;;19581:32;:66;;;;;19618:25;:29;19644:2;19618:29;;;;;;;;;;;;;;;;;;;;;;;;;19617:30;19581:66;19563:84;;19672:7;:5;:7::i;:::-;19664:15;;:4;:15;;;;:32;;;;;19689:7;:5;:7::i;:::-;19683:13;;:2;:13;;;;19664:32;:52;;;;;19714:1;19700:16;;:2;:16;;;;19664:52;:77;;;;;19734:6;19720:21;;:2;:21;;;;19664:77;:90;;;;;19746:8;;;;;;;;;;;19745:9;19664:90;19660:1000;;;19778:11;;;;;;;;;;;19773:140;;19818:19;:25;19838:4;19818:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19847:19;:23;19867:2;19847:23;;;;;;;;;;;;;;;;;;;;;;;;;19818:52;19810:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19773:140;19933:25;:31;19959:4;19933:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19969:31;:35;20001:2;19969:35;;;;;;;;;;;;;;;;;;;;;;;;;19968:36;19933:71;19929:706;;;20043:20;;20033:6;:30;;20025:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20174:9;;20157:13;20167:2;20157:9;:13::i;:::-;20148:6;:22;;;;:::i;:::-;:35;;20140:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19929:706;;;20248:25;:29;20274:2;20248:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20282:31;:37;20314:4;20282:37;;;;;;;;;;;;;;;;;;;;;;;;;20281:38;20248:71;20244:391;;;20358:20;;20348:6;:30;;20340:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20244:391;;;20496:31;:35;20528:2;20496:35;;;;;;;;;;;;;;;;;;;;;;;;;20491:144;;20586:9;;20569:13;20579:2;20569:9;:13::i;:::-;20560:6;:22;;;;:::i;:::-;:35;;20552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20491:144;20244:391;19929:706;19660:1000;20672:28;20703:24;20721:4;20703:9;:24::i;:::-;20672:55;;20740:12;20778:1;20755:20;:24;:39;;;;;20784:10;20783:11;20755:39;20740:54;;20811:7;:20;;;;;20823:8;;;;;;;;;;;20822:9;20811:20;:56;;;;;20836:25;:31;20862:4;20836:31;;;;;;;;;;;;;;;;;;;;;;;;;20835:32;20811:56;:86;;;;;20872:19;:25;20892:4;20872:25;;;;;;;;;;;;;;;;;;;;;;;;;20871:26;20811:86;:114;;;;;20902:19;:23;20922:2;20902:23;;;;;;;;;;;;;;;;;;;;;;;;;20901:24;20811:114;20807:224;;;20953:4;20942:8;;:15;;;;;;;;;;;;;;;;;;20972:16;20981:6;20972:8;:16::i;:::-;21014:5;21003:8;;:16;;;;;;;;;;;;;;;;;;20807:224;21043:12;21059:8;;;;;;;;;;;21058:9;:24;;;;;21072:10;21071:11;21058:24;21043:39;;21099:19;:25;21119:4;21099:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21128:19;:23;21148:2;21128:23;;;;;;;;;;;;;;;;;;;;;;;;;21099:52;21095:100;;;21178:5;21168:15;;21095:100;21207:12;21240:7;21236:348;;;21268:25;:29;21294:2;21268:29;;;;;;;;;;;;;;;;;;;;;;;;;21264:193;;;21325:28;21349:3;21325:19;21336:7;;21325:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;21318:35;;21264:193;;;21414:27;21437:3;21414:18;21425:6;;21414;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;21407:34;;21264:193;21480:1;21473:4;:8;21469:83;;;21498:42;21514:4;21528;21535;21498:15;:42::i;:::-;21469:83;21572:4;21562:14;;;;;:::i;:::-;;;21236:348;21594:33;21610:4;21616:2;21620:6;21594:15;:33::i;:::-;19281:2354;;;;;19202:2433;;;;:::o;8753:132::-;8828:12;:10;:12::i;:::-;8817:23;;:7;:5;:7::i;:::-;:23;;;8809:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8753:132::o;9213:191::-;9287:16;9306:6;;;;;;;;;;;9287:25;;9332:8;9323:6;;:17;;;;;;;;;;;;;;;;;;9387:8;9356:40;;9377:8;9356:40;;;;;;;;;;;;9276:128;9213:191;:::o;18874:186::-;18991:5;18957:25;:31;18983:4;18957:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19046:5;19012:40;;19040:4;19012:40;;;;;;;;;;;;18874:186;;:::o;21643:482::-;21711:21;21749:1;21735:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21711:40;;21780:4;21762;21767:1;21762:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21806:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21796:4;21801:1;21796:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21842:63;21859:4;21874:16;21893:11;21842:8;:63::i;:::-;21918:16;:67;;;22000:11;22026:1;22042:4;22061:15;;;;;;;;;;;22091;21918:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21698:427;21643:482;:::o;11951:675::-;12098:1;12082:18;;:4;:18;;;12074:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12175:1;12161:16;;:2;:16;;;12153:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12230:38;12251:4;12257:2;12261:6;12230:20;:38::i;:::-;12281:19;12303:9;:15;12313:4;12303:15;;;;;;;;;;;;;;;;12281:37;;12352:6;12337:11;:21;;12329:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12469:6;12455:11;:20;12437:9;:15;12447:4;12437:15;;;;;;;;;;;;;;;:38;;;;12507:6;12490:9;:13;12500:2;12490:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12557:2;12542:26;;12551:4;12542:26;;;12561:6;12542:26;;;;;;:::i;:::-;;;;;;;;12581:37;12601:4;12607:2;12611:6;12581:19;:37::i;:::-;12063:563;11951:675;;;:::o;23956:1397::-;24009:23;24035:24;24053:4;24035:9;:24::i;:::-;24009:50;;24070:20;24127:1;24108:15;:20;24104:59;;24145:7;;;;24104:59;24199:1;24187:7;;24180:6;;:14;;;;:::i;:::-;24179:21;24175:1130;;24236:1;24218:15;:19;:59;;;;;24259:18;;24241:15;:36;24218:59;24215:443;;;24309:15;24294:30;;24215:443;;;24366:21;24390:28;24414:3;24390:19;24401:7;;24390:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;24366:52;;24443:13;24433:23;;;;;:::i;:::-;;;24484:18;;24475:6;:27;24471:176;;;24538:18;;24523:33;;24471:176;;;24625:6;24610:21;;24471:176;24351:307;24215:443;24175:1130;;;24712:1;24694:15;:19;:66;;;;;24735:25;24758:1;24735:18;;:22;;:25;;;;:::i;:::-;24717:15;:43;24694:66;24691:607;;;24777:7;;;;24691:607;24832:1;24814:15;:19;:66;;;;;24855:25;24878:1;24855:18;;:22;;:25;;;;:::i;:::-;24837:15;:43;24814:66;:106;;;;;24902:18;;24884:15;:36;24814:106;24810:488;;;24952:25;24975:1;24952:18;;:22;;:25;;;;:::i;:::-;24937:40;;24810:488;;;25019:21;25043:28;25067:3;25043:19;25054:7;;25043:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;25019:52;;25096:13;25086:23;;;;;:::i;:::-;;;25137:18;;25128:6;:27;25124:163;;;25191:18;;25176:33;;25124:163;;;25265:6;25250:21;;25124:163;25004:294;24810:488;24175:1130;25315:30;25332:12;25315:16;:30::i;:::-;23998:1355;;23956:1397;;:::o;6454:98::-;6512:7;6543:1;6539;:5;;;;:::i;:::-;6532:12;;6454:98;;;;:::o;6560:::-;6618:7;6649:1;6645;:5;;;;:::i;:::-;6638:12;;6560:98;;;;:::o;14529:125::-;;;;:::o;14662:124::-;;;;:::o;7:90:1:-;41:7;84:5;77:13;70:21;59:32;;7:90;;;:::o;103:109::-;184:21;199:5;184:21;:::i;:::-;179:3;172:34;103:109;;:::o;218:210::-;305:4;343:2;332:9;328:18;320:26;;356:65;418:1;407:9;403:17;394:6;356:65;:::i;:::-;218:210;;;;:::o;434:99::-;486:6;520:5;514:12;504:22;;434:99;;;:::o;539:169::-;623:11;657:6;652:3;645:19;697:4;692:3;688:14;673:29;;539:169;;;;:::o;714:139::-;803:6;798:3;793;787:23;844:1;835:6;830:3;826:16;819:27;714:139;;;:::o;859:102::-;900:6;951:2;947:7;942:2;935:5;931:14;927:28;917:38;;859:102;;;:::o;967:377::-;1055:3;1083:39;1116:5;1083:39;:::i;:::-;1138:71;1202:6;1197:3;1138:71;:::i;:::-;1131:78;;1218:65;1276:6;1271:3;1264:4;1257:5;1253:16;1218:65;:::i;:::-;1308:29;1330:6;1308:29;:::i;:::-;1303:3;1299:39;1292:46;;1059:285;967:377;;;;:::o;1350:313::-;1463:4;1501:2;1490:9;1486:18;1478:26;;1550:9;1544:4;1540:20;1536:1;1525:9;1521:17;1514:47;1578:78;1651:4;1642:6;1578:78;:::i;:::-;1570:86;;1350:313;;;;:::o;1750:117::-;1859:1;1856;1849:12;1996:126;2033:7;2073:42;2066:5;2062:54;2051:65;;1996:126;;;:::o;2128:96::-;2165:7;2194:24;2212:5;2194:24;:::i;:::-;2183:35;;2128:96;;;:::o;2230:122::-;2303:24;2321:5;2303:24;:::i;:::-;2296:5;2293:35;2283:63;;2342:1;2339;2332:12;2283:63;2230:122;:::o;2358:139::-;2404:5;2442:6;2429:20;2420:29;;2458:33;2485:5;2458:33;:::i;:::-;2358:139;;;;:::o;2503:77::-;2540:7;2569:5;2558:16;;2503:77;;;:::o;2586:122::-;2659:24;2677:5;2659:24;:::i;:::-;2652:5;2649:35;2639:63;;2698:1;2695;2688:12;2639:63;2586:122;:::o;2714:139::-;2760:5;2798:6;2785:20;2776:29;;2814:33;2841:5;2814:33;:::i;:::-;2714:139;;;;:::o;2859:474::-;2927:6;2935;2984:2;2972:9;2963:7;2959:23;2955:32;2952:119;;;2990:79;;:::i;:::-;2952:119;3110:1;3135:53;3180:7;3171:6;3160:9;3156:22;3135:53;:::i;:::-;3125:63;;3081:117;3237:2;3263:53;3308:7;3299:6;3288:9;3284:22;3263:53;:::i;:::-;3253:63;;3208:118;2859:474;;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:474::-;5149:6;5157;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5459:2;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5430:118;5081:474;;;;;:::o;5561:60::-;5589:3;5610:5;5603:12;;5561:60;;;:::o;5627:142::-;5677:9;5710:53;5728:34;5737:24;5755:5;5737:24;:::i;:::-;5728:34;:::i;:::-;5710:53;:::i;:::-;5697:66;;5627:142;;;:::o;5775:126::-;5825:9;5858:37;5889:5;5858:37;:::i;:::-;5845:50;;5775:126;;;:::o;5907:151::-;5982:9;6015:37;6046:5;6015:37;:::i;:::-;6002:50;;5907:151;;;:::o;6064:181::-;6176:62;6232:5;6176:62;:::i;:::-;6171:3;6164:75;6064:181;;:::o;6251:272::-;6369:4;6407:2;6396:9;6392:18;6384:26;;6420:96;6513:1;6502:9;6498:17;6489:6;6420:96;:::i;:::-;6251:272;;;;:::o;6529:118::-;6600:22;6616:5;6600:22;:::i;:::-;6593:5;6590:33;6580:61;;6637:1;6634;6627:12;6580:61;6529:118;:::o;6653:135::-;6697:5;6735:6;6722:20;6713:29;;6751:31;6776:5;6751:31;:::i;:::-;6653:135;;;;:::o;6794:77::-;6831:7;6860:5;6849:16;;6794:77;;;:::o;6877:122::-;6950:24;6968:5;6950:24;:::i;:::-;6943:5;6940:35;6930:63;;6989:1;6986;6979:12;6930:63;6877:122;:::o;7005:139::-;7051:5;7089:6;7076:20;7067:29;;7105:33;7132:5;7105:33;:::i;:::-;7005:139;;;;:::o;7150:615::-;7225:6;7233;7241;7290:2;7278:9;7269:7;7265:23;7261:32;7258:119;;;7296:79;;:::i;:::-;7258:119;7416:1;7441:51;7484:7;7475:6;7464:9;7460:22;7441:51;:::i;:::-;7431:61;;7387:115;7541:2;7567:53;7612:7;7603:6;7592:9;7588:22;7567:53;:::i;:::-;7557:63;;7512:118;7669:2;7695:53;7740:7;7731:6;7720:9;7716:22;7695:53;:::i;:::-;7685:63;;7640:118;7150:615;;;;;:::o;7771:118::-;7858:24;7876:5;7858:24;:::i;:::-;7853:3;7846:37;7771:118;;:::o;7895:222::-;7988:4;8026:2;8015:9;8011:18;8003:26;;8039:71;8107:1;8096:9;8092:17;8083:6;8039:71;:::i;:::-;7895:222;;;;:::o;8123:116::-;8193:21;8208:5;8193:21;:::i;:::-;8186:5;8183:32;8173:60;;8229:1;8226;8219:12;8173:60;8123:116;:::o;8245:133::-;8288:5;8326:6;8313:20;8304:29;;8342:30;8366:5;8342:30;:::i;:::-;8245:133;;;;:::o;8384:468::-;8449:6;8457;8506:2;8494:9;8485:7;8481:23;8477:32;8474:119;;;8512:79;;:::i;:::-;8474:119;8632:1;8657:53;8702:7;8693:6;8682:9;8678:22;8657:53;:::i;:::-;8647:63;;8603:117;8759:2;8785:50;8827:7;8818:6;8807:9;8803:22;8785:50;:::i;:::-;8775:60;;8730:115;8384:468;;;;;:::o;8858:329::-;8917:6;8966:2;8954:9;8945:7;8941:23;8937:32;8934:119;;;8972:79;;:::i;:::-;8934:119;9092:1;9117:53;9162:7;9153:6;9142:9;9138:22;9117:53;:::i;:::-;9107:63;;9063:117;8858:329;;;;:::o;9193:474::-;9261:6;9269;9318:2;9306:9;9297:7;9293:23;9289:32;9286:119;;;9324:79;;:::i;:::-;9286:119;9444:1;9469:53;9514:7;9505:6;9494:9;9490:22;9469:53;:::i;:::-;9459:63;;9415:117;9571:2;9597:53;9642:7;9633:6;9622:9;9618:22;9597:53;:::i;:::-;9587:63;;9542:118;9193:474;;;;;:::o;9673:180::-;9721:77;9718:1;9711:88;9818:4;9815:1;9808:15;9842:4;9839:1;9832:15;9859:320;9903:6;9940:1;9934:4;9930:12;9920:22;;9987:1;9981:4;9977:12;10008:18;9998:81;;10064:4;10056:6;10052:17;10042:27;;9998:81;10126:2;10118:6;10115:14;10095:18;10092:38;10089:84;;10145:18;;:::i;:::-;10089:84;9910:269;9859:320;;;:::o;10185:143::-;10242:5;10273:6;10267:13;10258:22;;10289:33;10316:5;10289:33;:::i;:::-;10185:143;;;;:::o;10334:351::-;10404:6;10453:2;10441:9;10432:7;10428:23;10424:32;10421:119;;;10459:79;;:::i;:::-;10421:119;10579:1;10604:64;10660:7;10651:6;10640:9;10636:22;10604:64;:::i;:::-;10594:74;;10550:128;10334:351;;;;:::o;10691:168::-;10831:20;10827:1;10819:6;10815:14;10808:44;10691:168;:::o;10865:366::-;11007:3;11028:67;11092:2;11087:3;11028:67;:::i;:::-;11021:74;;11104:93;11193:3;11104:93;:::i;:::-;11222:2;11217:3;11213:12;11206:19;;10865:366;;;:::o;11237:419::-;11403:4;11441:2;11430:9;11426:18;11418:26;;11490:9;11484:4;11480:20;11476:1;11465:9;11461:17;11454:47;11518:131;11644:4;11518:131;:::i;:::-;11510:139;;11237:419;;;:::o;11662:332::-;11783:4;11821:2;11810:9;11806:18;11798:26;;11834:71;11902:1;11891:9;11887:17;11878:6;11834:71;:::i;:::-;11915:72;11983:2;11972:9;11968:18;11959:6;11915:72;:::i;:::-;11662:332;;;;;:::o;12000:137::-;12054:5;12085:6;12079:13;12070:22;;12101:30;12125:5;12101:30;:::i;:::-;12000:137;;;;:::o;12143:345::-;12210:6;12259:2;12247:9;12238:7;12234:23;12230:32;12227:119;;;12265:79;;:::i;:::-;12227:119;12385:1;12410:61;12463:7;12454:6;12443:9;12439:22;12410:61;:::i;:::-;12400:71;;12356:125;12143:345;;;;:::o;12494:180::-;12542:77;12539:1;12532:88;12639:4;12636:1;12629:15;12663:4;12660:1;12653:15;12680:191;12720:3;12739:20;12757:1;12739:20;:::i;:::-;12734:25;;12773:20;12791:1;12773:20;:::i;:::-;12768:25;;12816:1;12813;12809:9;12802:16;;12837:3;12834:1;12831:10;12828:36;;;12844:18;;:::i;:::-;12828:36;12680:191;;;;:::o;12877:172::-;13017:24;13013:1;13005:6;13001:14;12994:48;12877:172;:::o;13055:366::-;13197:3;13218:67;13282:2;13277:3;13218:67;:::i;:::-;13211:74;;13294:93;13383:3;13294:93;:::i;:::-;13412:2;13407:3;13403:12;13396:19;;13055:366;;;:::o;13427:419::-;13593:4;13631:2;13620:9;13616:18;13608:26;;13680:9;13674:4;13670:20;13666:1;13655:9;13651:17;13644:47;13708:131;13834:4;13708:131;:::i;:::-;13700:139;;13427:419;;;:::o;13852:118::-;13939:24;13957:5;13939:24;:::i;:::-;13934:3;13927:37;13852:118;;:::o;13976:664::-;14181:4;14219:3;14208:9;14204:19;14196:27;;14233:71;14301:1;14290:9;14286:17;14277:6;14233:71;:::i;:::-;14314:72;14382:2;14371:9;14367:18;14358:6;14314:72;:::i;:::-;14396;14464:2;14453:9;14449:18;14440:6;14396:72;:::i;:::-;14478;14546:2;14535:9;14531:18;14522:6;14478:72;:::i;:::-;14560:73;14628:3;14617:9;14613:19;14604:6;14560:73;:::i;:::-;13976:664;;;;;;;;:::o;14646:442::-;14795:4;14833:2;14822:9;14818:18;14810:26;;14846:71;14914:1;14903:9;14899:17;14890:6;14846:71;:::i;:::-;14927:72;14995:2;14984:9;14980:18;14971:6;14927:72;:::i;:::-;15009;15077:2;15066:9;15062:18;15053:6;15009:72;:::i;:::-;14646:442;;;;;;:::o;15094:148::-;15196:11;15233:3;15218:18;;15094:148;;;;:::o;15248:214::-;15388:66;15384:1;15376:6;15372:14;15365:90;15248:214;:::o;15468:400::-;15628:3;15649:84;15731:1;15726:3;15649:84;:::i;:::-;15642:91;;15742:93;15831:3;15742:93;:::i;:::-;15860:1;15855:3;15851:11;15844:18;;15468:400;;;:::o;15874:79::-;15913:7;15942:5;15931:16;;15874:79;;;:::o;15959:157::-;16064:45;16084:24;16102:5;16084:24;:::i;:::-;16064:45;:::i;:::-;16059:3;16052:58;15959:157;;:::o;16122:663::-;16363:3;16385:148;16529:3;16385:148;:::i;:::-;16378:155;;16543:75;16614:3;16605:6;16543:75;:::i;:::-;16643:2;16638:3;16634:12;16627:19;;16656:75;16727:3;16718:6;16656:75;:::i;:::-;16756:2;16751:3;16747:12;16740:19;;16776:3;16769:10;;16122:663;;;;;:::o;16791:545::-;16964:4;17002:3;16991:9;16987:19;16979:27;;17016:71;17084:1;17073:9;17069:17;17060:6;17016:71;:::i;:::-;17097:68;17161:2;17150:9;17146:18;17137:6;17097:68;:::i;:::-;17175:72;17243:2;17232:9;17228:18;17219:6;17175:72;:::i;:::-;17257;17325:2;17314:9;17310:18;17301:6;17257:72;:::i;:::-;16791:545;;;;;;;:::o;17342:167::-;17482:19;17478:1;17470:6;17466:14;17459:43;17342:167;:::o;17515:366::-;17657:3;17678:67;17742:2;17737:3;17678:67;:::i;:::-;17671:74;;17754:93;17843:3;17754:93;:::i;:::-;17872:2;17867:3;17863:12;17856:19;;17515:366;;;:::o;17887:419::-;18053:4;18091:2;18080:9;18076:18;18068:26;;18140:9;18134:4;18130:20;18126:1;18115:9;18111:17;18104:47;18168:131;18294:4;18168:131;:::i;:::-;18160:139;;17887:419;;;:::o;18312:172::-;18452:24;18448:1;18440:6;18436:14;18429:48;18312:172;:::o;18490:366::-;18632:3;18653:67;18717:2;18712:3;18653:67;:::i;:::-;18646:74;;18729:93;18818:3;18729:93;:::i;:::-;18847:2;18842:3;18838:12;18831:19;;18490:366;;;:::o;18862:419::-;19028:4;19066:2;19055:9;19051:18;19043:26;;19115:9;19109:4;19105:20;19101:1;19090:9;19086:17;19079:47;19143:131;19269:4;19143:131;:::i;:::-;19135:139;;18862:419;;;:::o;19287:244::-;19427:34;19423:1;19415:6;19411:14;19404:58;19496:27;19491:2;19483:6;19479:15;19472:52;19287:244;:::o;19537:366::-;19679:3;19700:67;19764:2;19759:3;19700:67;:::i;:::-;19693:74;;19776:93;19865:3;19776:93;:::i;:::-;19894:2;19889:3;19885:12;19878:19;;19537:366;;;:::o;19909:419::-;20075:4;20113:2;20102:9;20098:18;20090:26;;20162:9;20156:4;20152:20;20148:1;20137:9;20133:17;20126:47;20190:131;20316:4;20190:131;:::i;:::-;20182:139;;19909:419;;;:::o;20334:224::-;20474:34;20470:1;20462:6;20458:14;20451:58;20543:7;20538:2;20530:6;20526:15;20519:32;20334:224;:::o;20564:366::-;20706:3;20727:67;20791:2;20786:3;20727:67;:::i;:::-;20720:74;;20803:93;20892:3;20803:93;:::i;:::-;20921:2;20916:3;20912:12;20905:19;;20564:366;;;:::o;20936:419::-;21102:4;21140:2;21129:9;21125:18;21117:26;;21189:9;21183:4;21179:20;21175:1;21164:9;21160:17;21153:47;21217:131;21343:4;21217:131;:::i;:::-;21209:139;;20936:419;;;:::o;21361:410::-;21401:7;21424:20;21442:1;21424:20;:::i;:::-;21419:25;;21458:20;21476:1;21458:20;:::i;:::-;21453:25;;21513:1;21510;21506:9;21535:30;21553:11;21535:30;:::i;:::-;21524:41;;21714:1;21705:7;21701:15;21698:1;21695:22;21675:1;21668:9;21648:83;21625:139;;21744:18;;:::i;:::-;21625:139;21409:362;21361:410;;;;:::o;21777:180::-;21825:77;21822:1;21815:88;21922:4;21919:1;21912:15;21946:4;21943:1;21936:15;21963:185;22003:1;22020:20;22038:1;22020:20;:::i;:::-;22015:25;;22054:20;22072:1;22054:20;:::i;:::-;22049:25;;22093:1;22083:35;;22098:18;;:::i;:::-;22083:35;22140:1;22137;22133:9;22128:14;;21963:185;;;;:::o;22154:223::-;22294:34;22290:1;22282:6;22278:14;22271:58;22363:6;22358:2;22350:6;22346:15;22339:31;22154:223;:::o;22383:366::-;22525:3;22546:67;22610:2;22605:3;22546:67;:::i;:::-;22539:74;;22622:93;22711:3;22622:93;:::i;:::-;22740:2;22735:3;22731:12;22724:19;;22383:366;;;:::o;22755:419::-;22921:4;22959:2;22948:9;22944:18;22936:26;;23008:9;23002:4;22998:20;22994:1;22983:9;22979:17;22972:47;23036:131;23162:4;23036:131;:::i;:::-;23028:139;;22755:419;;;:::o;23180:225::-;23320:34;23316:1;23308:6;23304:14;23297:58;23389:8;23384:2;23376:6;23372:15;23365:33;23180:225;:::o;23411:366::-;23553:3;23574:67;23638:2;23633:3;23574:67;:::i;:::-;23567:74;;23650:93;23739:3;23650:93;:::i;:::-;23768:2;23763:3;23759:12;23752:19;;23411:366;;;:::o;23783:419::-;23949:4;23987:2;23976:9;23972:18;23964:26;;24036:9;24030:4;24026:20;24022:1;24011:9;24007:17;24000:47;24064:131;24190:4;24064:131;:::i;:::-;24056:139;;23783:419;;;:::o;24208:223::-;24348:34;24344:1;24336:6;24332:14;24325:58;24417:6;24412:2;24404:6;24400:15;24393:31;24208:223;:::o;24437:366::-;24579:3;24600:67;24664:2;24659:3;24600:67;:::i;:::-;24593:74;;24676:93;24765:3;24676:93;:::i;:::-;24794:2;24789:3;24785:12;24778:19;;24437:366;;;:::o;24809:419::-;24975:4;25013:2;25002:9;24998:18;24990:26;;25062:9;25056:4;25052:20;25048:1;25037:9;25033:17;25026:47;25090:131;25216:4;25090:131;:::i;:::-;25082:139;;24809:419;;;:::o;25234:221::-;25374:34;25370:1;25362:6;25358:14;25351:58;25443:4;25438:2;25430:6;25426:15;25419:29;25234:221;:::o;25461:366::-;25603:3;25624:67;25688:2;25683:3;25624:67;:::i;:::-;25617:74;;25700:93;25789:3;25700:93;:::i;:::-;25818:2;25813:3;25809:12;25802:19;;25461:366;;;:::o;25833:419::-;25999:4;26037:2;26026:9;26022:18;26014:26;;26086:9;26080:4;26076:20;26072:1;26061:9;26057:17;26050:47;26114:131;26240:4;26114:131;:::i;:::-;26106:139;;25833:419;;;:::o;26258:179::-;26398:31;26394:1;26386:6;26382:14;26375:55;26258:179;:::o;26443:366::-;26585:3;26606:67;26670:2;26665:3;26606:67;:::i;:::-;26599:74;;26682:93;26771:3;26682:93;:::i;:::-;26800:2;26795:3;26791:12;26784:19;;26443:366;;;:::o;26815:419::-;26981:4;27019:2;27008:9;27004:18;26996:26;;27068:9;27062:4;27058:20;27054:1;27043:9;27039:17;27032:47;27096:131;27222:4;27096:131;:::i;:::-;27088:139;;26815:419;;;:::o;27240:224::-;27380:34;27376:1;27368:6;27364:14;27357:58;27449:7;27444:2;27436:6;27432:15;27425:32;27240:224;:::o;27470:366::-;27612:3;27633:67;27697:2;27692:3;27633:67;:::i;:::-;27626:74;;27709:93;27798:3;27709:93;:::i;:::-;27827:2;27822:3;27818:12;27811:19;;27470:366;;;:::o;27842:419::-;28008:4;28046:2;28035:9;28031:18;28023:26;;28095:9;28089:4;28085:20;28081:1;28070:9;28066:17;28059:47;28123:131;28249:4;28123:131;:::i;:::-;28115:139;;27842:419;;;:::o;28267:222::-;28407:34;28403:1;28395:6;28391:14;28384:58;28476:5;28471:2;28463:6;28459:15;28452:30;28267:222;:::o;28495:366::-;28637:3;28658:67;28722:2;28717:3;28658:67;:::i;:::-;28651:74;;28734:93;28823:3;28734:93;:::i;:::-;28852:2;28847:3;28843:12;28836:19;;28495:366;;;:::o;28867:419::-;29033:4;29071:2;29060:9;29056:18;29048:26;;29120:9;29114:4;29110:20;29106:1;29095:9;29091:17;29084:47;29148:131;29274:4;29148:131;:::i;:::-;29140:139;;28867:419;;;:::o;29292:172::-;29432:24;29428:1;29420:6;29416:14;29409:48;29292:172;:::o;29470:366::-;29612:3;29633:67;29697:2;29692:3;29633:67;:::i;:::-;29626:74;;29709:93;29798:3;29709:93;:::i;:::-;29827:2;29822:3;29818:12;29811:19;;29470:366;;;:::o;29842:419::-;30008:4;30046:2;30035:9;30031:18;30023:26;;30095:9;30089:4;30085:20;30081:1;30070:9;30066:17;30059:47;30123:131;30249:4;30123:131;:::i;:::-;30115:139;;29842:419;;;:::o;30267:240::-;30407:34;30403:1;30395:6;30391:14;30384:58;30476:23;30471:2;30463:6;30459:15;30452:48;30267:240;:::o;30513:366::-;30655:3;30676:67;30740:2;30735:3;30676:67;:::i;:::-;30669:74;;30752:93;30841:3;30752:93;:::i;:::-;30870:2;30865:3;30861:12;30854:19;;30513:366;;;:::o;30885:419::-;31051:4;31089:2;31078:9;31074:18;31066:26;;31138:9;31132:4;31128:20;31124:1;31113:9;31109:17;31102:47;31166:131;31292:4;31166:131;:::i;:::-;31158:139;;30885:419;;;:::o;31310:169::-;31450:21;31446:1;31438:6;31434:14;31427:45;31310:169;:::o;31485:366::-;31627:3;31648:67;31712:2;31707:3;31648:67;:::i;:::-;31641:74;;31724:93;31813:3;31724:93;:::i;:::-;31842:2;31837:3;31833:12;31826:19;;31485:366;;;:::o;31857:419::-;32023:4;32061:2;32050:9;32046:18;32038:26;;32110:9;32104:4;32100:20;32096:1;32085:9;32081:17;32074:47;32138:131;32264:4;32138:131;:::i;:::-;32130:139;;31857:419;;;:::o;32282:241::-;32422:34;32418:1;32410:6;32406:14;32399:58;32491:24;32486:2;32478:6;32474:15;32467:49;32282:241;:::o;32529:366::-;32671:3;32692:67;32756:2;32751:3;32692:67;:::i;:::-;32685:74;;32768:93;32857:3;32768:93;:::i;:::-;32886:2;32881:3;32877:12;32870:19;;32529:366;;;:::o;32901:419::-;33067:4;33105:2;33094:9;33090:18;33082:26;;33154:9;33148:4;33144:20;33140:1;33129:9;33125:17;33118:47;33182:131;33308:4;33182:131;:::i;:::-;33174:139;;32901:419;;;:::o;33326:194::-;33366:4;33386:20;33404:1;33386:20;:::i;:::-;33381:25;;33420:20;33438:1;33420:20;:::i;:::-;33415:25;;33464:1;33461;33457:9;33449:17;;33488:1;33482:4;33479:11;33476:37;;;33493:18;;:::i;:::-;33476:37;33326:194;;;;:::o;33526:182::-;33666:34;33662:1;33654:6;33650:14;33643:58;33526:182;:::o;33714:366::-;33856:3;33877:67;33941:2;33936:3;33877:67;:::i;:::-;33870:74;;33953:93;34042:3;33953:93;:::i;:::-;34071:2;34066:3;34062:12;34055:19;;33714:366;;;:::o;34086:419::-;34252:4;34290:2;34279:9;34275:18;34267:26;;34339:9;34333:4;34329:20;34325:1;34314:9;34310:17;34303:47;34367:131;34493:4;34367:131;:::i;:::-;34359:139;;34086:419;;;:::o;34511:180::-;34559:77;34556:1;34549:88;34656:4;34653:1;34646:15;34680:4;34677:1;34670:15;34697:180;34745:77;34742:1;34735:88;34842:4;34839:1;34832:15;34866:4;34863:1;34856:15;34883:143;34940:5;34971:6;34965:13;34956:22;;34987:33;35014:5;34987:33;:::i;:::-;34883:143;;;;:::o;35032:351::-;35102:6;35151:2;35139:9;35130:7;35126:23;35122:32;35119:119;;;35157:79;;:::i;:::-;35119:119;35277:1;35302:64;35358:7;35349:6;35338:9;35334:22;35302:64;:::i;:::-;35292:74;;35248:128;35032:351;;;;:::o;35389:85::-;35434:7;35463:5;35452:16;;35389:85;;;:::o;35480:158::-;35538:9;35571:61;35589:42;35598:32;35624:5;35598:32;:::i;:::-;35589:42;:::i;:::-;35571:61;:::i;:::-;35558:74;;35480:158;;;:::o;35644:147::-;35739:45;35778:5;35739:45;:::i;:::-;35734:3;35727:58;35644:147;;:::o;35797:114::-;35864:6;35898:5;35892:12;35882:22;;35797:114;;;:::o;35917:184::-;36016:11;36050:6;36045:3;36038:19;36090:4;36085:3;36081:14;36066:29;;35917:184;;;;:::o;36107:132::-;36174:4;36197:3;36189:11;;36227:4;36222:3;36218:14;36210:22;;36107:132;;;:::o;36245:108::-;36322:24;36340:5;36322:24;:::i;:::-;36317:3;36310:37;36245:108;;:::o;36359:179::-;36428:10;36449:46;36491:3;36483:6;36449:46;:::i;:::-;36527:4;36522:3;36518:14;36504:28;;36359:179;;;;:::o;36544:113::-;36614:4;36646;36641:3;36637:14;36629:22;;36544:113;;;:::o;36693:732::-;36812:3;36841:54;36889:5;36841:54;:::i;:::-;36911:86;36990:6;36985:3;36911:86;:::i;:::-;36904:93;;37021:56;37071:5;37021:56;:::i;:::-;37100:7;37131:1;37116:284;37141:6;37138:1;37135:13;37116:284;;;37217:6;37211:13;37244:63;37303:3;37288:13;37244:63;:::i;:::-;37237:70;;37330:60;37383:6;37330:60;:::i;:::-;37320:70;;37176:224;37163:1;37160;37156:9;37151:14;;37116:284;;;37120:14;37416:3;37409:10;;36817:608;;;36693:732;;;;:::o;37431:831::-;37694:4;37732:3;37721:9;37717:19;37709:27;;37746:71;37814:1;37803:9;37799:17;37790:6;37746:71;:::i;:::-;37827:80;37903:2;37892:9;37888:18;37879:6;37827:80;:::i;:::-;37954:9;37948:4;37944:20;37939:2;37928:9;37924:18;37917:48;37982:108;38085:4;38076:6;37982:108;:::i;:::-;37974:116;;38100:72;38168:2;38157:9;38153:18;38144:6;38100:72;:::i;:::-;38182:73;38250:3;38239:9;38235:19;38226:6;38182:73;:::i;:::-;37431:831;;;;;;;;:::o;38268:225::-;38408:34;38404:1;38396:6;38392:14;38385:58;38477:8;38472:2;38464:6;38460:15;38453:33;38268:225;:::o;38499:366::-;38641:3;38662:67;38726:2;38721:3;38662:67;:::i;:::-;38655:74;;38738:93;38827:3;38738:93;:::i;:::-;38856:2;38851:3;38847:12;38840:19;;38499:366;;;:::o;38871:419::-;39037:4;39075:2;39064:9;39060:18;39052:26;;39124:9;39118:4;39114:20;39110:1;39099:9;39095:17;39088:47;39152:131;39278:4;39152:131;:::i;:::-;39144:139;;38871:419;;;:::o

Swarm Source

ipfs://8fbb9d6869b94d4aebeffc2ee4e1290a33b48035c50167323ea03b20b3d47966

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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