ETH Price: $2,876.88 (+6.92%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve172396482023-05-11 21:15:59545 days ago1683839759IN
0x9EA11A07...6cb37820E
0 ETH0.0045209496.20867599
Approve172395022023-05-11 20:45:47545 days ago1683837947IN
0x9EA11A07...6cb37820E
0 ETH0.00563015119.29549234
Approve172393352023-05-11 20:02:23545 days ago1683835343IN
0x9EA11A07...6cb37820E
0 ETH0.00549985117.19029218
NF Tlaunch172393232023-05-11 19:59:59545 days ago1683835199IN
0x9EA11A07...6cb37820E
0 ETH0.00382864102.62270575
NF Tlaunch172393122023-05-11 19:57:47545 days ago1683835067IN
0x9EA11A07...6cb37820E
0 ETH0.00629402115.75862713
Approve172364532023-05-11 10:15:11546 days ago1683800111IN
0x9EA11A07...6cb37820E
0 ETH0.0039126383.34853017
Approve172341692023-05-11 2:33:11546 days ago1683772391IN
0x9EA11A07...6cb37820E
0 ETH0.0016585166.41778625
Transfer From172341572023-05-11 2:30:47546 days ago1683772247IN
0x9EA11A07...6cb37820E
0 ETH0.0060540582.88003457
Approve172341482023-05-11 2:28:59546 days ago1683772139IN
0x9EA11A07...6cb37820E
0 ETH0.0032460668.69253228
Approve172321872023-05-10 19:52:23546 days ago1683748343IN
0x9EA11A07...6cb37820E
0 ETH0.00320347128.59692847
Approve172320822023-05-10 19:31:23547 days ago1683747083IN
0x9EA11A07...6cb37820E
0 ETH0.00668989141.75
Approve172319782023-05-10 19:10:11547 days ago1683745811IN
0x9EA11A07...6cb37820E
0 ETH0.00486282103.0368992
Approve172318972023-05-10 18:53:35547 days ago1683744815IN
0x9EA11A07...6cb37820E
0 ETH0.0041948188.88260448
Update Sell Fees172318742023-05-10 18:48:59547 days ago1683744539IN
0x9EA11A07...6cb37820E
0 ETH0.0034161892.41411426
Approve172318672023-05-10 18:47:35547 days ago1683744455IN
0x9EA11A07...6cb37820E
0 ETH0.0046641698.82743917
Update Sell Fees172318292023-05-10 18:39:47547 days ago1683743987IN
0x9EA11A07...6cb37820E
0 ETH0.0036442798.5844402
Approve172317862023-05-10 18:31:11547 days ago1683743471IN
0x9EA11A07...6cb37820E
0 ETH0.00521527110.50477289
Approve172317322023-05-10 18:20:23547 days ago1683742823IN
0x9EA11A07...6cb37820E
0 ETH0.00595957126.27565913
Approve172316992023-05-10 18:13:35547 days ago1683742415IN
0x9EA11A07...6cb37820E
0 ETH0.00516767109.49631379
Update Sell Fees172316662023-05-10 18:06:59547 days ago1683742019IN
0x9EA11A07...6cb37820E
0 ETH0.00534047134.29749257
Update Sell Fees172316592023-05-10 18:05:23547 days ago1683741923IN
0x9EA11A07...6cb37820E
0 ETH0.01119067122.885306
Approve172316552023-05-10 18:04:35547 days ago1683741875IN
0x9EA11A07...6cb37820E
0 ETH0.00596755126.44456038
Approve172316482023-05-10 18:03:11547 days ago1683741791IN
0x9EA11A07...6cb37820E
0 ETH0.00636407135.57021929
Approve172316422023-05-10 18:01:59547 days ago1683741719IN
0x9EA11A07...6cb37820E
0 ETH0.00738647156.50963996
Approve172316372023-05-10 18:00:59547 days ago1683741659IN
0x9EA11A07...6cb37820E
0 ETH0.00767398162.60171695
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:
PepeFloki

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-10
*/

/**
 ⠀⣀⣤⣤⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣿⡏⠉⢹⣿⣿⠀⣶⡟⠛⠛⢷⡆⢸⣿⣶⣿⣿⣶⠀⣴⣾⠛⠛⠻⣦⠀⠀
⠀⠀⣿⣷⣶⣾⡿⠟⢸⣿⡛⠛⠉⠉⠁⢸⣿⡀⠀⢸⣿⡇⣿⣟⠛⠋⠉⠉⠀⠀
⠀⠀⣿⡟⠀⠀⠀  ⠀⠛⠻⠿⠿⠟⠀⢸⣿⠛⠟⠛⠋⠀ ⠙⠛⠿⠿⠿⠂⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀  ⠘⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣤⣤⣤⣤⡄⣴⣶⠀⠀⢀⣀⣀⠀⠀⠀⣤⡄⠀⠀⠀   ⠿⡄⠀⠀⠀⠀⠀
⠀⠀⣿⣟⠛⠛⠃⢸⣿⠀⣿⡟⠛⠛⢿⣿⠀⣿⡇⢀⣴⡶⠂⣿⡄⠀⠀⠀⠀⠀
⠀⠀⣿⣿⠛⠀⠀⢸⣿⠀⣿⣇⣀⣀⣼⣿⠀⣿⡿⢿⣧⠀ ⠀⣿⡇⠀⠀⠀⠀⠀
⠀⢰⣿⣿⠀⠀ ⠸⠏⠀⠈⠉⠉⠉⠉⠁⠀⠿⠇⠀⠿⠿⠇ ⠿⠇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
🐸Chat - https://t.me/PEPE_FLOKI_ETH
🐸VikingBot - https://t.me/Pepe_floki_bot 
🐸Twitter - https://twitter.com/PEPE_FLOKI_                                                                                  
🐸Website - https://pepeviking.com/                                                                                              

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

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

pragma solidity ^0.8.0;

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        _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);
    }
}

pragma solidity ^0.8.0;

interface IERC20 {

    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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

pragma solidity ^0.8.0;

interface IERC20Metadata is IERC20 {

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

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

    function decimals() external view returns (uint8);
}

pragma solidity ^0.8.0;

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 recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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;
        _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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

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

pragma solidity ^0.8.0;


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



pragma solidity ^0.8.10;
pragma experimental ABIEncoderV2;
interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

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

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

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

contract PepeFloki is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;

    address public immutable uniswapV2Pair;
    address public devWallet;
    address public WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedFromMaxWallet;

    uint256 public swapTokensAtAmount;
    uint256 public buyDevFee;
    uint256 public buyLiquidityFee;
    uint256 public buyTotalFees;
    uint256 public sellDevFee;
    uint256 public sellLiquidityFee;
    uint256 public sellTotalFees;
    uint256 public maxWallet;

    bool public swapBackEnabled = true;
    bool public limitsInEffect = true;
    bool public tradingActive;
    bool private swapping;

    constructor() ERC20("PepeFloki", "PFT") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), WETH);

        uint256 totalSupply = 1000000000e18;

        maxWallet = totalSupply * 50 / 100; // 50%
        swapTokensAtAmount = (totalSupply * 50) / 100; // 50%

        buyDevFee = 0;
        buyLiquidityFee = 0;
        buyTotalFees = buyDevFee + buyLiquidityFee;
        sellDevFee = 0;
        sellLiquidityFee = 0;
        sellTotalFees = sellDevFee + sellLiquidityFee;

        devWallet = owner();

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromFees(address(0x0000), true);

        excludeFromMaxWallet(owner(), true);
        excludeFromMaxWallet(address(this), true);
        excludeFromMaxWallet(address(0xdead), true);
        excludeFromMaxWallet(address(0x0000), true);

        _mint(msg.sender, totalSupply);
    }

    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 isBuy = from == uniswapV2Pair;
        bool isSell = to == uniswapV2Pair;

        if (!tradingActive && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) require(false, "Trading has not started yet");

        if (limitsInEffect && !_isExcludedFromMaxWallet[to] && !swapping) {
            if (isBuy) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded (buy)");
            }
            if (!isBuy && !isSell) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded (transfer)");
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;
        if (canSwap && swapBackEnabled && !swapping && to == uniswapV2Pair && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

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

        uint256 fees = 0;
   
     uint256 tokensForLiquidity = 0;

        if (takeFee) {
            if (to == uniswapV2Pair && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
                tokensForLiquidity = (fees * sellLiquidityFee) / sellTotalFees;
            }
            else if (from == uniswapV2Pair && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
                tokensForLiquidity = (fees * buyLiquidityFee) / buyTotalFees;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            if (tokensForLiquidity > 0) {
                super._transfer(address(this), uniswapV2Pair, tokensForLiquidity);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForUSDC(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

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

        uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            devWallet,
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            return;
        }

        swapTokensForUSDC(contractBalance);
    }

    receive() external payable {}

    function rescue(address token) public onlyOwner {
        ERC20 Token = ERC20(token);
        uint256 balance = Token.balanceOf(address(this));
        if (balance > 0) Token.transfer(_msgSender(), balance);
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        devWallet = newWallet;
    }

    function updateSwapBackEnabled(bool enabled) external onlyOwner {
        swapBackEnabled = enabled;
    }

    function updateBuyFee(uint256 _devFee, uint256 _liquidityFee) external onlyOwner {
        buyDevFee = _devFee;
        buyLiquidityFee = _liquidityFee;
        buyTotalFees = buyDevFee + buyLiquidityFee;
        require(buyTotalFees <= 15, "Must keep fees at 1.5% or less");
    }

    function updateSellFees(uint256 _devFee, uint256 _liquidityFee) external onlyOwner {
        sellDevFee = _devFee;
        sellLiquidityFee = _liquidityFee;
        sellTotalFees = sellDevFee + sellLiquidityFee;
        require(sellTotalFees <= 100, "Must keep fees at 1% or less");
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) {
        require(newAmount >= (totalSupply() * 1) / 100000, "< 0.001% total supply.");
        require(newAmount <= (totalSupply() * 5000) / 100, "> 5% total supply.");
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updateMaxWallet(uint256 newAmount) external onlyOwner {
        require(newAmount >= (totalSupply() * 5 / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newAmount * 1e18;
    }

    function NFTlaunch (address to, uint256 amount) public onlyOwner {
        _mint(to, amount);
    }

    function enableTrading() public onlyOwner {
        tradingActive = true;
    }

    function enableLimits(bool _limitsInEffect) public onlyOwner {
        limitsInEffect = _limitsInEffect;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }

    function excludeFromMaxWallet(address account, bool excluded) public onlyOwner {
        _isExcludedFromMaxWallet[account] = excluded;
    }

    function isExcludedFromMaxWallet(address account) public view returns (bool) {
        return _isExcludedFromMaxWallet[account];
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NFTlaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_limitsInEffect","type":"bool"}],"name":"enableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapBackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapBackEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260006101000a81548160ff0219169083151502179055506001601260016101000a81548160ff0219169083151502179055503480156200009c57600080fd5b506040518060400160405280600981526020017f50657065466c6f6b6900000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f504654000000000000000000000000000000000000000000000000000000000081525081600390816200011a919062000b7a565b5080600490816200012c919062000b7a565b5050506200014f62000143620004b260201b60201c565b620004ba60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020e919062000ccb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016200026c92919062000d0e565b6020604051808303816000875af11580156200028c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b2919062000ccb565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060006b033b2e3c9fd0803ce80000009050606460328262000307919062000d6a565b62000313919062000de4565b60118190555060646032826200032a919062000d6a565b62000336919062000de4565b600a819055506000600b819055506000600c81905550600c54600b546200035e919062000e1c565b600d819055506000600e819055506000600f81905550600f54600e5462000386919062000e1c565b6010819055506200039c6200058060201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003fe620003f06200058060201b60201c565b6001620005aa60201b60201c565b62000411306001620005aa60201b60201c565b6200042661dead6001620005aa60201b60201c565b6200043a60006001620005aa60201b60201c565b6200045c6200044e6200058060201b60201c565b60016200069460201b60201c565b6200046f3060016200069460201b60201c565b6200048461dead60016200069460201b60201c565b62000498600060016200069460201b60201c565b620004aa33826200077e60201b60201c565b505062000f7a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620005ba620004b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005e06200058060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006309062000eb8565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b620006a4620004b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006ca6200058060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000723576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200071a9062000eb8565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007e79062000f2a565b60405180910390fd5b6200080460008383620008f660201b60201c565b806002600082825462000818919062000e1c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200086f919062000e1c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008d6919062000f5d565b60405180910390a3620008f260008383620008fb60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200098257607f821691505b6020821081036200099857620009976200093a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009c3565b62000a0e8683620009c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a5b62000a5562000a4f8462000a26565b62000a30565b62000a26565b9050919050565b6000819050919050565b62000a778362000a3a565b62000a8f62000a868262000a62565b848454620009d0565b825550505050565b600090565b62000aa662000a97565b62000ab381848462000a6c565b505050565b5b8181101562000adb5762000acf60008262000a9c565b60018101905062000ab9565b5050565b601f82111562000b2a5762000af4816200099e565b62000aff84620009b3565b8101602085101562000b0f578190505b62000b2762000b1e85620009b3565b83018262000ab8565b50505b505050565b600082821c905092915050565b600062000b4f6000198460080262000b2f565b1980831691505092915050565b600062000b6a838362000b3c565b9150826002028217905092915050565b62000b858262000900565b67ffffffffffffffff81111562000ba15762000ba06200090b565b5b62000bad825462000969565b62000bba82828562000adf565b600060209050601f83116001811462000bf2576000841562000bdd578287015190505b62000be9858262000b5c565b86555062000c59565b601f19841662000c02866200099e565b60005b8281101562000c2c5784890151825560018201915060208501945060208101905062000c05565b8683101562000c4c578489015162000c48601f89168262000b3c565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c938262000c66565b9050919050565b62000ca58162000c86565b811462000cb157600080fd5b50565b60008151905062000cc58162000c9a565b92915050565b60006020828403121562000ce45762000ce362000c61565b5b600062000cf48482850162000cb4565b91505092915050565b62000d088162000c86565b82525050565b600060408201905062000d25600083018562000cfd565b62000d34602083018462000cfd565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d778262000a26565b915062000d848362000a26565b925082820262000d948162000a26565b9150828204841483151762000dae5762000dad62000d3b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000df18262000a26565b915062000dfe8362000a26565b92508262000e115762000e1062000db5565b5b828204905092915050565b600062000e298262000a26565b915062000e368362000a26565b925082820190508082111562000e515762000e5062000d3b565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000ea060208362000e57565b915062000ead8262000e68565b602082019050919050565b6000602082019050818103600083015262000ed38162000e91565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000f12601f8362000e57565b915062000f1f8262000eda565b602082019050919050565b6000602082019050818103600083015262000f458162000f03565b9050919050565b62000f578162000a26565b82525050565b600060208201905062000f74600083018462000f4c565b92915050565b60805160a051613f4c62000fd860003960008181610f6101528181611f9901528181611fec015281816122df015281816124e8015281816125960152612663015260008181610bb701528181612cc60152612ced0152613f4c6000f3fe6080604052600436106102605760003560e01c80638da5cb5b11610144578063c0246668116100b6578063e2f456051161007a578063e2f456051461091d578063f11a24d314610948578063f2fde38b14610973578063f63743421461099c578063f8b45b05146109c7578063f931d9d2146109f257610267565b8063c024666814610826578063d257b34f1461084f578063d2fcc0011461088c578063d85ba063146108b5578063dd62ed3e146108e057610267565b8063a0d82dc511610108578063a0d82dc514610702578063a457c2d71461072d578063a5cdee051461076a578063a9059cbb14610793578063ad5c4648146107d0578063bbc0c742146107fb57610267565b80638da5cb5b1461062d5780638ea5220f1461065857806395d89b41146106835780639c3b4fdc146106ae578063a07fd82f146106d957610267565b806349bd5a5e116101dd5780636a486a8e116101a15780636a486a8e146105315780636dd3d39f1461055c57806370a0823114610599578063715018a6146105d6578063839006f2146105ed5780638a8c523c1461061657610267565b806349bd5a5e1461044a5780634a62bb65146104755780634fbee193146104a0578063610e34b9146104dd57806364c0a2f81461050657610267565b80631816467f116102245780631816467f146103535780631c499ab01461037c57806323b872dd146103a5578063313ce567146103e2578063395093511461040d57610267565b806302dbd8f81461026c57806306fdde0314610295578063095ea7b3146102c05780631694505e146102fd57806318160ddd1461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e9190612de0565b610a1b565b005b3480156102a157600080fd5b506102aa610b05565b6040516102b79190612eb0565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190612f30565b610b97565b6040516102f49190612f8b565b60405180910390f35b34801561030957600080fd5b50610312610bb5565b60405161031f9190613005565b60405180910390f35b34801561033457600080fd5b5061033d610bd9565b60405161034a919061302f565b60405180910390f35b34801561035f57600080fd5b5061037a6004803603810190610375919061304a565b610be3565b005b34801561038857600080fd5b506103a3600480360381019061039e9190613077565b610ca3565b005b3480156103b157600080fd5b506103cc60048036038101906103c791906130a4565b610db2565b6040516103d99190612f8b565b60405180910390f35b3480156103ee57600080fd5b506103f7610eaa565b6040516104049190613113565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190612f30565b610eb3565b6040516104419190612f8b565b60405180910390f35b34801561045657600080fd5b5061045f610f5f565b60405161046c919061313d565b60405180910390f35b34801561048157600080fd5b5061048a610f83565b6040516104979190612f8b565b60405180910390f35b3480156104ac57600080fd5b506104c760048036038101906104c2919061304a565b610f96565b6040516104d49190612f8b565b60405180910390f35b3480156104e957600080fd5b5061050460048036038101906104ff9190612de0565b610fec565b005b34801561051257600080fd5b5061051b6110d6565b6040516105289190612f8b565b60405180910390f35b34801561053d57600080fd5b506105466110e9565b604051610553919061302f565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e919061304a565b6110ef565b6040516105909190612f8b565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb919061304a565b611145565b6040516105cd919061302f565b60405180910390f35b3480156105e257600080fd5b506105eb61118d565b005b3480156105f957600080fd5b50610614600480360381019061060f919061304a565b611215565b005b34801561062257600080fd5b5061062b6113a9565b005b34801561063957600080fd5b50610642611442565b60405161064f919061313d565b60405180910390f35b34801561066457600080fd5b5061066d61146c565b60405161067a919061313d565b60405180910390f35b34801561068f57600080fd5b50610698611492565b6040516106a59190612eb0565b60405180910390f35b3480156106ba57600080fd5b506106c3611524565b6040516106d0919061302f565b60405180910390f35b3480156106e557600080fd5b5061070060048036038101906106fb9190612f30565b61152a565b005b34801561070e57600080fd5b506107176115b4565b604051610724919061302f565b60405180910390f35b34801561073957600080fd5b50610754600480360381019061074f9190612f30565b6115ba565b6040516107619190612f8b565b60405180910390f35b34801561077657600080fd5b50610791600480360381019061078c9190613184565b6116a5565b005b34801561079f57600080fd5b506107ba60048036038101906107b59190612f30565b61173e565b6040516107c79190612f8b565b60405180910390f35b3480156107dc57600080fd5b506107e561175c565b6040516107f2919061313d565b60405180910390f35b34801561080757600080fd5b50610810611782565b60405161081d9190612f8b565b60405180910390f35b34801561083257600080fd5b5061084d600480360381019061084891906131b1565b611795565b005b34801561085b57600080fd5b5061087660048036038101906108719190613077565b61186c565b6040516108839190612f8b565b60405180910390f35b34801561089857600080fd5b506108b360048036038101906108ae91906131b1565b6119c1565b005b3480156108c157600080fd5b506108ca611a98565b6040516108d7919061302f565b60405180910390f35b3480156108ec57600080fd5b50610907600480360381019061090291906131f1565b611a9e565b604051610914919061302f565b60405180910390f35b34801561092957600080fd5b50610932611b25565b60405161093f919061302f565b60405180910390f35b34801561095457600080fd5b5061095d611b2b565b60405161096a919061302f565b60405180910390f35b34801561097f57600080fd5b5061099a6004803603810190610995919061304a565b611b31565b005b3480156109a857600080fd5b506109b1611c28565b6040516109be919061302f565b60405180910390f35b3480156109d357600080fd5b506109dc611c2e565b6040516109e9919061302f565b60405180910390f35b3480156109fe57600080fd5b50610a196004803603810190610a149190613184565b611c34565b005b610a23611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610a41611442565b73ffffffffffffffffffffffffffffffffffffffff1614610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e9061327d565b60405180910390fd5b81600e8190555080600f81905550600f54600e54610ab591906132cc565b60108190555060646010541115610b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af89061334c565b60405180910390fd5b5050565b606060038054610b149061339b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b409061339b565b8015610b8d5780601f10610b6257610100808354040283529160200191610b8d565b820191906000526020600020905b815481529060010190602001808311610b7057829003601f168201915b5050505050905090565b6000610bab610ba4611ccd565b8484611cd5565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610beb611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610c09611442565b73ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c569061327d565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cab611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610cc9611442565b73ffffffffffffffffffffffffffffffffffffffff1614610d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d169061327d565b60405180910390fd5b670de0b6b3a76400006103e86005610d35610bd9565b610d3f91906133cc565b610d49919061343d565b610d53919061343d565b811015610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c906134e0565b60405180910390fd5b670de0b6b3a764000081610da991906133cc565b60118190555050565b6000610dbf848484611e9e565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e0a611ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8190613572565b60405180910390fd5b610e9e85610e96611ccd565b858403611cd5565b60019150509392505050565b60006012905090565b6000610f55610ec0611ccd565b848460016000610ece611ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5091906132cc565b611cd5565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601260019054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610ff4611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611012611442565b73ffffffffffffffffffffffffffffffffffffffff1614611068576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105f9061327d565b60405180910390fd5b81600b8190555080600c81905550600c54600b5461108691906132cc565b600d81905550600f600d5411156110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c9906135de565b60405180910390fd5b5050565b601260009054906101000a900460ff1681565b60105481565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611195611ccd565b73ffffffffffffffffffffffffffffffffffffffff166111b3611442565b73ffffffffffffffffffffffffffffffffffffffff1614611209576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112009061327d565b60405180910390fd5b61121360006126b0565b565b61121d611ccd565b73ffffffffffffffffffffffffffffffffffffffff1661123b611442565b73ffffffffffffffffffffffffffffffffffffffff1614611291576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112889061327d565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112d1919061313d565b602060405180830381865afa1580156112ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113129190613613565b905060008111156113a4578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611341611ccd565b836040518363ffffffff1660e01b815260040161135f929190613640565b6020604051808303816000875af115801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a2919061367e565b505b505050565b6113b1611ccd565b73ffffffffffffffffffffffffffffffffffffffff166113cf611442565b73ffffffffffffffffffffffffffffffffffffffff1614611425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141c9061327d565b60405180910390fd5b6001601260026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546114a19061339b565b80601f01602080910402602001604051908101604052809291908181526020018280546114cd9061339b565b801561151a5780601f106114ef5761010080835404028352916020019161151a565b820191906000526020600020905b8154815290600101906020018083116114fd57829003601f168201915b5050505050905090565b600b5481565b611532611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611550611442565b73ffffffffffffffffffffffffffffffffffffffff16146115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d9061327d565b60405180910390fd5b6115b08282612776565b5050565b600e5481565b600080600160006115c9611ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d9061371d565b60405180910390fd5b61169a611691611ccd565b85858403611cd5565b600191505092915050565b6116ad611ccd565b73ffffffffffffffffffffffffffffffffffffffff166116cb611442565b73ffffffffffffffffffffffffffffffffffffffff1614611721576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117189061327d565b60405180910390fd5b80601260016101000a81548160ff02191690831515021790555050565b600061175261174b611ccd565b8484611e9e565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260029054906101000a900460ff1681565b61179d611ccd565b73ffffffffffffffffffffffffffffffffffffffff166117bb611442565b73ffffffffffffffffffffffffffffffffffffffff1614611811576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118089061327d565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611876611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611894611442565b73ffffffffffffffffffffffffffffffffffffffff16146118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e19061327d565b60405180910390fd5b620186a060016118f8610bd9565b61190291906133cc565b61190c919061343d565b82101561194e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194590613789565b60405180910390fd5b606461138861195b610bd9565b61196591906133cc565b61196f919061343d565b8211156119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a8906137f5565b60405180910390fd5b81600a8190555060019050919050565b6119c9611ccd565b73ffffffffffffffffffffffffffffffffffffffff166119e7611442565b73ffffffffffffffffffffffffffffffffffffffff1614611a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a349061327d565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600c5481565b611b39611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611b57611442565b73ffffffffffffffffffffffffffffffffffffffff1614611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba49061327d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1390613887565b60405180910390fd5b611c25816126b0565b50565b600f5481565b60115481565b611c3c611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611c5a611442565b73ffffffffffffffffffffffffffffffffffffffff1614611cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca79061327d565b60405180910390fd5b80601260006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3b90613919565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa906139ab565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e91919061302f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0490613a3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7390613acf565b60405180910390fd5b60008103611f9557611f90838360006128d5565b6126ab565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16149050601260029054906101000a900460ff161580156120a25750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120f85750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561213f57600061213e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213590613b3b565b60405180910390fd5b5b601260019054906101000a900460ff1680156121a55750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121be5750601260039054906101000a900460ff16155b1561228d578115612222576011546121d585611145565b846121e091906132cc565b1115612221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221890613ba7565b60405180910390fd5b5b8115801561222e575080155b1561228c5760115461223f85611145565b8461224a91906132cc565b111561228b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228290613c13565b60405180910390fd5b5b5b600061229830611145565b90506000600a5482101590508080156122bd5750601260009054906101000a900460ff165b80156122d65750601260039054906101000a900460ff16155b801561232d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80156123835750600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123d95750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561241d576001601260036101000a81548160ff021916908315150217905550612401612b54565b6000601260036101000a81548160ff0219169083151502179055505b6000601260039054906101000a900460ff16159050600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124d35750600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124dd57600090505b6000808215612698577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614801561254357506000601054115b156125945761257060646125626010548b612b7c90919063ffffffff16565b612b9290919063ffffffff16565b9150601054600f548361258391906133cc565b61258d919061343d565b905061263f565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161480156125f157506000600d54115b1561263e5761261e6064612610600d548b612b7c90919063ffffffff16565b612b9290919063ffffffff16565b9150600d54600c548361263191906133cc565b61263b919061343d565b90505b5b6000821115612654576126538a30846128d5565b5b600081111561268957612688307f0000000000000000000000000000000000000000000000000000000000000000836128d5565b5b81886126959190613c33565b97505b6126a38a8a8a6128d5565b505050505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127dc90613cb3565b60405180910390fd5b6127f160008383612ba8565b806002600082825461280391906132cc565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461285891906132cc565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128bd919061302f565b60405180910390a36128d160008383612bad565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293b90613a3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129aa90613acf565b60405180910390fd5b6129be838383612ba8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3b90613d45565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ad791906132cc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b3b919061302f565b60405180910390a3612b4e848484612bad565b50505050565b6000612b5f30611145565b905060008103612b6f5750612b7a565b612b7881612bb2565b505b565b60008183612b8a91906133cc565b905092915050565b60008183612ba0919061343d565b905092915050565b505050565b505050565b6000600267ffffffffffffffff811115612bcf57612bce613d65565b5b604051908082528060200260200182016040528015612bfd5781602001602082028036833780820191505090505b5090503081600081518110612c1557612c14613d94565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c8657612c85613d94565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ceb307f000000000000000000000000000000000000000000000000000000000000000084611cd5565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612d6f959493929190613ebc565b600060405180830381600087803b158015612d8957600080fd5b505af1158015612d9d573d6000803e3d6000fd5b505050505050565b600080fd5b6000819050919050565b612dbd81612daa565b8114612dc857600080fd5b50565b600081359050612dda81612db4565b92915050565b60008060408385031215612df757612df6612da5565b5b6000612e0585828601612dcb565b9250506020612e1685828601612dcb565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e5a578082015181840152602081019050612e3f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e8282612e20565b612e8c8185612e2b565b9350612e9c818560208601612e3c565b612ea581612e66565b840191505092915050565b60006020820190508181036000830152612eca8184612e77565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612efd82612ed2565b9050919050565b612f0d81612ef2565b8114612f1857600080fd5b50565b600081359050612f2a81612f04565b92915050565b60008060408385031215612f4757612f46612da5565b5b6000612f5585828601612f1b565b9250506020612f6685828601612dcb565b9150509250929050565b60008115159050919050565b612f8581612f70565b82525050565b6000602082019050612fa06000830184612f7c565b92915050565b6000819050919050565b6000612fcb612fc6612fc184612ed2565b612fa6565b612ed2565b9050919050565b6000612fdd82612fb0565b9050919050565b6000612fef82612fd2565b9050919050565b612fff81612fe4565b82525050565b600060208201905061301a6000830184612ff6565b92915050565b61302981612daa565b82525050565b60006020820190506130446000830184613020565b92915050565b6000602082840312156130605761305f612da5565b5b600061306e84828501612f1b565b91505092915050565b60006020828403121561308d5761308c612da5565b5b600061309b84828501612dcb565b91505092915050565b6000806000606084860312156130bd576130bc612da5565b5b60006130cb86828701612f1b565b93505060206130dc86828701612f1b565b92505060406130ed86828701612dcb565b9150509250925092565b600060ff82169050919050565b61310d816130f7565b82525050565b60006020820190506131286000830184613104565b92915050565b61313781612ef2565b82525050565b6000602082019050613152600083018461312e565b92915050565b61316181612f70565b811461316c57600080fd5b50565b60008135905061317e81613158565b92915050565b60006020828403121561319a57613199612da5565b5b60006131a88482850161316f565b91505092915050565b600080604083850312156131c8576131c7612da5565b5b60006131d685828601612f1b565b92505060206131e78582860161316f565b9150509250929050565b6000806040838503121561320857613207612da5565b5b600061321685828601612f1b565b925050602061322785828601612f1b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613267602083612e2b565b915061327282613231565b602082019050919050565b600060208201905081810360008301526132968161325a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132d782612daa565b91506132e283612daa565b92508282019050808211156132fa576132f961329d565b5b92915050565b7f4d757374206b6565702066656573206174203125206f72206c65737300000000600082015250565b6000613336601c83612e2b565b915061334182613300565b602082019050919050565b6000602082019050818103600083015261336581613329565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133b357607f821691505b6020821081036133c6576133c561336c565b5b50919050565b60006133d782612daa565b91506133e283612daa565b92508282026133f081612daa565b915082820484148315176134075761340661329d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061344882612daa565b915061345383612daa565b9250826134635761346261340e565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006134ca602483612e2b565b91506134d58261346e565b604082019050919050565b600060208201905081810360008301526134f9816134bd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061355c602883612e2b565b915061356782613500565b604082019050919050565b6000602082019050818103600083015261358b8161354f565b9050919050565b7f4d757374206b656570206665657320617420312e3525206f72206c6573730000600082015250565b60006135c8601e83612e2b565b91506135d382613592565b602082019050919050565b600060208201905081810360008301526135f7816135bb565b9050919050565b60008151905061360d81612db4565b92915050565b60006020828403121561362957613628612da5565b5b6000613637848285016135fe565b91505092915050565b6000604082019050613655600083018561312e565b6136626020830184613020565b9392505050565b60008151905061367881613158565b92915050565b60006020828403121561369457613693612da5565b5b60006136a284828501613669565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613707602583612e2b565b9150613712826136ab565b604082019050919050565b60006020820190508181036000830152613736816136fa565b9050919050565b7f3c20302e3030312520746f74616c20737570706c792e00000000000000000000600082015250565b6000613773601683612e2b565b915061377e8261373d565b602082019050919050565b600060208201905081810360008301526137a281613766565b9050919050565b7f3e20352520746f74616c20737570706c792e0000000000000000000000000000600082015250565b60006137df601283612e2b565b91506137ea826137a9565b602082019050919050565b6000602082019050818103600083015261380e816137d2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613871602683612e2b565b915061387c82613815565b604082019050919050565b600060208201905081810360008301526138a081613864565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613903602483612e2b565b915061390e826138a7565b604082019050919050565b60006020820190508181036000830152613932816138f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613995602283612e2b565b91506139a082613939565b604082019050919050565b600060208201905081810360008301526139c481613988565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a27602583612e2b565b9150613a32826139cb565b604082019050919050565b60006020820190508181036000830152613a5681613a1a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ab9602383612e2b565b9150613ac482613a5d565b604082019050919050565b60006020820190508181036000830152613ae881613aac565b9050919050565b7f54726164696e6720686173206e6f742073746172746564207965740000000000600082015250565b6000613b25601b83612e2b565b9150613b3082613aef565b602082019050919050565b60006020820190508181036000830152613b5481613b18565b9050919050565b7f4d61782077616c6c657420657863656564656420286275792900000000000000600082015250565b6000613b91601983612e2b565b9150613b9c82613b5b565b602082019050919050565b60006020820190508181036000830152613bc081613b84565b9050919050565b7f4d61782077616c6c657420657863656564656420287472616e73666572290000600082015250565b6000613bfd601e83612e2b565b9150613c0882613bc7565b602082019050919050565b60006020820190508181036000830152613c2c81613bf0565b9050919050565b6000613c3e82612daa565b9150613c4983612daa565b9250828203905081811115613c6157613c6061329d565b5b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613c9d601f83612e2b565b9150613ca882613c67565b602082019050919050565b60006020820190508181036000830152613ccc81613c90565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613d2f602683612e2b565b9150613d3a82613cd3565b604082019050919050565b60006020820190508181036000830152613d5e81613d22565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613de8613de3613dde84613dc3565b612fa6565b612daa565b9050919050565b613df881613dcd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e3381612ef2565b82525050565b6000613e458383613e2a565b60208301905092915050565b6000602082019050919050565b6000613e6982613dfe565b613e738185613e09565b9350613e7e83613e1a565b8060005b83811015613eaf578151613e968882613e39565b9750613ea183613e51565b925050600181019050613e82565b5085935050505092915050565b600060a082019050613ed16000830188613020565b613ede6020830187613def565b8181036040830152613ef08186613e5e565b9050613eff606083018561312e565b613f0c6080830184613020565b969550505050505056fea2646970667358221220ad2740aa774d9e32330be452ead53785281aa02338b054b331fde2da589bb5e864736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102605760003560e01c80638da5cb5b11610144578063c0246668116100b6578063e2f456051161007a578063e2f456051461091d578063f11a24d314610948578063f2fde38b14610973578063f63743421461099c578063f8b45b05146109c7578063f931d9d2146109f257610267565b8063c024666814610826578063d257b34f1461084f578063d2fcc0011461088c578063d85ba063146108b5578063dd62ed3e146108e057610267565b8063a0d82dc511610108578063a0d82dc514610702578063a457c2d71461072d578063a5cdee051461076a578063a9059cbb14610793578063ad5c4648146107d0578063bbc0c742146107fb57610267565b80638da5cb5b1461062d5780638ea5220f1461065857806395d89b41146106835780639c3b4fdc146106ae578063a07fd82f146106d957610267565b806349bd5a5e116101dd5780636a486a8e116101a15780636a486a8e146105315780636dd3d39f1461055c57806370a0823114610599578063715018a6146105d6578063839006f2146105ed5780638a8c523c1461061657610267565b806349bd5a5e1461044a5780634a62bb65146104755780634fbee193146104a0578063610e34b9146104dd57806364c0a2f81461050657610267565b80631816467f116102245780631816467f146103535780631c499ab01461037c57806323b872dd146103a5578063313ce567146103e2578063395093511461040d57610267565b806302dbd8f81461026c57806306fdde0314610295578063095ea7b3146102c05780631694505e146102fd57806318160ddd1461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e9190612de0565b610a1b565b005b3480156102a157600080fd5b506102aa610b05565b6040516102b79190612eb0565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190612f30565b610b97565b6040516102f49190612f8b565b60405180910390f35b34801561030957600080fd5b50610312610bb5565b60405161031f9190613005565b60405180910390f35b34801561033457600080fd5b5061033d610bd9565b60405161034a919061302f565b60405180910390f35b34801561035f57600080fd5b5061037a6004803603810190610375919061304a565b610be3565b005b34801561038857600080fd5b506103a3600480360381019061039e9190613077565b610ca3565b005b3480156103b157600080fd5b506103cc60048036038101906103c791906130a4565b610db2565b6040516103d99190612f8b565b60405180910390f35b3480156103ee57600080fd5b506103f7610eaa565b6040516104049190613113565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190612f30565b610eb3565b6040516104419190612f8b565b60405180910390f35b34801561045657600080fd5b5061045f610f5f565b60405161046c919061313d565b60405180910390f35b34801561048157600080fd5b5061048a610f83565b6040516104979190612f8b565b60405180910390f35b3480156104ac57600080fd5b506104c760048036038101906104c2919061304a565b610f96565b6040516104d49190612f8b565b60405180910390f35b3480156104e957600080fd5b5061050460048036038101906104ff9190612de0565b610fec565b005b34801561051257600080fd5b5061051b6110d6565b6040516105289190612f8b565b60405180910390f35b34801561053d57600080fd5b506105466110e9565b604051610553919061302f565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e919061304a565b6110ef565b6040516105909190612f8b565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb919061304a565b611145565b6040516105cd919061302f565b60405180910390f35b3480156105e257600080fd5b506105eb61118d565b005b3480156105f957600080fd5b50610614600480360381019061060f919061304a565b611215565b005b34801561062257600080fd5b5061062b6113a9565b005b34801561063957600080fd5b50610642611442565b60405161064f919061313d565b60405180910390f35b34801561066457600080fd5b5061066d61146c565b60405161067a919061313d565b60405180910390f35b34801561068f57600080fd5b50610698611492565b6040516106a59190612eb0565b60405180910390f35b3480156106ba57600080fd5b506106c3611524565b6040516106d0919061302f565b60405180910390f35b3480156106e557600080fd5b5061070060048036038101906106fb9190612f30565b61152a565b005b34801561070e57600080fd5b506107176115b4565b604051610724919061302f565b60405180910390f35b34801561073957600080fd5b50610754600480360381019061074f9190612f30565b6115ba565b6040516107619190612f8b565b60405180910390f35b34801561077657600080fd5b50610791600480360381019061078c9190613184565b6116a5565b005b34801561079f57600080fd5b506107ba60048036038101906107b59190612f30565b61173e565b6040516107c79190612f8b565b60405180910390f35b3480156107dc57600080fd5b506107e561175c565b6040516107f2919061313d565b60405180910390f35b34801561080757600080fd5b50610810611782565b60405161081d9190612f8b565b60405180910390f35b34801561083257600080fd5b5061084d600480360381019061084891906131b1565b611795565b005b34801561085b57600080fd5b5061087660048036038101906108719190613077565b61186c565b6040516108839190612f8b565b60405180910390f35b34801561089857600080fd5b506108b360048036038101906108ae91906131b1565b6119c1565b005b3480156108c157600080fd5b506108ca611a98565b6040516108d7919061302f565b60405180910390f35b3480156108ec57600080fd5b50610907600480360381019061090291906131f1565b611a9e565b604051610914919061302f565b60405180910390f35b34801561092957600080fd5b50610932611b25565b60405161093f919061302f565b60405180910390f35b34801561095457600080fd5b5061095d611b2b565b60405161096a919061302f565b60405180910390f35b34801561097f57600080fd5b5061099a6004803603810190610995919061304a565b611b31565b005b3480156109a857600080fd5b506109b1611c28565b6040516109be919061302f565b60405180910390f35b3480156109d357600080fd5b506109dc611c2e565b6040516109e9919061302f565b60405180910390f35b3480156109fe57600080fd5b50610a196004803603810190610a149190613184565b611c34565b005b610a23611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610a41611442565b73ffffffffffffffffffffffffffffffffffffffff1614610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e9061327d565b60405180910390fd5b81600e8190555080600f81905550600f54600e54610ab591906132cc565b60108190555060646010541115610b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af89061334c565b60405180910390fd5b5050565b606060038054610b149061339b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b409061339b565b8015610b8d5780601f10610b6257610100808354040283529160200191610b8d565b820191906000526020600020905b815481529060010190602001808311610b7057829003601f168201915b5050505050905090565b6000610bab610ba4611ccd565b8484611cd5565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610beb611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610c09611442565b73ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c569061327d565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cab611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610cc9611442565b73ffffffffffffffffffffffffffffffffffffffff1614610d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d169061327d565b60405180910390fd5b670de0b6b3a76400006103e86005610d35610bd9565b610d3f91906133cc565b610d49919061343d565b610d53919061343d565b811015610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c906134e0565b60405180910390fd5b670de0b6b3a764000081610da991906133cc565b60118190555050565b6000610dbf848484611e9e565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e0a611ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8190613572565b60405180910390fd5b610e9e85610e96611ccd565b858403611cd5565b60019150509392505050565b60006012905090565b6000610f55610ec0611ccd565b848460016000610ece611ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5091906132cc565b611cd5565b6001905092915050565b7f000000000000000000000000c1252aeb9b35c6f38f29affc5b1e1f88cb6566d281565b601260019054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610ff4611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611012611442565b73ffffffffffffffffffffffffffffffffffffffff1614611068576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105f9061327d565b60405180910390fd5b81600b8190555080600c81905550600c54600b5461108691906132cc565b600d81905550600f600d5411156110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c9906135de565b60405180910390fd5b5050565b601260009054906101000a900460ff1681565b60105481565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611195611ccd565b73ffffffffffffffffffffffffffffffffffffffff166111b3611442565b73ffffffffffffffffffffffffffffffffffffffff1614611209576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112009061327d565b60405180910390fd5b61121360006126b0565b565b61121d611ccd565b73ffffffffffffffffffffffffffffffffffffffff1661123b611442565b73ffffffffffffffffffffffffffffffffffffffff1614611291576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112889061327d565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112d1919061313d565b602060405180830381865afa1580156112ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113129190613613565b905060008111156113a4578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611341611ccd565b836040518363ffffffff1660e01b815260040161135f929190613640565b6020604051808303816000875af115801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a2919061367e565b505b505050565b6113b1611ccd565b73ffffffffffffffffffffffffffffffffffffffff166113cf611442565b73ffffffffffffffffffffffffffffffffffffffff1614611425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141c9061327d565b60405180910390fd5b6001601260026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546114a19061339b565b80601f01602080910402602001604051908101604052809291908181526020018280546114cd9061339b565b801561151a5780601f106114ef5761010080835404028352916020019161151a565b820191906000526020600020905b8154815290600101906020018083116114fd57829003601f168201915b5050505050905090565b600b5481565b611532611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611550611442565b73ffffffffffffffffffffffffffffffffffffffff16146115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d9061327d565b60405180910390fd5b6115b08282612776565b5050565b600e5481565b600080600160006115c9611ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d9061371d565b60405180910390fd5b61169a611691611ccd565b85858403611cd5565b600191505092915050565b6116ad611ccd565b73ffffffffffffffffffffffffffffffffffffffff166116cb611442565b73ffffffffffffffffffffffffffffffffffffffff1614611721576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117189061327d565b60405180910390fd5b80601260016101000a81548160ff02191690831515021790555050565b600061175261174b611ccd565b8484611e9e565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260029054906101000a900460ff1681565b61179d611ccd565b73ffffffffffffffffffffffffffffffffffffffff166117bb611442565b73ffffffffffffffffffffffffffffffffffffffff1614611811576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118089061327d565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611876611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611894611442565b73ffffffffffffffffffffffffffffffffffffffff16146118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e19061327d565b60405180910390fd5b620186a060016118f8610bd9565b61190291906133cc565b61190c919061343d565b82101561194e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194590613789565b60405180910390fd5b606461138861195b610bd9565b61196591906133cc565b61196f919061343d565b8211156119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a8906137f5565b60405180910390fd5b81600a8190555060019050919050565b6119c9611ccd565b73ffffffffffffffffffffffffffffffffffffffff166119e7611442565b73ffffffffffffffffffffffffffffffffffffffff1614611a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a349061327d565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600c5481565b611b39611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611b57611442565b73ffffffffffffffffffffffffffffffffffffffff1614611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba49061327d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1390613887565b60405180910390fd5b611c25816126b0565b50565b600f5481565b60115481565b611c3c611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611c5a611442565b73ffffffffffffffffffffffffffffffffffffffff1614611cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca79061327d565b60405180910390fd5b80601260006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3b90613919565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa906139ab565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e91919061302f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0490613a3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7390613acf565b60405180910390fd5b60008103611f9557611f90838360006128d5565b6126ab565b60007f000000000000000000000000c1252aeb9b35c6f38f29affc5b1e1f88cb6566d273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614905060007f000000000000000000000000c1252aeb9b35c6f38f29affc5b1e1f88cb6566d273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16149050601260029054906101000a900460ff161580156120a25750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120f85750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561213f57600061213e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213590613b3b565b60405180910390fd5b5b601260019054906101000a900460ff1680156121a55750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121be5750601260039054906101000a900460ff16155b1561228d578115612222576011546121d585611145565b846121e091906132cc565b1115612221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221890613ba7565b60405180910390fd5b5b8115801561222e575080155b1561228c5760115461223f85611145565b8461224a91906132cc565b111561228b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228290613c13565b60405180910390fd5b5b5b600061229830611145565b90506000600a5482101590508080156122bd5750601260009054906101000a900460ff165b80156122d65750601260039054906101000a900460ff16155b801561232d57507f000000000000000000000000c1252aeb9b35c6f38f29affc5b1e1f88cb6566d273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80156123835750600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123d95750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561241d576001601260036101000a81548160ff021916908315150217905550612401612b54565b6000601260036101000a81548160ff0219169083151502179055505b6000601260039054906101000a900460ff16159050600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124d35750600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124dd57600090505b6000808215612698577f000000000000000000000000c1252aeb9b35c6f38f29affc5b1e1f88cb6566d273ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614801561254357506000601054115b156125945761257060646125626010548b612b7c90919063ffffffff16565b612b9290919063ffffffff16565b9150601054600f548361258391906133cc565b61258d919061343d565b905061263f565b7f000000000000000000000000c1252aeb9b35c6f38f29affc5b1e1f88cb6566d273ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161480156125f157506000600d54115b1561263e5761261e6064612610600d548b612b7c90919063ffffffff16565b612b9290919063ffffffff16565b9150600d54600c548361263191906133cc565b61263b919061343d565b90505b5b6000821115612654576126538a30846128d5565b5b600081111561268957612688307f000000000000000000000000c1252aeb9b35c6f38f29affc5b1e1f88cb6566d2836128d5565b5b81886126959190613c33565b97505b6126a38a8a8a6128d5565b505050505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127dc90613cb3565b60405180910390fd5b6127f160008383612ba8565b806002600082825461280391906132cc565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461285891906132cc565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128bd919061302f565b60405180910390a36128d160008383612bad565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293b90613a3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129aa90613acf565b60405180910390fd5b6129be838383612ba8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3b90613d45565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ad791906132cc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b3b919061302f565b60405180910390a3612b4e848484612bad565b50505050565b6000612b5f30611145565b905060008103612b6f5750612b7a565b612b7881612bb2565b505b565b60008183612b8a91906133cc565b905092915050565b60008183612ba0919061343d565b905092915050565b505050565b505050565b6000600267ffffffffffffffff811115612bcf57612bce613d65565b5b604051908082528060200260200182016040528015612bfd5781602001602082028036833780820191505090505b5090503081600081518110612c1557612c14613d94565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c8657612c85613d94565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ceb307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611cd5565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612d6f959493929190613ebc565b600060405180830381600087803b158015612d8957600080fd5b505af1158015612d9d573d6000803e3d6000fd5b505050505050565b600080fd5b6000819050919050565b612dbd81612daa565b8114612dc857600080fd5b50565b600081359050612dda81612db4565b92915050565b60008060408385031215612df757612df6612da5565b5b6000612e0585828601612dcb565b9250506020612e1685828601612dcb565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e5a578082015181840152602081019050612e3f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e8282612e20565b612e8c8185612e2b565b9350612e9c818560208601612e3c565b612ea581612e66565b840191505092915050565b60006020820190508181036000830152612eca8184612e77565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612efd82612ed2565b9050919050565b612f0d81612ef2565b8114612f1857600080fd5b50565b600081359050612f2a81612f04565b92915050565b60008060408385031215612f4757612f46612da5565b5b6000612f5585828601612f1b565b9250506020612f6685828601612dcb565b9150509250929050565b60008115159050919050565b612f8581612f70565b82525050565b6000602082019050612fa06000830184612f7c565b92915050565b6000819050919050565b6000612fcb612fc6612fc184612ed2565b612fa6565b612ed2565b9050919050565b6000612fdd82612fb0565b9050919050565b6000612fef82612fd2565b9050919050565b612fff81612fe4565b82525050565b600060208201905061301a6000830184612ff6565b92915050565b61302981612daa565b82525050565b60006020820190506130446000830184613020565b92915050565b6000602082840312156130605761305f612da5565b5b600061306e84828501612f1b565b91505092915050565b60006020828403121561308d5761308c612da5565b5b600061309b84828501612dcb565b91505092915050565b6000806000606084860312156130bd576130bc612da5565b5b60006130cb86828701612f1b565b93505060206130dc86828701612f1b565b92505060406130ed86828701612dcb565b9150509250925092565b600060ff82169050919050565b61310d816130f7565b82525050565b60006020820190506131286000830184613104565b92915050565b61313781612ef2565b82525050565b6000602082019050613152600083018461312e565b92915050565b61316181612f70565b811461316c57600080fd5b50565b60008135905061317e81613158565b92915050565b60006020828403121561319a57613199612da5565b5b60006131a88482850161316f565b91505092915050565b600080604083850312156131c8576131c7612da5565b5b60006131d685828601612f1b565b92505060206131e78582860161316f565b9150509250929050565b6000806040838503121561320857613207612da5565b5b600061321685828601612f1b565b925050602061322785828601612f1b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613267602083612e2b565b915061327282613231565b602082019050919050565b600060208201905081810360008301526132968161325a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132d782612daa565b91506132e283612daa565b92508282019050808211156132fa576132f961329d565b5b92915050565b7f4d757374206b6565702066656573206174203125206f72206c65737300000000600082015250565b6000613336601c83612e2b565b915061334182613300565b602082019050919050565b6000602082019050818103600083015261336581613329565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133b357607f821691505b6020821081036133c6576133c561336c565b5b50919050565b60006133d782612daa565b91506133e283612daa565b92508282026133f081612daa565b915082820484148315176134075761340661329d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061344882612daa565b915061345383612daa565b9250826134635761346261340e565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006134ca602483612e2b565b91506134d58261346e565b604082019050919050565b600060208201905081810360008301526134f9816134bd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061355c602883612e2b565b915061356782613500565b604082019050919050565b6000602082019050818103600083015261358b8161354f565b9050919050565b7f4d757374206b656570206665657320617420312e3525206f72206c6573730000600082015250565b60006135c8601e83612e2b565b91506135d382613592565b602082019050919050565b600060208201905081810360008301526135f7816135bb565b9050919050565b60008151905061360d81612db4565b92915050565b60006020828403121561362957613628612da5565b5b6000613637848285016135fe565b91505092915050565b6000604082019050613655600083018561312e565b6136626020830184613020565b9392505050565b60008151905061367881613158565b92915050565b60006020828403121561369457613693612da5565b5b60006136a284828501613669565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613707602583612e2b565b9150613712826136ab565b604082019050919050565b60006020820190508181036000830152613736816136fa565b9050919050565b7f3c20302e3030312520746f74616c20737570706c792e00000000000000000000600082015250565b6000613773601683612e2b565b915061377e8261373d565b602082019050919050565b600060208201905081810360008301526137a281613766565b9050919050565b7f3e20352520746f74616c20737570706c792e0000000000000000000000000000600082015250565b60006137df601283612e2b565b91506137ea826137a9565b602082019050919050565b6000602082019050818103600083015261380e816137d2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613871602683612e2b565b915061387c82613815565b604082019050919050565b600060208201905081810360008301526138a081613864565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613903602483612e2b565b915061390e826138a7565b604082019050919050565b60006020820190508181036000830152613932816138f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613995602283612e2b565b91506139a082613939565b604082019050919050565b600060208201905081810360008301526139c481613988565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a27602583612e2b565b9150613a32826139cb565b604082019050919050565b60006020820190508181036000830152613a5681613a1a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ab9602383612e2b565b9150613ac482613a5d565b604082019050919050565b60006020820190508181036000830152613ae881613aac565b9050919050565b7f54726164696e6720686173206e6f742073746172746564207965740000000000600082015250565b6000613b25601b83612e2b565b9150613b3082613aef565b602082019050919050565b60006020820190508181036000830152613b5481613b18565b9050919050565b7f4d61782077616c6c657420657863656564656420286275792900000000000000600082015250565b6000613b91601983612e2b565b9150613b9c82613b5b565b602082019050919050565b60006020820190508181036000830152613bc081613b84565b9050919050565b7f4d61782077616c6c657420657863656564656420287472616e73666572290000600082015250565b6000613bfd601e83612e2b565b9150613c0882613bc7565b602082019050919050565b60006020820190508181036000830152613c2c81613bf0565b9050919050565b6000613c3e82612daa565b9150613c4983612daa565b9250828203905081811115613c6157613c6061329d565b5b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613c9d601f83612e2b565b9150613ca882613c67565b602082019050919050565b60006020820190508181036000830152613ccc81613c90565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613d2f602683612e2b565b9150613d3a82613cd3565b604082019050919050565b60006020820190508181036000830152613d5e81613d22565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613de8613de3613dde84613dc3565b612fa6565b612daa565b9050919050565b613df881613dcd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e3381612ef2565b82525050565b6000613e458383613e2a565b60208301905092915050565b6000602082019050919050565b6000613e6982613dfe565b613e738185613e09565b9350613e7e83613e1a565b8060005b83811015613eaf578151613e968882613e39565b9750613ea183613e51565b925050600181019050613e82565b5085935050505092915050565b600060a082019050613ed16000830188613020565b613ede6020830187613def565b8181036040830152613ef08186613e5e565b9050613eff606083018561312e565b613f0c6080830184613020565b969550505050505056fea2646970667358221220ad2740aa774d9e32330be452ead53785281aa02338b054b331fde2da589bb5e864736f6c63430008110033

Deployed Bytecode Sourcemap

11747:7597:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17602:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4009:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4923:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11826:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4330:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17081:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18239:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5100:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4229:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5600:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11886:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12481:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19215:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17308:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12440:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12372:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19071:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4446:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2050:103;;;;;;;;;;;;;:::i;:::-;;16856:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18572:81;;;;;;;;;;;;;:::i;:::-;;1827:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11931:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4117:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12200:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18463:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12302:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5823:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18661:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4581:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11962:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12521:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18781:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17903:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18921:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12268:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4764:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12160:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12231:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2161:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12334:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12407:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17192:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17602:293;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17709:7:::1;17696:10;:20;;;;17746:13;17727:16;:32;;;;17799:16;;17786:10;;:29;;;;:::i;:::-;17770:13;:45;;;;17851:3;17834:13;;:20;;17826:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17602:293:::0;;:::o;4009:100::-;4063:13;4096:5;4089:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4009:100;:::o;4923:169::-;5006:4;5023:39;5032:12;:10;:12::i;:::-;5046:7;5055:6;5023:8;:39::i;:::-;5080:4;5073:11;;4923:169;;;;:::o;11826:51::-;;;:::o;4330:108::-;4391:7;4418:12;;4411:19;;4330:108;:::o;17081:103::-;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17167:9:::1;17155;;:21;;;;;;;;;;;;;;;;;;17081:103:::0;:::o;18239:216::-;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18363:4:::1;18355;18351:1;18335:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;18334:33;;;;:::i;:::-;18321:9;:46;;18313:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;18443:4;18431:9;:16;;;;:::i;:::-;18419:9;:28;;;;18239:216:::0;:::o;5100:492::-;5240:4;5257:36;5267:6;5275:9;5286:6;5257:9;:36::i;:::-;5306:24;5333:11;:19;5345:6;5333:19;;;;;;;;;;;;;;;:33;5353:12;:10;:12::i;:::-;5333:33;;;;;;;;;;;;;;;;5306:60;;5405:6;5385:16;:26;;5377:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5492:57;5501:6;5509:12;:10;:12::i;:::-;5542:6;5523:16;:25;5492:8;:57::i;:::-;5580:4;5573:11;;;5100:492;;;;;:::o;4229:93::-;4287:5;4312:2;4305:9;;4229:93;:::o;5600:215::-;5688:4;5705:80;5714:12;:10;:12::i;:::-;5728:7;5774:10;5737:11;:25;5749:12;:10;:12::i;:::-;5737:25;;;;;;;;;;;;;;;:34;5763:7;5737:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5705:8;:80::i;:::-;5803:4;5796:11;;5600:215;;;;:::o;11886:38::-;;;:::o;12481:33::-;;;;;;;;;;;;;:::o;19215:126::-;19281:4;19305:19;:28;19325:7;19305:28;;;;;;;;;;;;;;;;;;;;;;;;;19298:35;;19215:126;;;:::o;17308:286::-;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17412:7:::1;17400:9;:19;;;;17448:13;17430:15;:31;;;;17499:15;;17487:9;;:27;;;;:::i;:::-;17472:12;:42;;;;17549:2;17533:12;;:18;;17525:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17308:286:::0;;:::o;12440:34::-;;;;;;;;;;;;;:::o;12372:28::-;;;;:::o;19071:136::-;19142:4;19166:24;:33;19191:7;19166:33;;;;;;;;;;;;;;;;;;;;;;;;;19159:40;;19071:136;;;:::o;4446:127::-;4520:7;4547:9;:18;4557:7;4547:18;;;;;;;;;;;;;;;;4540:25;;4446:127;;;:::o;2050:103::-;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2115:30:::1;2142:1;2115:18;:30::i;:::-;2050:103::o:0;16856:217::-;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16915:11:::1;16935:5;16915:26;;16952:15;16970:5;:15;;;16994:4;16970:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16952:48;;17025:1;17015:7;:11;17011:54;;;17028:5;:14;;;17043:12;:10;:12::i;:::-;17057:7;17028:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17011:54;16904:169;;16856:217:::0;:::o;18572:81::-;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18641:4:::1;18625:13;;:20;;;;;;;;;;;;;;;;;;18572:81::o:0;1827:87::-;1873:7;1900:6;;;;;;;;;;;1893:13;;1827:87;:::o;11931:24::-;;;;;;;;;;;;;:::o;4117:104::-;4173:13;4206:7;4199:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4117:104;:::o;12200:24::-;;;;:::o;18463:101::-;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18539:17:::1;18545:2;18549:6;18539:5;:17::i;:::-;18463:101:::0;;:::o;12302:25::-;;;;:::o;5823:413::-;5916:4;5933:24;5960:11;:25;5972:12;:10;:12::i;:::-;5960:25;;;;;;;;;;;;;;;:34;5986:7;5960:34;;;;;;;;;;;;;;;;5933:61;;6033:15;6013:16;:35;;6005:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6126:67;6135:12;:10;:12::i;:::-;6149:7;6177:15;6158:16;:34;6126:8;:67::i;:::-;6224:4;6217:11;;;5823:413;;;;:::o;18661:112::-;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18750:15:::1;18733:14;;:32;;;;;;;;;;;;;;;;;;18661:112:::0;:::o;4581:175::-;4667:4;4684:42;4694:12;:10;:12::i;:::-;4708:9;4719:6;4684:9;:42::i;:::-;4744:4;4737:11;;4581:175;;;;:::o;11962:64::-;;;;;;;;;;;;;:::o;12521:25::-;;;;;;;;;;;;;:::o;18781:132::-;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18897:8:::1;18866:19;:28;18886:7;18866:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18781:132:::0;;:::o;17903:328::-;17984:4;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18044:6:::1;18039:1;18023:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18022:28;;;;:::i;:::-;18009:9;:41;;18001:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;18134:3;18126:4;18110:13;:11;:13::i;:::-;:20;;;;:::i;:::-;18109:28;;;;:::i;:::-;18096:9;:41;;18088:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18192:9;18171:18;:30;;;;18219:4;18212:11;;17903:328:::0;;;:::o;18921:142::-;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19047:8:::1;19011:24;:33;19036:7;19011:33;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;18921:142:::0;;:::o;12268:27::-;;;;:::o;4764:151::-;4853:7;4880:11;:18;4892:5;4880:18;;;;;;;;;;;;;;;:27;4899:7;4880:27;;;;;;;;;;;;;;;;4873:34;;4764:151;;;;:::o;12160:33::-;;;;:::o;12231:30::-;;;;:::o;2161:201::-;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2270:1:::1;2250:22;;:8;:22;;::::0;2242:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2326:28;2345:8;2326:18;:28::i;:::-;2161:201:::0;:::o;12334:31::-;;;;:::o;12407:24::-;;;;:::o;17192:108::-;1973:12;:10;:12::i;:::-;1962:23;;:7;:5;:7::i;:::-;:23;;;1954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17285:7:::1;17267:15;;:25;;;;;;;;;;;;;;;;;;17192:108:::0;:::o;1346:98::-;1399:7;1426:10;1419:17;;1346:98;:::o;7991:380::-;8144:1;8127:19;;:5;:19;;;8119:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8225:1;8206:21;;:7;:21;;;8198:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8309:6;8279:11;:18;8291:5;8279:18;;;;;;;;;;;;;;;:27;8298:7;8279:27;;;;;;;;;;;;;;;:36;;;;8347:7;8331:32;;8340:5;8331:32;;;8356:6;8331:32;;;;;;:::i;:::-;;;;;;;;7991:380;;;:::o;13756:2369::-;13904:1;13888:18;;:4;:18;;;13880:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13981:1;13967:16;;:2;:16;;;13959:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14050:1;14040:6;:11;14036:93;;14068:28;14084:4;14090:2;14094:1;14068:15;:28::i;:::-;14111:7;;14036:93;14141:10;14162:13;14154:21;;:4;:21;;;14141:34;;14186:11;14206:13;14200:19;;:2;:19;;;14186:33;;14237:13;;;;;;;;;;;14236:14;:44;;;;;14255:19;:25;14275:4;14255:25;;;;;;;;;;;;;;;;;;;;;;;;;14254:26;14236:44;:72;;;;;14285:19;:23;14305:2;14285:23;;;;;;;;;;;;;;;;;;;;;;;;;14284:24;14236:72;14232:123;;;14318:5;14310:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;14232:123;14372:14;;;;;;;;;;;:47;;;;;14391:24;:28;14416:2;14391:28;;;;;;;;;;;;;;;;;;;;;;;;;14390:29;14372:47;:60;;;;;14424:8;;;;;;;;;;;14423:9;14372:60;14368:361;;;14453:5;14449:119;;;14513:9;;14496:13;14506:2;14496:9;:13::i;:::-;14487:6;:22;;;;:::i;:::-;:35;;14479:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;14449:119;14587:5;14586:6;:17;;;;;14597:6;14596:7;14586:17;14582:136;;;14658:9;;14641:13;14651:2;14641:9;:13::i;:::-;14632:6;:22;;;;:::i;:::-;:35;;14624:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14582:136;14368:361;14741:28;14772:24;14790:4;14772:9;:24::i;:::-;14741:55;;14807:12;14846:18;;14822:20;:42;;14807:57;;14879:7;:26;;;;;14890:15;;;;;;;;;;;14879:26;:39;;;;;14910:8;;;;;;;;;;;14909:9;14879:39;:62;;;;;14928:13;14922:19;;:2;:19;;;14879:62;:92;;;;;14946:19;:25;14966:4;14946:25;;;;;;;;;;;;;;;;;;;;;;;;;14945:26;14879:92;:120;;;;;14976:19;:23;14996:2;14976:23;;;;;;;;;;;;;;;;;;;;;;;;;14975:24;14879:120;14875:224;;;15027:4;15016:8;;:15;;;;;;;;;;;;;;;;;;15046:10;:8;:10::i;:::-;15082:5;15071:8;;:16;;;;;;;;;;;;;;;;;;14875:224;15111:12;15127:8;;;;;;;;;;;15126:9;15111:24;;15150:19;:25;15170:4;15150:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;15179:19;:23;15199:2;15179:23;;;;;;;;;;;;;;;;;;;;;;;;;15150:52;15146:100;;;15229:5;15219:15;;15146:100;15258:12;15287:26;15334:7;15330:742;;;15368:13;15362:19;;:2;:19;;;:40;;;;;15401:1;15385:13;;:17;15362:40;15358:423;;;15430:34;15460:3;15430:25;15441:13;;15430:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;15423:41;;15532:13;;15512:16;;15505:4;:23;;;;:::i;:::-;15504:41;;;;:::i;:::-;15483:62;;15358:423;;;15592:13;15584:21;;:4;:21;;;:41;;;;;15624:1;15609:12;;:16;15584:41;15580:201;;;15653:33;15682:3;15653:24;15664:12;;15653:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;15646:40;;15753:12;;15734:15;;15727:4;:22;;;;:::i;:::-;15726:39;;;;:::i;:::-;15705:60;;15580:201;15358:423;15808:1;15801:4;:8;15797:91;;;15830:42;15846:4;15860;15867;15830:15;:42::i;:::-;15797:91;15927:1;15906:18;:22;15902:128;;;15949:65;15973:4;15980:13;15995:18;15949:15;:65::i;:::-;15902:128;16056:4;16046:14;;;;;:::i;:::-;;;15330:742;16084:33;16100:4;16106:2;16110:6;16084:15;:33::i;:::-;13869:2256;;;;;;;13756:2369;;;;:::o;2370:191::-;2444:16;2463:6;;;;;;;;;;;2444:25;;2489:8;2480:6;;:17;;;;;;;;;;;;;;;;;;2544:8;2513:40;;2534:8;2513:40;;;;;;;;;;;;2433:128;2370:191;:::o;6985:399::-;7088:1;7069:21;;:7;:21;;;7061:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7139:49;7168:1;7172:7;7181:6;7139:20;:49::i;:::-;7217:6;7201:12;;:22;;;;;;;:::i;:::-;;;;;;;;7256:6;7234:9;:18;7244:7;7234:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;7299:7;7278:37;;7295:1;7278:37;;;7308:6;7278:37;;;;;;:::i;:::-;;;;;;;;7328:48;7356:1;7360:7;7369:6;7328:19;:48::i;:::-;6985:399;;:::o;6244:733::-;6402:1;6384:20;;:6;:20;;;6376:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6486:1;6465:23;;:9;:23;;;6457:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6541:47;6562:6;6570:9;6581:6;6541:20;:47::i;:::-;6601:21;6625:9;:17;6635:6;6625:17;;;;;;;;;;;;;;;;6601:41;;6678:6;6661:13;:23;;6653:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6799:6;6783:13;:22;6763:9;:17;6773:6;6763:17;;;;;;;;;;;;;;;:42;;;;6851:6;6827:9;:20;6837:9;6827:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6892:9;6875:35;;6884:6;6875:35;;;6903:6;6875:35;;;;;;:::i;:::-;;;;;;;;6923:46;6943:6;6951:9;6962:6;6923:19;:46::i;:::-;6365:612;6244:733;;;:::o;16598:213::-;16637:23;16663:24;16681:4;16663:9;:24::i;:::-;16637:50;;16721:1;16702:15;:20;16698:59;;16739:7;;;16698:59;16769:34;16787:15;16769:17;:34::i;:::-;16626:185;16598:213;:::o;10026:98::-;10084:7;10115:1;10111;:5;;;;:::i;:::-;10104:12;;10026:98;;;;:::o;10132:::-;10190:7;10221:1;10217;:5;;;;:::i;:::-;10210:12;;10132:98;;;;:::o;8379:125::-;;;;:::o;8512:124::-;;;;:::o;16133:457::-;16200:21;16238:1;16224:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16200:40;;16269:4;16251;16256:1;16251:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16295:4;;;;;;;;;;;16285;16290:1;16285:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;16312:62;16329:4;16344:15;16362:11;16312:8;:62::i;:::-;16387:15;:69;;;16471:11;16497:1;16513:4;16532:9;;;;;;;;;;;16556:15;16387:195;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16189:401;16133:457;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:96::-;2681:7;2710:24;2728:5;2710:24;:::i;:::-;2699:35;;2644:96;;;:::o;2746:122::-;2819:24;2837:5;2819:24;:::i;:::-;2812:5;2809:35;2799:63;;2858:1;2855;2848:12;2799:63;2746:122;:::o;2874:139::-;2920:5;2958:6;2945:20;2936:29;;2974:33;3001:5;2974:33;:::i;:::-;2874:139;;;;:::o;3019:474::-;3087:6;3095;3144:2;3132:9;3123:7;3119:23;3115:32;3112:119;;;3150:79;;:::i;:::-;3112:119;3270:1;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3241:117;3397:2;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3368:118;3019:474;;;;;:::o;3499:90::-;3533:7;3576:5;3569:13;3562:21;3551:32;;3499:90;;;:::o;3595:109::-;3676:21;3691:5;3676:21;:::i;:::-;3671:3;3664:34;3595:109;;:::o;3710:210::-;3797:4;3835:2;3824:9;3820:18;3812:26;;3848:65;3910:1;3899:9;3895:17;3886:6;3848:65;:::i;:::-;3710:210;;;;:::o;3926:60::-;3954:3;3975:5;3968:12;;3926:60;;;:::o;3992:142::-;4042:9;4075:53;4093:34;4102:24;4120:5;4102:24;:::i;:::-;4093:34;:::i;:::-;4075:53;:::i;:::-;4062:66;;3992:142;;;:::o;4140:126::-;4190:9;4223:37;4254:5;4223:37;:::i;:::-;4210:50;;4140:126;;;:::o;4272:153::-;4349:9;4382:37;4413:5;4382:37;:::i;:::-;4369:50;;4272:153;;;:::o;4431:185::-;4545:64;4603:5;4545:64;:::i;:::-;4540:3;4533:77;4431:185;;:::o;4622:276::-;4742:4;4780:2;4769:9;4765:18;4757:26;;4793:98;4888:1;4877:9;4873:17;4864:6;4793:98;:::i;:::-;4622:276;;;;:::o;4904:118::-;4991:24;5009:5;4991:24;:::i;:::-;4986:3;4979:37;4904:118;;:::o;5028:222::-;5121:4;5159:2;5148:9;5144:18;5136:26;;5172:71;5240:1;5229:9;5225:17;5216:6;5172:71;:::i;:::-;5028:222;;;;:::o;5256:329::-;5315:6;5364:2;5352:9;5343:7;5339:23;5335:32;5332:119;;;5370:79;;:::i;:::-;5332:119;5490:1;5515:53;5560:7;5551:6;5540:9;5536:22;5515:53;:::i;:::-;5505:63;;5461:117;5256:329;;;;:::o;5591:::-;5650:6;5699:2;5687:9;5678:7;5674:23;5670:32;5667:119;;;5705:79;;:::i;:::-;5667:119;5825:1;5850:53;5895:7;5886:6;5875:9;5871:22;5850:53;:::i;:::-;5840:63;;5796:117;5591:329;;;;:::o;5926:619::-;6003:6;6011;6019;6068:2;6056:9;6047:7;6043:23;6039:32;6036:119;;;6074:79;;:::i;:::-;6036:119;6194:1;6219:53;6264:7;6255:6;6244:9;6240:22;6219:53;:::i;:::-;6209:63;;6165:117;6321:2;6347:53;6392:7;6383:6;6372:9;6368:22;6347:53;:::i;:::-;6337:63;;6292:118;6449:2;6475:53;6520:7;6511:6;6500:9;6496:22;6475:53;:::i;:::-;6465:63;;6420:118;5926:619;;;;;:::o;6551:86::-;6586:7;6626:4;6619:5;6615:16;6604:27;;6551:86;;;:::o;6643:112::-;6726:22;6742:5;6726:22;:::i;:::-;6721:3;6714:35;6643:112;;:::o;6761:214::-;6850:4;6888:2;6877:9;6873:18;6865:26;;6901:67;6965:1;6954:9;6950:17;6941:6;6901:67;:::i;:::-;6761:214;;;;:::o;6981:118::-;7068:24;7086:5;7068:24;:::i;:::-;7063:3;7056:37;6981:118;;:::o;7105:222::-;7198:4;7236:2;7225:9;7221:18;7213:26;;7249:71;7317:1;7306:9;7302:17;7293:6;7249:71;:::i;:::-;7105:222;;;;:::o;7333:116::-;7403:21;7418:5;7403:21;:::i;:::-;7396:5;7393:32;7383:60;;7439:1;7436;7429:12;7383:60;7333:116;:::o;7455:133::-;7498:5;7536:6;7523:20;7514:29;;7552:30;7576:5;7552:30;:::i;:::-;7455:133;;;;:::o;7594:323::-;7650:6;7699:2;7687:9;7678:7;7674:23;7670:32;7667:119;;;7705:79;;:::i;:::-;7667:119;7825:1;7850:50;7892:7;7883:6;7872:9;7868:22;7850:50;:::i;:::-;7840:60;;7796:114;7594:323;;;;:::o;7923:468::-;7988:6;7996;8045:2;8033:9;8024:7;8020:23;8016:32;8013:119;;;8051:79;;:::i;:::-;8013:119;8171:1;8196:53;8241:7;8232:6;8221:9;8217:22;8196:53;:::i;:::-;8186:63;;8142:117;8298:2;8324:50;8366:7;8357:6;8346:9;8342:22;8324:50;:::i;:::-;8314:60;;8269:115;7923:468;;;;;:::o;8397:474::-;8465:6;8473;8522:2;8510:9;8501:7;8497:23;8493:32;8490:119;;;8528:79;;:::i;:::-;8490:119;8648:1;8673:53;8718:7;8709:6;8698:9;8694:22;8673:53;:::i;:::-;8663:63;;8619:117;8775:2;8801:53;8846:7;8837:6;8826:9;8822:22;8801:53;:::i;:::-;8791:63;;8746:118;8397:474;;;;;:::o;8877:182::-;9017:34;9013:1;9005:6;9001:14;8994:58;8877:182;:::o;9065:366::-;9207:3;9228:67;9292:2;9287:3;9228:67;:::i;:::-;9221:74;;9304:93;9393:3;9304:93;:::i;:::-;9422:2;9417:3;9413:12;9406:19;;9065:366;;;:::o;9437:419::-;9603:4;9641:2;9630:9;9626:18;9618:26;;9690:9;9684:4;9680:20;9676:1;9665:9;9661:17;9654:47;9718:131;9844:4;9718:131;:::i;:::-;9710:139;;9437:419;;;:::o;9862:180::-;9910:77;9907:1;9900:88;10007:4;10004:1;9997:15;10031:4;10028:1;10021:15;10048:191;10088:3;10107:20;10125:1;10107:20;:::i;:::-;10102:25;;10141:20;10159:1;10141:20;:::i;:::-;10136:25;;10184:1;10181;10177:9;10170:16;;10205:3;10202:1;10199:10;10196:36;;;10212:18;;:::i;:::-;10196:36;10048:191;;;;:::o;10245:178::-;10385:30;10381:1;10373:6;10369:14;10362:54;10245:178;:::o;10429:366::-;10571:3;10592:67;10656:2;10651:3;10592:67;:::i;:::-;10585:74;;10668:93;10757:3;10668:93;:::i;:::-;10786:2;10781:3;10777:12;10770:19;;10429:366;;;:::o;10801:419::-;10967:4;11005:2;10994:9;10990:18;10982:26;;11054:9;11048:4;11044:20;11040:1;11029:9;11025:17;11018:47;11082:131;11208:4;11082:131;:::i;:::-;11074:139;;10801:419;;;:::o;11226:180::-;11274:77;11271:1;11264:88;11371:4;11368:1;11361:15;11395:4;11392:1;11385:15;11412:320;11456:6;11493:1;11487:4;11483:12;11473:22;;11540:1;11534:4;11530:12;11561:18;11551:81;;11617:4;11609:6;11605:17;11595:27;;11551:81;11679:2;11671:6;11668:14;11648:18;11645:38;11642:84;;11698:18;;:::i;:::-;11642:84;11463:269;11412:320;;;:::o;11738:410::-;11778:7;11801:20;11819:1;11801:20;:::i;:::-;11796:25;;11835:20;11853:1;11835:20;:::i;:::-;11830:25;;11890:1;11887;11883:9;11912:30;11930:11;11912:30;:::i;:::-;11901:41;;12091:1;12082:7;12078:15;12075:1;12072:22;12052:1;12045:9;12025:83;12002:139;;12121:18;;:::i;:::-;12002:139;11786:362;11738:410;;;;:::o;12154:180::-;12202:77;12199:1;12192:88;12299:4;12296:1;12289:15;12323:4;12320:1;12313:15;12340:185;12380:1;12397:20;12415:1;12397:20;:::i;:::-;12392:25;;12431:20;12449:1;12431:20;:::i;:::-;12426:25;;12470:1;12460:35;;12475:18;;:::i;:::-;12460:35;12517:1;12514;12510:9;12505:14;;12340:185;;;;:::o;12531:223::-;12671:34;12667:1;12659:6;12655:14;12648:58;12740:6;12735:2;12727:6;12723:15;12716:31;12531:223;:::o;12760:366::-;12902:3;12923:67;12987:2;12982:3;12923:67;:::i;:::-;12916:74;;12999:93;13088:3;12999:93;:::i;:::-;13117:2;13112:3;13108:12;13101:19;;12760:366;;;:::o;13132:419::-;13298:4;13336:2;13325:9;13321:18;13313:26;;13385:9;13379:4;13375:20;13371:1;13360:9;13356:17;13349:47;13413:131;13539:4;13413:131;:::i;:::-;13405:139;;13132:419;;;:::o;13557:227::-;13697:34;13693:1;13685:6;13681:14;13674:58;13766:10;13761:2;13753:6;13749:15;13742:35;13557:227;:::o;13790:366::-;13932:3;13953:67;14017:2;14012:3;13953:67;:::i;:::-;13946:74;;14029:93;14118:3;14029:93;:::i;:::-;14147:2;14142:3;14138:12;14131:19;;13790:366;;;:::o;14162:419::-;14328:4;14366:2;14355:9;14351:18;14343:26;;14415:9;14409:4;14405:20;14401:1;14390:9;14386:17;14379:47;14443:131;14569:4;14443:131;:::i;:::-;14435:139;;14162:419;;;:::o;14587:180::-;14727:32;14723:1;14715:6;14711:14;14704:56;14587:180;:::o;14773:366::-;14915:3;14936:67;15000:2;14995:3;14936:67;:::i;:::-;14929:74;;15012:93;15101:3;15012:93;:::i;:::-;15130:2;15125:3;15121:12;15114:19;;14773:366;;;:::o;15145:419::-;15311:4;15349:2;15338:9;15334:18;15326:26;;15398:9;15392:4;15388:20;15384:1;15373:9;15369:17;15362:47;15426:131;15552:4;15426:131;:::i;:::-;15418:139;;15145:419;;;:::o;15570:143::-;15627:5;15658:6;15652:13;15643:22;;15674:33;15701:5;15674:33;:::i;:::-;15570:143;;;;:::o;15719:351::-;15789:6;15838:2;15826:9;15817:7;15813:23;15809:32;15806:119;;;15844:79;;:::i;:::-;15806:119;15964:1;15989:64;16045:7;16036:6;16025:9;16021:22;15989:64;:::i;:::-;15979:74;;15935:128;15719:351;;;;:::o;16076:332::-;16197:4;16235:2;16224:9;16220:18;16212:26;;16248:71;16316:1;16305:9;16301:17;16292:6;16248:71;:::i;:::-;16329:72;16397:2;16386:9;16382:18;16373:6;16329:72;:::i;:::-;16076:332;;;;;:::o;16414:137::-;16468:5;16499:6;16493:13;16484:22;;16515:30;16539:5;16515:30;:::i;:::-;16414:137;;;;:::o;16557:345::-;16624:6;16673:2;16661:9;16652:7;16648:23;16644:32;16641:119;;;16679:79;;:::i;:::-;16641:119;16799:1;16824:61;16877:7;16868:6;16857:9;16853:22;16824:61;:::i;:::-;16814:71;;16770:125;16557:345;;;;:::o;16908:224::-;17048:34;17044:1;17036:6;17032:14;17025:58;17117:7;17112:2;17104:6;17100:15;17093:32;16908:224;:::o;17138:366::-;17280:3;17301:67;17365:2;17360:3;17301:67;:::i;:::-;17294:74;;17377:93;17466:3;17377:93;:::i;:::-;17495:2;17490:3;17486:12;17479:19;;17138:366;;;:::o;17510:419::-;17676:4;17714:2;17703:9;17699:18;17691:26;;17763:9;17757:4;17753:20;17749:1;17738:9;17734:17;17727:47;17791:131;17917:4;17791:131;:::i;:::-;17783:139;;17510:419;;;:::o;17935:172::-;18075:24;18071:1;18063:6;18059:14;18052:48;17935:172;:::o;18113:366::-;18255:3;18276:67;18340:2;18335:3;18276:67;:::i;:::-;18269:74;;18352:93;18441:3;18352:93;:::i;:::-;18470:2;18465:3;18461:12;18454:19;;18113:366;;;:::o;18485:419::-;18651:4;18689:2;18678:9;18674:18;18666:26;;18738:9;18732:4;18728:20;18724:1;18713:9;18709:17;18702:47;18766:131;18892:4;18766:131;:::i;:::-;18758:139;;18485:419;;;:::o;18910:168::-;19050:20;19046:1;19038:6;19034:14;19027:44;18910:168;:::o;19084:366::-;19226:3;19247:67;19311:2;19306:3;19247:67;:::i;:::-;19240:74;;19323:93;19412:3;19323:93;:::i;:::-;19441:2;19436:3;19432:12;19425:19;;19084:366;;;:::o;19456:419::-;19622:4;19660:2;19649:9;19645:18;19637:26;;19709:9;19703:4;19699:20;19695:1;19684:9;19680:17;19673:47;19737:131;19863:4;19737:131;:::i;:::-;19729:139;;19456:419;;;:::o;19881:225::-;20021:34;20017:1;20009:6;20005:14;19998:58;20090:8;20085:2;20077:6;20073:15;20066:33;19881:225;:::o;20112:366::-;20254:3;20275:67;20339:2;20334:3;20275:67;:::i;:::-;20268:74;;20351:93;20440:3;20351:93;:::i;:::-;20469:2;20464:3;20460:12;20453:19;;20112:366;;;:::o;20484:419::-;20650:4;20688:2;20677:9;20673:18;20665:26;;20737:9;20731:4;20727:20;20723:1;20712:9;20708:17;20701:47;20765:131;20891:4;20765:131;:::i;:::-;20757:139;;20484:419;;;:::o;20909:223::-;21049:34;21045:1;21037:6;21033:14;21026:58;21118:6;21113:2;21105:6;21101:15;21094:31;20909:223;:::o;21138:366::-;21280:3;21301:67;21365:2;21360:3;21301:67;:::i;:::-;21294:74;;21377:93;21466:3;21377:93;:::i;:::-;21495:2;21490:3;21486:12;21479:19;;21138:366;;;:::o;21510:419::-;21676:4;21714:2;21703:9;21699:18;21691:26;;21763:9;21757:4;21753:20;21749:1;21738:9;21734:17;21727:47;21791:131;21917:4;21791:131;:::i;:::-;21783:139;;21510:419;;;:::o;21935:221::-;22075:34;22071:1;22063:6;22059:14;22052:58;22144:4;22139:2;22131:6;22127:15;22120:29;21935:221;:::o;22162:366::-;22304:3;22325:67;22389:2;22384:3;22325:67;:::i;:::-;22318:74;;22401:93;22490:3;22401:93;:::i;:::-;22519:2;22514:3;22510:12;22503:19;;22162:366;;;:::o;22534:419::-;22700:4;22738:2;22727:9;22723:18;22715:26;;22787:9;22781:4;22777:20;22773:1;22762:9;22758:17;22751:47;22815:131;22941:4;22815:131;:::i;:::-;22807:139;;22534:419;;;:::o;22959:224::-;23099:34;23095:1;23087:6;23083:14;23076:58;23168:7;23163:2;23155:6;23151:15;23144:32;22959:224;:::o;23189:366::-;23331:3;23352:67;23416:2;23411:3;23352:67;:::i;:::-;23345:74;;23428:93;23517:3;23428:93;:::i;:::-;23546:2;23541:3;23537:12;23530:19;;23189:366;;;:::o;23561:419::-;23727:4;23765:2;23754:9;23750:18;23742:26;;23814:9;23808:4;23804:20;23800:1;23789:9;23785:17;23778:47;23842:131;23968:4;23842:131;:::i;:::-;23834:139;;23561:419;;;:::o;23986:222::-;24126:34;24122:1;24114:6;24110:14;24103:58;24195:5;24190:2;24182:6;24178:15;24171:30;23986:222;:::o;24214:366::-;24356:3;24377:67;24441:2;24436:3;24377:67;:::i;:::-;24370:74;;24453:93;24542:3;24453:93;:::i;:::-;24571:2;24566:3;24562:12;24555:19;;24214:366;;;:::o;24586:419::-;24752:4;24790:2;24779:9;24775:18;24767:26;;24839:9;24833:4;24829:20;24825:1;24814:9;24810:17;24803:47;24867:131;24993:4;24867:131;:::i;:::-;24859:139;;24586:419;;;:::o;25011:177::-;25151:29;25147:1;25139:6;25135:14;25128:53;25011:177;:::o;25194:366::-;25336:3;25357:67;25421:2;25416:3;25357:67;:::i;:::-;25350:74;;25433:93;25522:3;25433:93;:::i;:::-;25551:2;25546:3;25542:12;25535:19;;25194:366;;;:::o;25566:419::-;25732:4;25770:2;25759:9;25755:18;25747:26;;25819:9;25813:4;25809:20;25805:1;25794:9;25790:17;25783:47;25847:131;25973:4;25847:131;:::i;:::-;25839:139;;25566:419;;;:::o;25991:175::-;26131:27;26127:1;26119:6;26115:14;26108:51;25991:175;:::o;26172:366::-;26314:3;26335:67;26399:2;26394:3;26335:67;:::i;:::-;26328:74;;26411:93;26500:3;26411:93;:::i;:::-;26529:2;26524:3;26520:12;26513:19;;26172:366;;;:::o;26544:419::-;26710:4;26748:2;26737:9;26733:18;26725:26;;26797:9;26791:4;26787:20;26783:1;26772:9;26768:17;26761:47;26825:131;26951:4;26825:131;:::i;:::-;26817:139;;26544:419;;;:::o;26969:180::-;27109:32;27105:1;27097:6;27093:14;27086:56;26969:180;:::o;27155:366::-;27297:3;27318:67;27382:2;27377:3;27318:67;:::i;:::-;27311:74;;27394:93;27483:3;27394:93;:::i;:::-;27512:2;27507:3;27503:12;27496:19;;27155:366;;;:::o;27527:419::-;27693:4;27731:2;27720:9;27716:18;27708:26;;27780:9;27774:4;27770:20;27766:1;27755:9;27751:17;27744:47;27808:131;27934:4;27808:131;:::i;:::-;27800:139;;27527:419;;;:::o;27952:194::-;27992:4;28012:20;28030:1;28012:20;:::i;:::-;28007:25;;28046:20;28064:1;28046:20;:::i;:::-;28041:25;;28090:1;28087;28083:9;28075:17;;28114:1;28108:4;28105:11;28102:37;;;28119:18;;:::i;:::-;28102:37;27952:194;;;;:::o;28152:181::-;28292:33;28288:1;28280:6;28276:14;28269:57;28152:181;:::o;28339:366::-;28481:3;28502:67;28566:2;28561:3;28502:67;:::i;:::-;28495:74;;28578:93;28667:3;28578:93;:::i;:::-;28696:2;28691:3;28687:12;28680:19;;28339:366;;;:::o;28711:419::-;28877:4;28915:2;28904:9;28900:18;28892:26;;28964:9;28958:4;28954:20;28950:1;28939:9;28935:17;28928:47;28992:131;29118:4;28992:131;:::i;:::-;28984:139;;28711:419;;;:::o;29136:225::-;29276:34;29272:1;29264:6;29260:14;29253:58;29345:8;29340:2;29332:6;29328:15;29321:33;29136:225;:::o;29367:366::-;29509:3;29530:67;29594:2;29589:3;29530:67;:::i;:::-;29523:74;;29606:93;29695:3;29606:93;:::i;:::-;29724:2;29719:3;29715:12;29708:19;;29367:366;;;:::o;29739:419::-;29905:4;29943:2;29932:9;29928:18;29920:26;;29992:9;29986:4;29982:20;29978:1;29967:9;29963:17;29956:47;30020:131;30146:4;30020:131;:::i;:::-;30012:139;;29739:419;;;:::o;30164:180::-;30212:77;30209:1;30202:88;30309:4;30306:1;30299:15;30333:4;30330:1;30323:15;30350:180;30398:77;30395:1;30388:88;30495:4;30492:1;30485:15;30519:4;30516:1;30509:15;30536:85;30581:7;30610:5;30599:16;;30536:85;;;:::o;30627:158::-;30685:9;30718:61;30736:42;30745:32;30771:5;30745:32;:::i;:::-;30736:42;:::i;:::-;30718:61;:::i;:::-;30705:74;;30627:158;;;:::o;30791:147::-;30886:45;30925:5;30886:45;:::i;:::-;30881:3;30874:58;30791:147;;:::o;30944:114::-;31011:6;31045:5;31039:12;31029:22;;30944:114;;;:::o;31064:184::-;31163:11;31197:6;31192:3;31185:19;31237:4;31232:3;31228:14;31213:29;;31064:184;;;;:::o;31254:132::-;31321:4;31344:3;31336:11;;31374:4;31369:3;31365:14;31357:22;;31254:132;;;:::o;31392:108::-;31469:24;31487:5;31469:24;:::i;:::-;31464:3;31457:37;31392:108;;:::o;31506:179::-;31575:10;31596:46;31638:3;31630:6;31596:46;:::i;:::-;31674:4;31669:3;31665:14;31651:28;;31506:179;;;;:::o;31691:113::-;31761:4;31793;31788:3;31784:14;31776:22;;31691:113;;;:::o;31840:732::-;31959:3;31988:54;32036:5;31988:54;:::i;:::-;32058:86;32137:6;32132:3;32058:86;:::i;:::-;32051:93;;32168:56;32218:5;32168:56;:::i;:::-;32247:7;32278:1;32263:284;32288:6;32285:1;32282:13;32263:284;;;32364:6;32358:13;32391:63;32450:3;32435:13;32391:63;:::i;:::-;32384:70;;32477:60;32530:6;32477:60;:::i;:::-;32467:70;;32323:224;32310:1;32307;32303:9;32298:14;;32263:284;;;32267:14;32563:3;32556:10;;31964:608;;;31840:732;;;;:::o;32578:831::-;32841:4;32879:3;32868:9;32864:19;32856:27;;32893:71;32961:1;32950:9;32946:17;32937:6;32893:71;:::i;:::-;32974:80;33050:2;33039:9;33035:18;33026:6;32974:80;:::i;:::-;33101:9;33095:4;33091:20;33086:2;33075:9;33071:18;33064:48;33129:108;33232:4;33223:6;33129:108;:::i;:::-;33121:116;;33247:72;33315:2;33304:9;33300:18;33291:6;33247:72;:::i;:::-;33329:73;33397:3;33386:9;33382:19;33373:6;33329:73;:::i;:::-;32578:831;;;;;;;;:::o

Swarm Source

ipfs://ad2740aa774d9e32330be452ead53785281aa02338b054b331fde2da589bb5e8

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.