ETH Price: $2,446.03 (-0.95%)

Contract

0x06E0E0e5f9317f0296c6Bf4D214C6399A7252266
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve191044582024-01-28 10:31:11259 days ago1706437871IN
0x06E0E0e5...9A7252266
0 ETH0.0007296415.45072766
Approve190737612024-01-24 3:16:11263 days ago1706066171IN
0x06E0E0e5...9A7252266
0 ETH0.0010165321.52580935
Approve190635572024-01-22 16:50:23265 days ago1705942223IN
0x06E0E0e5...9A7252266
0 ETH0.0009771720.69241277
Approve190634852024-01-22 16:35:35265 days ago1705941335IN
0x06E0E0e5...9A7252266
0 ETH0.0010988123.26819297
Approve190634852024-01-22 16:35:35265 days ago1705941335IN
0x06E0E0e5...9A7252266
0 ETH0.0010988123.26819297
Approve190634852024-01-22 16:35:35265 days ago1705941335IN
0x06E0E0e5...9A7252266
0 ETH0.0010988123.26819297
Transfer190634842024-01-22 16:35:23265 days ago1705941323IN
0x06E0E0e5...9A7252266
0 ETH0.000897922.76291474
Transfer190634842024-01-22 16:35:23265 days ago1705941323IN
0x06E0E0e5...9A7252266
0 ETH0.000897922.76291474
Transfer190634842024-01-22 16:35:23265 days ago1705941323IN
0x06E0E0e5...9A7252266
0 ETH0.000897922.76291474
Transfer190634842024-01-22 16:35:23265 days ago1705941323IN
0x06E0E0e5...9A7252266
0 ETH0.000897922.76291474
Transfer190634842024-01-22 16:35:23265 days ago1705941323IN
0x06E0E0e5...9A7252266
0 ETH0.0008987222.76291474
Transfer190634842024-01-22 16:35:23265 days ago1705941323IN
0x06E0E0e5...9A7252266
0 ETH0.0008987222.76291474
Transfer190634842024-01-22 16:35:23265 days ago1705941323IN
0x06E0E0e5...9A7252266
0 ETH0.0012879722.76291474
Approve190634812024-01-22 16:34:47265 days ago1705941287IN
0x06E0E0e5...9A7252266
0 ETH0.0011707324.82273444
Approve190634782024-01-22 16:34:11265 days ago1705941251IN
0x06E0E0e5...9A7252266
0 ETH0.0012227525.89258898
Approve190634752024-01-22 16:33:35265 days ago1705941215IN
0x06E0E0e5...9A7252266
0 ETH0.0010313821.95751812
Approve190634232024-01-22 16:22:47265 days ago1705940567IN
0x06E0E0e5...9A7252266
0 ETH0.001001821.35506283
Approve190633802024-01-22 16:14:11265 days ago1705940051IN
0x06E0E0e5...9A7252266
0 ETH0.0013512828.61439269
Approve190633732024-01-22 16:12:47265 days ago1705939967IN
0x06E0E0e5...9A7252266
0 ETH0.0013694929
Approve190633682024-01-22 16:11:47265 days ago1705939907IN
0x06E0E0e5...9A7252266
0 ETH0.0016407634.74433646
Approve190633642024-01-22 16:10:59265 days ago1705939859IN
0x06E0E0e5...9A7252266
0 ETH0.0019082540.40854735
Approve190633612024-01-22 16:10:23265 days ago1705939823IN
0x06E0E0e5...9A7252266
0 ETH0.0015015331.79595022
Approve190633592024-01-22 16:09:59265 days ago1705939799IN
0x06E0E0e5...9A7252266
0 ETH0.0014343130.37266812
Approve190633572024-01-22 16:09:35265 days ago1705939775IN
0x06E0E0e5...9A7252266
0 ETH0.0014075329.80540737
Approve190633512024-01-22 16:08:23265 days ago1705939703IN
0x06E0E0e5...9A7252266
0 ETH0.0016284434.48345665
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
190649582024-01-22 21:34:23264 days ago1705959263
0x06E0E0e5...9A7252266
0.00178523 ETH
190649582024-01-22 21:34:23264 days ago1705959263
0x06E0E0e5...9A7252266
0.00178523 ETH
190635572024-01-22 16:50:23265 days ago1705942223
0x06E0E0e5...9A7252266
0.00211878 ETH
190635572024-01-22 16:50:23265 days ago1705942223
0x06E0E0e5...9A7252266
0.00211878 ETH
190635302024-01-22 16:44:35265 days ago1705941875
0x06E0E0e5...9A7252266
0.00290237 ETH
190635302024-01-22 16:44:35265 days ago1705941875
0x06E0E0e5...9A7252266
0.00290237 ETH
190635012024-01-22 16:38:47265 days ago1705941527
0x06E0E0e5...9A7252266
0.00270609 ETH
190635012024-01-22 16:38:47265 days ago1705941527
0x06E0E0e5...9A7252266
0.00270609 ETH
190635012024-01-22 16:38:47265 days ago1705941527
0x06E0E0e5...9A7252266
0.00353949 ETH
190635012024-01-22 16:38:47265 days ago1705941527
0x06E0E0e5...9A7252266
0.00353949 ETH
190634902024-01-22 16:36:35265 days ago1705941395
0x06E0E0e5...9A7252266
0.01522543 ETH
190634902024-01-22 16:36:35265 days ago1705941395
0x06E0E0e5...9A7252266
0.01522543 ETH
190634832024-01-22 16:35:11265 days ago1705941311
0x06E0E0e5...9A7252266
0.00613603 ETH
190634832024-01-22 16:35:11265 days ago1705941311
0x06E0E0e5...9A7252266
0.00613603 ETH
190634782024-01-22 16:34:11265 days ago1705941251
0x06E0E0e5...9A7252266
0.00583086 ETH
190634782024-01-22 16:34:11265 days ago1705941251
0x06E0E0e5...9A7252266
0.00583086 ETH
190634782024-01-22 16:34:11265 days ago1705941251
0x06E0E0e5...9A7252266
0.04009283 ETH
190634782024-01-22 16:34:11265 days ago1705941251
0x06E0E0e5...9A7252266
0.04009283 ETH
190634262024-01-22 16:23:23265 days ago1705940603
0x06E0E0e5...9A7252266
0.01963493 ETH
190634262024-01-22 16:23:23265 days ago1705940603
0x06E0E0e5...9A7252266
0.01963493 ETH
190633862024-01-22 16:15:23265 days ago1705940123
0x06E0E0e5...9A7252266
0.01556044 ETH
190633862024-01-22 16:15:23265 days ago1705940123
0x06E0E0e5...9A7252266
0.01556044 ETH
190633672024-01-22 16:11:35265 days ago1705939895
0x06E0E0e5...9A7252266
0.03500023 ETH
190633672024-01-22 16:11:35265 days ago1705939895
0x06E0E0e5...9A7252266
0.03500023 ETH
190633662024-01-22 16:11:23265 days ago1705939883
0x06E0E0e5...9A7252266
0.02534858 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Comunite

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-20
*/

//description

// Website  : https://comunite.io/
// Docs     : https://documents.comunite.io/
// Twitter  : https://x.com/comuniteproject
// Telegram : https://t.me/comuniteportal
// Github   : https://github.com/comuniteproject
// Medium   : https://medium.com/@comunite

// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

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

contract Comunite is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private  _taxWallet;
    address private constant deadAddress = address(0xdead);

    uint256 private constant _initialBuyTax =20;
    uint256 private constant _initialSellTax=25;
    uint256 private constant _reduceBuyTaxAt=30;
    uint256 private constant _reduceSellTaxAt=45;
    uint256 private constant _preventSwapBefore=40;
    uint256 private _finalBuyTax=10;
    uint256 private _finalSellTax=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name   = unicode"Comunite";
    string private constant _symbol = unicode"COMT";
    uint256 public constant _taxSwapThreshold = 1000000 * 10**_decimals;
    uint256 public constant _maxTaxSwap = 10000000 * 10**_decimals;
    uint256 public _maxTxAmount   = 10000000 * 10**_decimals;
    uint256 public _maxWalletSize = 10000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private limitEffect = true;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event FinalTax (uint256 _valueBuy, uint256 _valueSell);
    event maxAmount(uint256 _value);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (address taxWallet) {
         _taxWallet = payable (taxWallet);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[deadAddress]= true;
        _isExcludedFromFee[address(this)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "ERC20: approve the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0) && to != address(0), "ERC20: transfer the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

        if (from != owner() && to != owner()) { 

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                if (limitEffect) {
                    require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                } 
                _buyCount++;
            }
            
            if ( to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul 
                ((_buyCount>_reduceSellTaxAt)
                    ?_finalSellTax:_initialSellTax).div(100
                );
            } else if (from == uniswapV2Pair && to!= address(this) ){
                taxAmount = amount.mul
                ((_buyCount>_reduceBuyTaxAt)
                    ?_finalBuyTax:_initialBuyTax).div(100
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap && 
                to == uniswapV2Pair && 
                swapEnabled && 
                contractTokenBalance>_taxSwapThreshold && 
                _buyCount>_preventSwapBefore
            ){
                uint256 getMin = (contractTokenBalance > _maxTaxSwap)?_maxTaxSwap:contractTokenBalance;
                uint256 amountToSwap = (amount>getMin)?getMin:amount;
                swapTokensForEth(amountToSwap);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function init() external onlyOwner() {
        require(!tradingOpen,"init already called");
        uint256 tokenAmount = balanceOf(address(this)).sub(_tTotal.mul(_initialBuyTax).div(100));
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(address(this), uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance} (
            address(this),
            tokenAmount,
            0,
            0,
            _msgSender(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); 
    }

    function launch () external onlyOwner returns (bool) {
        require(!tradingOpen,"trading already open");
        swapEnabled = true;
        tradingOpen = true;
        return true;
    }

    function toggleLimits () external onlyOwner returns (bool){
        limitEffect = false;
        _maxTxAmount= _tTotal;
        _maxWalletSize= _tTotal;
        emit maxAmount (_tTotal);
        return true;
    }
    
    function setTax (uint256 _valueBuy, uint256 _valueSell) external onlyOwner {
        require(_valueBuy <= 50 && _valueSell <= 50 && tradingOpen, "Exceeds value");
        _finalBuyTax = _valueBuy;
        _finalSellTax = _valueSell;
        emit FinalTax(_valueBuy, _valueSell);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"taxWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"FinalTax","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"maxAmount","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"uint256","name":"_valueBuy","type":"uint256"},{"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"toggleLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600a60055560146006555f6007556012600a6200002291906200061a565b629896806200003291906200066a565b6008556012600a6200004591906200061a565b629896806200005591906200066a565b6009556001600b60156101000a81548160ff0219169083151502179055505f600b60166101000a81548160ff0219169083151502179055505f600b60176101000a81548160ff021916908315150217905550348015620000b3575f80fd5b506040516200372c3803806200372c8339818101604052810190620000d9919062000719565b5f620000ea6200045a60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620001d691906200061a565b633b9aca00620001e791906200066a565b60015f620001fa6200045a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200024c6200046160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003cd6200045a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200042b91906200061a565b633b9aca006200043c91906200066a565b6040516200044b91906200075a565b60405180910390a35062000775565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200051257808604811115620004ea57620004e962000488565b5b6001851615620004fa5780820291505b80810290506200050a85620004b5565b9450620004ca565b94509492505050565b5f826200052c5760019050620005fe565b816200053b575f9050620005fe565b81600181146200055457600281146200055f5762000595565b6001915050620005fe565b60ff84111562000574576200057362000488565b5b8360020a9150848211156200058e576200058d62000488565b5b50620005fe565b5060208310610133831016604e8410600b8410161715620005cf5782820a905083811115620005c957620005c862000488565b5b620005fe565b620005de8484846001620004c1565b92509050818404811115620005f857620005f762000488565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006268262000605565b915062000633836200060e565b9250620006627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200051b565b905092915050565b5f620006768262000605565b9150620006838362000605565b9250828202620006938162000605565b91508282048414831517620006ad57620006ac62000488565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620006e382620006b8565b9050919050565b620006f581620006d7565b811462000700575f80fd5b50565b5f815190506200071381620006ea565b92915050565b5f60208284031215620007315762000730620006b4565b5b5f620007408482850162000703565b91505092915050565b620007548162000605565b82525050565b5f6020820190506200076f5f83018462000749565b92915050565b612fa980620007835f395ff3fe608060405260043610610117575f3560e01c806370a082311161009f57806395d89b411161006357806395d89b411461038e578063a9059cbb146103b8578063bf474bed146103f4578063dd62ed3e1461041e578063e1c7392a1461045a5761011e565b806370a08231146102be578063715018a6146102fa5780637d1db4a5146103105780638da5cb5b1461033a5780638f9a55c0146103645761011e565b806314228b0b116100e657806314228b0b146101dc57806318160ddd1461020657806323b872dd14610230578063313ce5671461026c578063667f6526146102965761011e565b806301339c211461012257806306fdde031461014c578063095ea7b3146101765780630faee56f146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610470565b6040516101439190612112565b60405180910390f35b348015610157575f80fd5b50610160610592565b60405161016d91906121b5565b60405180910390f35b348015610181575f80fd5b5061019c60048036038101906101979190612266565b6105cf565b6040516101a99190612112565b60405180910390f35b3480156101bd575f80fd5b506101c66105ec565b6040516101d391906122b3565b60405180910390f35b3480156101e7575f80fd5b506101f061060b565b6040516101fd9190612112565b60405180910390f35b348015610211575f80fd5b5061021a61075a565b60405161022791906122b3565b60405180910390f35b34801561023b575f80fd5b50610256600480360381019061025191906122cc565b61077d565b6040516102639190612112565b60405180910390f35b348015610277575f80fd5b50610280610851565b60405161028d9190612337565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b79190612350565b610859565b005b3480156102c9575f80fd5b506102e460048036038101906102df919061238e565b6109a1565b6040516102f191906122b3565b60405180910390f35b348015610305575f80fd5b5061030e6109e7565b005b34801561031b575f80fd5b50610324610b35565b60405161033191906122b3565b60405180910390f35b348015610345575f80fd5b5061034e610b3b565b60405161035b91906123c8565b60405180910390f35b34801561036f575f80fd5b50610378610b62565b60405161038591906122b3565b60405180910390f35b348015610399575f80fd5b506103a2610b68565b6040516103af91906121b5565b60405180910390f35b3480156103c3575f80fd5b506103de60048036038101906103d99190612266565b610ba5565b6040516103eb9190612112565b60405180910390f35b3480156103ff575f80fd5b50610408610bc2565b60405161041591906122b3565b60405180910390f35b348015610429575f80fd5b50610444600480360381019061043f91906123e1565b610be1565b60405161045191906122b3565b60405180910390f35b348015610465575f80fd5b5061046e610c63565b005b5f6104796111a8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fc90612469565b60405180910390fd5b600b60149054906101000a900460ff1615610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054c906124d1565b60405180910390fd5b6001600b60176101000a81548160ff0219169083151502179055506001600b60146101000a81548160ff0219169083151502179055506001905090565b60606040518060400160405280600881526020017f436f6d756e697465000000000000000000000000000000000000000000000000815250905090565b5f6105e26105db6111a8565b84846111af565b6001905092915050565b6012600a6105fa919061264b565b629896806106089190612695565b81565b5f6106146111a8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069790612469565b60405180910390fd5b5f600b60156101000a81548160ff0219169083151502179055506012600a6106c8919061264b565b633b9aca006106d79190612695565b6008819055506012600a6106eb919061264b565b633b9aca006106fa9190612695565b6009819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a61072f919061264b565b633b9aca0061073e9190612695565b60405161074b91906122b3565b60405180910390a16001905090565b5f6012600a610769919061264b565b633b9aca006107789190612695565b905090565b5f61078984848461133d565b610846846107956111a8565b61084185604051806060016040528060288152602001612f4c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107f86111a8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bfc9092919063ffffffff16565b6111af565b600190509392505050565b5f6012905090565b6108616111a8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490612469565b60405180910390fd5b603282111580156108ff575060328111155b80156109175750600b60149054906101000a900460ff165b610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d90612720565b60405180910390fd5b81600581905550806006819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f4828260405161099592919061273e565b60405180910390a15050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109ef6111a8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7290612469565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600481526020017f434f4d5400000000000000000000000000000000000000000000000000000000815250905090565b5f610bb8610bb16111a8565b848461133d565b6001905092915050565b6012600a610bd0919061264b565b620f4240610bde9190612695565b81565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610c6b6111a8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90612469565b60405180910390fd5b600b60149054906101000a900460ff1615610d47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3e906127af565b60405180910390fd5b5f610da5610d8e6064610d8060146012600a610d63919061264b565b633b9aca00610d729190612695565b611c5e90919063ffffffff16565b611cd590919063ffffffff16565b610d97306109a1565b611d1e90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e4330600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610e2f919061264b565b633b9aca00610e3e9190612695565b6111af565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ead573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed191906127e1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7b91906127e1565b6040518363ffffffff1660e01b8152600401610f9892919061280c565b6020604051808303815f875af1158015610fb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd891906127e1565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f806110616111a8565b426040518863ffffffff1660e01b815260040161108396959493929190612875565b60606040518083038185885af115801561109f573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110c491906128e8565b505050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611164929190612938565b6020604051808303815f875af1158015611180573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a49190612989565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561121757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d906129fe565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133091906122b3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113a557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90612a66565b60405180910390fd5b5f8111611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d90612af4565b60405180910390fd5b5f61142f610b3b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561149d575061146d610b3b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561194c57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561154b5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561159e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561166e57600b60159054906101000a900460ff1615611656576008548211156115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f490612b5c565b60405180910390fd5b6009548261160a856109a1565b6116149190612b7a565b1115611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90612bf7565b60405180910390fd5b5b60075f81548092919061166890612c15565b91905055505b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116f657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561173c576117356064611727602d60075411611714576019611718565b6006545b85611c5e90919063ffffffff16565b611cd590919063ffffffff16565b9050611807565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117c457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118065761180360646117f5601e600754116117e25760146117e6565b6005545b85611c5e90919063ffffffff16565b611cd590919063ffffffff16565b90505b5b5f611811306109a1565b9050600b60169054906101000a900460ff1615801561187c5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118945750600b60179054906101000a900460ff165b80156118ba57506012600a6118a9919061264b565b620f42406118b79190612695565b81115b80156118c857506028600754115b1561194a575f6012600a6118dc919061264b565b629896806118ea9190612695565b82116118f65781611913565b6012600a611904919061264b565b629896806119129190612695565b5b90505f8185116119235784611925565b815b905061193081611d67565b5f4790505f8111156119465761194547611fd2565b5b5050505b505b5f811115611a4b576119a48160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461203a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a4291906122b3565b60405180910390a35b611a9b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b3e611af28284611d1e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461203a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611be18486611d1e90919063ffffffff16565b604051611bee91906122b3565b60405180910390a350505050565b5f838311158290611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a91906121b5565b60405180910390fd5b505f8385611c519190612c5c565b9050809150509392505050565b5f808303611c6e575f9050611ccf565b5f8284611c7b9190612695565b9050828482611c8a9190612cbc565b14611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc190612d5c565b60405180910390fd5b809150505b92915050565b5f611d1683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612097565b905092915050565b5f611d5f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bfc565b905092915050565b6001600b60166101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d9e57611d9d612d7a565b5b604051908082528060200260200182016040528015611dcc5781602001602082028036833780820191505090505b50905030815f81518110611de357611de2612da7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eab91906127e1565b81600181518110611ebf57611ebe612da7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f2530600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111af565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f87959493929190612e8b565b5f604051808303815f87803b158015611f9e575f80fd5b505af1158015611fb0573d5f803e3d5ffd5b50505050505f600b60166101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612036573d5f803e3d5ffd5b5050565b5f8082846120489190612b7a565b90508381101561208d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208490612f2d565b60405180910390fd5b8091505092915050565b5f80831182906120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d491906121b5565b60405180910390fd5b505f83856120eb9190612cbc565b9050809150509392505050565b5f8115159050919050565b61210c816120f8565b82525050565b5f6020820190506121255f830184612103565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612162578082015181840152602081019050612147565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121878261212b565b6121918185612135565b93506121a1818560208601612145565b6121aa8161216d565b840191505092915050565b5f6020820190508181035f8301526121cd818461217d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612202826121d9565b9050919050565b612212816121f8565b811461221c575f80fd5b50565b5f8135905061222d81612209565b92915050565b5f819050919050565b61224581612233565b811461224f575f80fd5b50565b5f813590506122608161223c565b92915050565b5f806040838503121561227c5761227b6121d5565b5b5f6122898582860161221f565b925050602061229a85828601612252565b9150509250929050565b6122ad81612233565b82525050565b5f6020820190506122c65f8301846122a4565b92915050565b5f805f606084860312156122e3576122e26121d5565b5b5f6122f08682870161221f565b93505060206123018682870161221f565b925050604061231286828701612252565b9150509250925092565b5f60ff82169050919050565b6123318161231c565b82525050565b5f60208201905061234a5f830184612328565b92915050565b5f8060408385031215612366576123656121d5565b5b5f61237385828601612252565b925050602061238485828601612252565b9150509250929050565b5f602082840312156123a3576123a26121d5565b5b5f6123b08482850161221f565b91505092915050565b6123c2816121f8565b82525050565b5f6020820190506123db5f8301846123b9565b92915050565b5f80604083850312156123f7576123f66121d5565b5b5f6124048582860161221f565b92505060206124158582860161221f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612453602083612135565b915061245e8261241f565b602082019050919050565b5f6020820190508181035f83015261248081612447565b9050919050565b7f74726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f6124bb601483612135565b91506124c682612487565b602082019050919050565b5f6020820190508181035f8301526124e8816124af565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125715780860481111561254d5761254c6124ef565b5b600185161561255c5780820291505b808102905061256a8561251c565b9450612531565b94509492505050565b5f826125895760019050612644565b81612596575f9050612644565b81600181146125ac57600281146125b6576125e5565b6001915050612644565b60ff8411156125c8576125c76124ef565b5b8360020a9150848211156125df576125de6124ef565b5b50612644565b5060208310610133831016604e8410600b841016171561261a5782820a905083811115612615576126146124ef565b5b612644565b6126278484846001612528565b9250905081840481111561263e5761263d6124ef565b5b81810290505b9392505050565b5f61265582612233565b91506126608361231c565b925061268d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461257a565b905092915050565b5f61269f82612233565b91506126aa83612233565b92508282026126b881612233565b915082820484148315176126cf576126ce6124ef565b5b5092915050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f61270a600d83612135565b9150612715826126d6565b602082019050919050565b5f6020820190508181035f830152612737816126fe565b9050919050565b5f6040820190506127515f8301856122a4565b61275e60208301846122a4565b9392505050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f612799601383612135565b91506127a482612765565b602082019050919050565b5f6020820190508181035f8301526127c68161278d565b9050919050565b5f815190506127db81612209565b92915050565b5f602082840312156127f6576127f56121d5565b5b5f612803848285016127cd565b91505092915050565b5f60408201905061281f5f8301856123b9565b61282c60208301846123b9565b9392505050565b5f819050919050565b5f819050919050565b5f61285f61285a61285584612833565b61283c565b612233565b9050919050565b61286f81612845565b82525050565b5f60c0820190506128885f8301896123b9565b61289560208301886122a4565b6128a26040830187612866565b6128af6060830186612866565b6128bc60808301856123b9565b6128c960a08301846122a4565b979650505050505050565b5f815190506128e28161223c565b92915050565b5f805f606084860312156128ff576128fe6121d5565b5b5f61290c868287016128d4565b935050602061291d868287016128d4565b925050604061292e868287016128d4565b9150509250925092565b5f60408201905061294b5f8301856123b9565b61295860208301846122a4565b9392505050565b612968816120f8565b8114612972575f80fd5b50565b5f815190506129838161295f565b92915050565b5f6020828403121561299e5761299d6121d5565b5b5f6129ab84828501612975565b91505092915050565b7f45524332303a20617070726f766520746865207a65726f2061646472657373005f82015250565b5f6129e8601f83612135565b91506129f3826129b4565b602082019050919050565b5f6020820190508181035f830152612a15816129dc565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f20616464726573735f82015250565b5f612a50602083612135565b9150612a5b82612a1c565b602082019050919050565b5f6020820190508181035f830152612a7d81612a44565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ade602983612135565b9150612ae982612a84565b604082019050919050565b5f6020820190508181035f830152612b0b81612ad2565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612b46601983612135565b9150612b5182612b12565b602082019050919050565b5f6020820190508181035f830152612b7381612b3a565b9050919050565b5f612b8482612233565b9150612b8f83612233565b9250828201905080821115612ba757612ba66124ef565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612be1601a83612135565b9150612bec82612bad565b602082019050919050565b5f6020820190508181035f830152612c0e81612bd5565b9050919050565b5f612c1f82612233565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c5157612c506124ef565b5b600182019050919050565b5f612c6682612233565b9150612c7183612233565b9250828203905081811115612c8957612c886124ef565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612cc682612233565b9150612cd183612233565b925082612ce157612ce0612c8f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d46602183612135565b9150612d5182612cec565b604082019050919050565b5f6020820190508181035f830152612d7381612d3a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e06816121f8565b82525050565b5f612e178383612dfd565b60208301905092915050565b5f602082019050919050565b5f612e3982612dd4565b612e438185612dde565b9350612e4e83612dee565b805f5b83811015612e7e578151612e658882612e0c565b9750612e7083612e23565b925050600181019050612e51565b5085935050505092915050565b5f60a082019050612e9e5f8301886122a4565b612eab6020830187612866565b8181036040830152612ebd8186612e2f565b9050612ecc60608301856123b9565b612ed960808301846122a4565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f17601b83612135565b9150612f2282612ee3565b602082019050919050565b5f6020820190508181035f830152612f4481612f0b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bc8a043f8687460e3fb0481dd3e4e1714b4e52ad31c9662a9945a7c974c6ed3f64736f6c63430008140033000000000000000000000000c2d57b4a7d1ca2dcca12142d03ac97e22a592cb3

Deployed Bytecode

0x608060405260043610610117575f3560e01c806370a082311161009f57806395d89b411161006357806395d89b411461038e578063a9059cbb146103b8578063bf474bed146103f4578063dd62ed3e1461041e578063e1c7392a1461045a5761011e565b806370a08231146102be578063715018a6146102fa5780637d1db4a5146103105780638da5cb5b1461033a5780638f9a55c0146103645761011e565b806314228b0b116100e657806314228b0b146101dc57806318160ddd1461020657806323b872dd14610230578063313ce5671461026c578063667f6526146102965761011e565b806301339c211461012257806306fdde031461014c578063095ea7b3146101765780630faee56f146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610470565b6040516101439190612112565b60405180910390f35b348015610157575f80fd5b50610160610592565b60405161016d91906121b5565b60405180910390f35b348015610181575f80fd5b5061019c60048036038101906101979190612266565b6105cf565b6040516101a99190612112565b60405180910390f35b3480156101bd575f80fd5b506101c66105ec565b6040516101d391906122b3565b60405180910390f35b3480156101e7575f80fd5b506101f061060b565b6040516101fd9190612112565b60405180910390f35b348015610211575f80fd5b5061021a61075a565b60405161022791906122b3565b60405180910390f35b34801561023b575f80fd5b50610256600480360381019061025191906122cc565b61077d565b6040516102639190612112565b60405180910390f35b348015610277575f80fd5b50610280610851565b60405161028d9190612337565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b79190612350565b610859565b005b3480156102c9575f80fd5b506102e460048036038101906102df919061238e565b6109a1565b6040516102f191906122b3565b60405180910390f35b348015610305575f80fd5b5061030e6109e7565b005b34801561031b575f80fd5b50610324610b35565b60405161033191906122b3565b60405180910390f35b348015610345575f80fd5b5061034e610b3b565b60405161035b91906123c8565b60405180910390f35b34801561036f575f80fd5b50610378610b62565b60405161038591906122b3565b60405180910390f35b348015610399575f80fd5b506103a2610b68565b6040516103af91906121b5565b60405180910390f35b3480156103c3575f80fd5b506103de60048036038101906103d99190612266565b610ba5565b6040516103eb9190612112565b60405180910390f35b3480156103ff575f80fd5b50610408610bc2565b60405161041591906122b3565b60405180910390f35b348015610429575f80fd5b50610444600480360381019061043f91906123e1565b610be1565b60405161045191906122b3565b60405180910390f35b348015610465575f80fd5b5061046e610c63565b005b5f6104796111a8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fc90612469565b60405180910390fd5b600b60149054906101000a900460ff1615610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054c906124d1565b60405180910390fd5b6001600b60176101000a81548160ff0219169083151502179055506001600b60146101000a81548160ff0219169083151502179055506001905090565b60606040518060400160405280600881526020017f436f6d756e697465000000000000000000000000000000000000000000000000815250905090565b5f6105e26105db6111a8565b84846111af565b6001905092915050565b6012600a6105fa919061264b565b629896806106089190612695565b81565b5f6106146111a8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069790612469565b60405180910390fd5b5f600b60156101000a81548160ff0219169083151502179055506012600a6106c8919061264b565b633b9aca006106d79190612695565b6008819055506012600a6106eb919061264b565b633b9aca006106fa9190612695565b6009819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a61072f919061264b565b633b9aca0061073e9190612695565b60405161074b91906122b3565b60405180910390a16001905090565b5f6012600a610769919061264b565b633b9aca006107789190612695565b905090565b5f61078984848461133d565b610846846107956111a8565b61084185604051806060016040528060288152602001612f4c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107f86111a8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bfc9092919063ffffffff16565b6111af565b600190509392505050565b5f6012905090565b6108616111a8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490612469565b60405180910390fd5b603282111580156108ff575060328111155b80156109175750600b60149054906101000a900460ff165b610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d90612720565b60405180910390fd5b81600581905550806006819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f4828260405161099592919061273e565b60405180910390a15050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109ef6111a8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7290612469565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600481526020017f434f4d5400000000000000000000000000000000000000000000000000000000815250905090565b5f610bb8610bb16111a8565b848461133d565b6001905092915050565b6012600a610bd0919061264b565b620f4240610bde9190612695565b81565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610c6b6111a8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90612469565b60405180910390fd5b600b60149054906101000a900460ff1615610d47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3e906127af565b60405180910390fd5b5f610da5610d8e6064610d8060146012600a610d63919061264b565b633b9aca00610d729190612695565b611c5e90919063ffffffff16565b611cd590919063ffffffff16565b610d97306109a1565b611d1e90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e4330600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610e2f919061264b565b633b9aca00610e3e9190612695565b6111af565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ead573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed191906127e1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7b91906127e1565b6040518363ffffffff1660e01b8152600401610f9892919061280c565b6020604051808303815f875af1158015610fb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd891906127e1565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f806110616111a8565b426040518863ffffffff1660e01b815260040161108396959493929190612875565b60606040518083038185885af115801561109f573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110c491906128e8565b505050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611164929190612938565b6020604051808303815f875af1158015611180573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a49190612989565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561121757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d906129fe565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133091906122b3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113a557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90612a66565b60405180910390fd5b5f8111611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d90612af4565b60405180910390fd5b5f61142f610b3b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561149d575061146d610b3b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561194c57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561154b5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561159e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561166e57600b60159054906101000a900460ff1615611656576008548211156115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f490612b5c565b60405180910390fd5b6009548261160a856109a1565b6116149190612b7a565b1115611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90612bf7565b60405180910390fd5b5b60075f81548092919061166890612c15565b91905055505b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116f657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561173c576117356064611727602d60075411611714576019611718565b6006545b85611c5e90919063ffffffff16565b611cd590919063ffffffff16565b9050611807565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117c457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118065761180360646117f5601e600754116117e25760146117e6565b6005545b85611c5e90919063ffffffff16565b611cd590919063ffffffff16565b90505b5b5f611811306109a1565b9050600b60169054906101000a900460ff1615801561187c5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118945750600b60179054906101000a900460ff165b80156118ba57506012600a6118a9919061264b565b620f42406118b79190612695565b81115b80156118c857506028600754115b1561194a575f6012600a6118dc919061264b565b629896806118ea9190612695565b82116118f65781611913565b6012600a611904919061264b565b629896806119129190612695565b5b90505f8185116119235784611925565b815b905061193081611d67565b5f4790505f8111156119465761194547611fd2565b5b5050505b505b5f811115611a4b576119a48160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461203a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a4291906122b3565b60405180910390a35b611a9b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b3e611af28284611d1e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461203a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611be18486611d1e90919063ffffffff16565b604051611bee91906122b3565b60405180910390a350505050565b5f838311158290611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a91906121b5565b60405180910390fd5b505f8385611c519190612c5c565b9050809150509392505050565b5f808303611c6e575f9050611ccf565b5f8284611c7b9190612695565b9050828482611c8a9190612cbc565b14611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc190612d5c565b60405180910390fd5b809150505b92915050565b5f611d1683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612097565b905092915050565b5f611d5f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bfc565b905092915050565b6001600b60166101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d9e57611d9d612d7a565b5b604051908082528060200260200182016040528015611dcc5781602001602082028036833780820191505090505b50905030815f81518110611de357611de2612da7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eab91906127e1565b81600181518110611ebf57611ebe612da7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f2530600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111af565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f87959493929190612e8b565b5f604051808303815f87803b158015611f9e575f80fd5b505af1158015611fb0573d5f803e3d5ffd5b50505050505f600b60166101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612036573d5f803e3d5ffd5b5050565b5f8082846120489190612b7a565b90508381101561208d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208490612f2d565b60405180910390fd5b8091505092915050565b5f80831182906120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d491906121b5565b60405180910390fd5b505f83856120eb9190612cbc565b9050809150509392505050565b5f8115159050919050565b61210c816120f8565b82525050565b5f6020820190506121255f830184612103565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612162578082015181840152602081019050612147565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121878261212b565b6121918185612135565b93506121a1818560208601612145565b6121aa8161216d565b840191505092915050565b5f6020820190508181035f8301526121cd818461217d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612202826121d9565b9050919050565b612212816121f8565b811461221c575f80fd5b50565b5f8135905061222d81612209565b92915050565b5f819050919050565b61224581612233565b811461224f575f80fd5b50565b5f813590506122608161223c565b92915050565b5f806040838503121561227c5761227b6121d5565b5b5f6122898582860161221f565b925050602061229a85828601612252565b9150509250929050565b6122ad81612233565b82525050565b5f6020820190506122c65f8301846122a4565b92915050565b5f805f606084860312156122e3576122e26121d5565b5b5f6122f08682870161221f565b93505060206123018682870161221f565b925050604061231286828701612252565b9150509250925092565b5f60ff82169050919050565b6123318161231c565b82525050565b5f60208201905061234a5f830184612328565b92915050565b5f8060408385031215612366576123656121d5565b5b5f61237385828601612252565b925050602061238485828601612252565b9150509250929050565b5f602082840312156123a3576123a26121d5565b5b5f6123b08482850161221f565b91505092915050565b6123c2816121f8565b82525050565b5f6020820190506123db5f8301846123b9565b92915050565b5f80604083850312156123f7576123f66121d5565b5b5f6124048582860161221f565b92505060206124158582860161221f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612453602083612135565b915061245e8261241f565b602082019050919050565b5f6020820190508181035f83015261248081612447565b9050919050565b7f74726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f6124bb601483612135565b91506124c682612487565b602082019050919050565b5f6020820190508181035f8301526124e8816124af565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125715780860481111561254d5761254c6124ef565b5b600185161561255c5780820291505b808102905061256a8561251c565b9450612531565b94509492505050565b5f826125895760019050612644565b81612596575f9050612644565b81600181146125ac57600281146125b6576125e5565b6001915050612644565b60ff8411156125c8576125c76124ef565b5b8360020a9150848211156125df576125de6124ef565b5b50612644565b5060208310610133831016604e8410600b841016171561261a5782820a905083811115612615576126146124ef565b5b612644565b6126278484846001612528565b9250905081840481111561263e5761263d6124ef565b5b81810290505b9392505050565b5f61265582612233565b91506126608361231c565b925061268d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461257a565b905092915050565b5f61269f82612233565b91506126aa83612233565b92508282026126b881612233565b915082820484148315176126cf576126ce6124ef565b5b5092915050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f61270a600d83612135565b9150612715826126d6565b602082019050919050565b5f6020820190508181035f830152612737816126fe565b9050919050565b5f6040820190506127515f8301856122a4565b61275e60208301846122a4565b9392505050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f612799601383612135565b91506127a482612765565b602082019050919050565b5f6020820190508181035f8301526127c68161278d565b9050919050565b5f815190506127db81612209565b92915050565b5f602082840312156127f6576127f56121d5565b5b5f612803848285016127cd565b91505092915050565b5f60408201905061281f5f8301856123b9565b61282c60208301846123b9565b9392505050565b5f819050919050565b5f819050919050565b5f61285f61285a61285584612833565b61283c565b612233565b9050919050565b61286f81612845565b82525050565b5f60c0820190506128885f8301896123b9565b61289560208301886122a4565b6128a26040830187612866565b6128af6060830186612866565b6128bc60808301856123b9565b6128c960a08301846122a4565b979650505050505050565b5f815190506128e28161223c565b92915050565b5f805f606084860312156128ff576128fe6121d5565b5b5f61290c868287016128d4565b935050602061291d868287016128d4565b925050604061292e868287016128d4565b9150509250925092565b5f60408201905061294b5f8301856123b9565b61295860208301846122a4565b9392505050565b612968816120f8565b8114612972575f80fd5b50565b5f815190506129838161295f565b92915050565b5f6020828403121561299e5761299d6121d5565b5b5f6129ab84828501612975565b91505092915050565b7f45524332303a20617070726f766520746865207a65726f2061646472657373005f82015250565b5f6129e8601f83612135565b91506129f3826129b4565b602082019050919050565b5f6020820190508181035f830152612a15816129dc565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f20616464726573735f82015250565b5f612a50602083612135565b9150612a5b82612a1c565b602082019050919050565b5f6020820190508181035f830152612a7d81612a44565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ade602983612135565b9150612ae982612a84565b604082019050919050565b5f6020820190508181035f830152612b0b81612ad2565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612b46601983612135565b9150612b5182612b12565b602082019050919050565b5f6020820190508181035f830152612b7381612b3a565b9050919050565b5f612b8482612233565b9150612b8f83612233565b9250828201905080821115612ba757612ba66124ef565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612be1601a83612135565b9150612bec82612bad565b602082019050919050565b5f6020820190508181035f830152612c0e81612bd5565b9050919050565b5f612c1f82612233565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c5157612c506124ef565b5b600182019050919050565b5f612c6682612233565b9150612c7183612233565b9250828203905081811115612c8957612c886124ef565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612cc682612233565b9150612cd183612233565b925082612ce157612ce0612c8f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d46602183612135565b9150612d5182612cec565b604082019050919050565b5f6020820190508181035f830152612d7381612d3a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e06816121f8565b82525050565b5f612e178383612dfd565b60208301905092915050565b5f602082019050919050565b5f612e3982612dd4565b612e438185612dde565b9350612e4e83612dee565b805f5b83811015612e7e578151612e658882612e0c565b9750612e7083612e23565b925050600181019050612e51565b5085935050505092915050565b5f60a082019050612e9e5f8301886122a4565b612eab6020830187612866565b8181036040830152612ebd8186612e2f565b9050612ecc60608301856123b9565b612ed960808301846122a4565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f17601b83612135565b9150612f2282612ee3565b602082019050919050565b5f6020820190508181035f830152612f4481612f0b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bc8a043f8687460e3fb0481dd3e4e1714b4e52ad31c9662a9945a7c974c6ed3f64736f6c63430008140033

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

000000000000000000000000c2d57b4a7d1ca2dcca12142d03ac97e22a592cb3

-----Decoded View---------------
Arg [0] : taxWallet (address): 0xC2d57B4a7d1ca2dcCa12142d03Ac97e22A592cb3

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c2d57b4a7d1ca2dcca12142d03ac97e22a592cb3


Deployed Bytecode Sourcemap

3750:8184:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11170:196;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5816:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6649:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4796:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11374:219;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6093:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6818:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6002:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11605:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6196:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2833:148;;;;;;;;;;;;;:::i;:::-;;4865:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2619:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4928:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5907:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6323:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4722:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6498:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10349:813;;;;;;;;;;;;;:::i;:::-;;11170:196;11217:4;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11243:11:::1;;;;;;;;;;;11242:12;11234:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11303:4;11289:11;;:18;;;;;;;;;;;;;;;;;;11332:4;11318:11;;:18;;;;;;;;;;;;;;;;;;11354:4;11347:11;;11170:196:::0;:::o;5816:83::-;5853:13;5886:5;;;;;;;;;;;;;;;;;5879:12;;5816:83;:::o;6649:161::-;6724:4;6741:39;6750:12;:10;:12::i;:::-;6764:7;6773:6;6741:8;:39::i;:::-;6798:4;6791:11;;6649:161;;;;:::o;4796:62::-;4533:2;4845;:13;;;;:::i;:::-;4834:8;:24;;;;:::i;:::-;4796:62;:::o;11374:219::-;11427:4;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11457:5:::1;11443:11;;:19;;;;;;;;;;;;;;;;;;4533:2;4590;:13;;;;:::i;:::-;4577:10;:26;;;;:::i;:::-;11473:12;:21;;;;4533:2;4590;:13;;;;:::i;:::-;4577:10;:26;;;;:::i;:::-;11505:14;:23;;;;11544:19;4533:2;4590;:13;;;;:::i;:::-;4577:10;:26;;;;:::i;:::-;11544:19;;;;;;:::i;:::-;;;;;;;;11581:4;11574:11;;11374:219:::0;:::o;6093:95::-;6146:7;4533:2;4590;:13;;;;:::i;:::-;4577:10;:26;;;;:::i;:::-;6166:14;;6093:95;:::o;6818:313::-;6916:4;6933:36;6943:6;6951:9;6962:6;6933:9;:36::i;:::-;6980:121;6989:6;6997:12;:10;:12::i;:::-;7011:89;7049:6;7011:89;;;;;;;;;;;;;;;;;:11;:19;7023:6;7011:19;;;;;;;;;;;;;;;:33;7031:12;:10;:12::i;:::-;7011:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6980:8;:121::i;:::-;7119:4;7112:11;;6818:313;;;;;:::o;6002:83::-;6043:5;4533:2;6061:16;;6002:83;:::o;11605:289::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11712:2:::1;11699:9;:15;;:35;;;;;11732:2;11718:10;:16;;11699:35;:50;;;;;11738:11;;;;;;;;;;;11699:50;11691:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;11793:9;11778:12;:24;;;;11829:10;11813:13;:26;;;;11855:31;11864:9;11875:10;11855:31;;;;;;;:::i;:::-;;;;;;;;11605:289:::0;;:::o;6196:119::-;6262:7;6289:9;:18;6299:7;6289:18;;;;;;;;;;;;;;;;6282:25;;6196:119;;;:::o;2833:148::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2940:1:::1;2903:40;;2924:6;::::0;::::1;;;;;;;;2903:40;;;;;;;;;;;;2971:1;2954:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2833:148::o:0;4865:56::-;;;;:::o;2619:79::-;2657:7;2684:6;;;;;;;;;;;2677:13;;2619:79;:::o;4928:56::-;;;;:::o;5907:87::-;5946:13;5979:7;;;;;;;;;;;;;;;;;5972:14;;5907:87;:::o;6323:167::-;6401:4;6418:42;6428:12;:10;:12::i;:::-;6442:9;6453:6;6418:9;:42::i;:::-;6478:4;6471:11;;6323:167;;;;:::o;4722:67::-;4533:2;4776;:13;;;;:::i;:::-;4766:7;:23;;;;:::i;:::-;4722:67;:::o;6498:143::-;6579:7;6606:11;:18;6618:5;6606:18;;;;;;;;;;;;;;;:27;6625:7;6606:27;;;;;;;;;;;;;;;;6599:34;;6498:143;;;;:::o;10349:813::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10406:11:::1;;;;;;;;;;;10405:12;10397:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10451:19;10473:66;10502:36;10534:3;10502:27;4172:2;4533;4590;:13;;;;:::i;:::-;4577:10;:26;;;;:::i;:::-;10502:11;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;10473:24;10491:4;10473:9;:24::i;:::-;:28;;:66;;;;:::i;:::-;10451:88;;10587:42;10550:15;;:80;;;;;;;;;;;;;;;;;;10641:58;10658:4;10673:15;;;;;;;;;;;4533:2;4590;:13;;;;:::i;:::-;4577:10;:26;;;;:::i;:::-;10641:8;:58::i;:::-;10744:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10726:69;;;10804:4;10811:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10726:118;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10710:13;;:134;;;;;;;;;;;;;;;;;;10855:15;;;;;;;;;;;:31;;;10894:21;10940:4;10960:11;10986:1;11002::::0;11018:12:::1;:10;:12::i;:::-;11045:15;10855:216;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11089:13;;;;;;;;;;;11082:29;;;11120:15;;;;;;;;;;;11138:14;11082:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10386:776;10349:813::o:0;376:98::-;429:7;456:10;449:17;;376:98;:::o;7139:276::-;7249:1;7232:19;;:5;:19;;;;:44;;;;;7274:1;7255:21;;:7;:21;;;;7232:44;7224:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;7353:6;7323:11;:18;7335:5;7323:18;;;;;;;;;;;;;;;:27;7342:7;7323:27;;;;;;;;;;;;;;;:36;;;;7391:7;7375:32;;7384:5;7375:32;;;7400:6;7375:32;;;;;;:::i;:::-;;;;;;;;7139:276;;;:::o;7423:2327::-;7527:1;7511:18;;:4;:18;;;;:38;;;;;7547:1;7533:16;;:2;:16;;;;7511:38;7503:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;7614:1;7605:6;:10;7597:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7672:17;7716:7;:5;:7::i;:::-;7708:15;;:4;:15;;;;:32;;;;;7733:7;:5;:7::i;:::-;7727:13;;:2;:13;;;;7708:32;7704:1690;;;7772:13;;;;;;;;;;;7764:21;;:4;:21;;;:55;;;;;7803:15;;;;;;;;;;;7789:30;;:2;:30;;;;7764:55;:83;;;;;7825:18;:22;7844:2;7825:22;;;;;;;;;;;;;;;;;;;;;;;;;7823:24;7764:83;7760:377;;;7873:11;;;;;;;;;;;7869:222;;;7927:12;;7917:6;:22;;7909:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8026:14;;8016:6;8000:13;8010:2;8000:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7992:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7869:222;8110:9;;:11;;;;;;;;;:::i;:::-;;;;;;7760:377;8176:13;;;;;;;;;;;8170:19;;:2;:19;;;:43;;;;;8208:4;8193:20;;:4;:20;;;;8170:43;8165:471;;;8246:138;8362:3;8246:111;4323:2;8277:9;;:26;8276:80;;4222:2;8276:80;;;8327:13;;8276:80;8246:6;:10;;:111;;;;:::i;:::-;:115;;:138;;;;:::i;:::-;8234:150;;8165:471;;;8418:13;;;;;;;;;;;8410:21;;:4;:21;;;:43;;;;;8448:4;8435:18;;:2;:18;;;;8410:43;8406:230;;;8486:134;8598:3;8486:107;4272:2;8516:9;;:25;8515:77;;4172:2;8515:77;;;8565:12;;8515:77;8486:6;:10;;:107;;;;:::i;:::-;:111;;:134;;;;:::i;:::-;8474:146;;8406:230;8165:471;8652:28;8683:24;8701:4;8683:9;:24::i;:::-;8652:55;;8745:6;;;;;;;;;;;8744:7;:48;;;;;8779:13;;;;;;;;;;;8773:19;;:2;:19;;;8744:48;:81;;;;;8814:11;;;;;;;;;;;8744:81;:141;;;;;4533:2;4776;:13;;;;:::i;:::-;4766:7;:23;;;;:::i;:::-;8847:20;:38;8744:141;:191;;;;;4376:2;8907:9;;:28;8744:191;8722:661;;;8969:14;4533:2;4845;:13;;;;:::i;:::-;4834:8;:24;;;;:::i;:::-;8987:20;:34;8986:69;;9035:20;8986:69;;;4533:2;4845;:13;;;;:::i;:::-;4834:8;:24;;;;:::i;:::-;8986:69;8969:86;;9074:20;9105:6;9098;:13;9097:29;;9120:6;9097:29;;;9113:6;9097:29;9074:52;;9145:30;9162:12;9145:16;:30::i;:::-;9194:26;9223:21;9194:50;;9287:1;9266:18;:22;9263:105;;;9313:35;9326:21;9313:12;:35::i;:::-;9263:105;8950:433;;;8722:661;7742:1652;7704:1690;9419:1;9409:9;:11;9406:161;;;9459:39;9488:9;9459;:24;9477:4;9459:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9434:9;:24;9452:4;9434:24;;;;;;;;;;;;;;;:64;;;;9539:4;9516:39;;9525:4;9516:39;;;9545:9;9516:39;;;;;;:::i;:::-;;;;;;;;9406:161;9593:27;9613:6;9593:9;:15;9603:4;9593:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9577:9;:15;9587:4;9577:15;;;;;;;;;;;;;;;:43;;;;9645:40;9663:21;9674:9;9663:6;:10;;:21;;;;:::i;:::-;9645:9;:13;9655:2;9645:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9631:9;:13;9641:2;9631:13;;;;;;;;;;;;;;;:54;;;;9716:2;9701:41;;9710:4;9701:41;;;9720:21;9731:9;9720:6;:10;;:21;;;;:::i;:::-;9701:41;;;;;;:::i;:::-;;;;;;;;7492:2258;7423:2327;;;:::o;1513:190::-;1599:7;1632:1;1627;:6;;1635:12;1619:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1659:9;1675:1;1671;:5;;;;:::i;:::-;1659:17;;1694:1;1687:8;;;1513:190;;;;;:::o;1711:246::-;1769:7;1798:1;1793;:6;1789:47;;1823:1;1816:8;;;;1789:47;1846:9;1862:1;1858;:5;;;;:::i;:::-;1846:17;;1891:1;1886;1882;:5;;;;:::i;:::-;:10;1874:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1948:1;1941:8;;;1711:246;;;;;:::o;1965:132::-;2023:7;2050:39;2054:1;2057;2050:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2043:46;;1965:132;;;;:::o;1369:136::-;1427:7;1454:43;1458:1;1461;1454:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1447:50;;1369:136;;;;:::o;9858:483::-;5362:4;5353:6;;:13;;;;;;;;;;;;;;;;;;9936:21:::1;9974:1;9960:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9936:40;;10005:4;9987;9992:1;9987:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10031:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10021:4;10026:1;10021:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10064:62;10081:4;10096:15;;;;;;;;;;;10114:11;10064:8;:62::i;:::-;10137:15;;;;;;;;;;;:66;;;10218:11;10244:1;10260:4;10287;10307:15;10137:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9925:416;5398:5:::0;5389:6;;:14;;;;;;;;;;;;;;;;;;9858:483;:::o;9758:92::-;9815:10;;;;;;;;;;;:19;;:27;9835:6;9815:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9758:92;:::o;1182:179::-;1240:7;1260:9;1276:1;1272;:5;;;;:::i;:::-;1260:17;;1301:1;1296;:6;;1288:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1352:1;1345:8;;;1182:179;;;;:::o;2105:189::-;2191:7;2223:1;2219;:5;2226:12;2211:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2250:9;2266:1;2262;:5;;;;:::i;:::-;2250:17;;2285:1;2278:8;;;2105:189;;;;;:::o;7:90:1:-;41:7;84:5;77:13;70:21;59:32;;7:90;;;:::o;103:109::-;184:21;199:5;184:21;:::i;:::-;179:3;172:34;103:109;;:::o;218:210::-;305:4;343:2;332:9;328:18;320:26;;356:65;418:1;407:9;403:17;394:6;356:65;:::i;:::-;218:210;;;;:::o;434:99::-;486:6;520:5;514:12;504:22;;434:99;;;:::o;539:169::-;623:11;657:6;652:3;645:19;697:4;692:3;688:14;673:29;;539:169;;;;:::o;714:246::-;795:1;805:113;819:6;816:1;813:13;805:113;;;904:1;899:3;895:11;889:18;885:1;880:3;876:11;869:39;841:2;838:1;834:10;829:15;;805:113;;;952:1;943:6;938:3;934:16;927:27;776:184;714:246;;;:::o;966:102::-;1007:6;1058:2;1054:7;1049:2;1042:5;1038:14;1034:28;1024:38;;966:102;;;:::o;1074:377::-;1162:3;1190:39;1223:5;1190:39;:::i;:::-;1245:71;1309:6;1304:3;1245:71;:::i;:::-;1238:78;;1325:65;1383:6;1378:3;1371:4;1364:5;1360:16;1325:65;:::i;:::-;1415:29;1437:6;1415:29;:::i;:::-;1410:3;1406:39;1399:46;;1166:285;1074:377;;;;:::o;1457:313::-;1570:4;1608:2;1597:9;1593:18;1585:26;;1657:9;1651:4;1647:20;1643:1;1632:9;1628:17;1621:47;1685:78;1758:4;1749:6;1685:78;:::i;:::-;1677:86;;1457:313;;;;:::o;1857:117::-;1966:1;1963;1956:12;2103:126;2140:7;2180:42;2173:5;2169:54;2158:65;;2103:126;;;:::o;2235:96::-;2272:7;2301:24;2319:5;2301:24;:::i;:::-;2290:35;;2235:96;;;:::o;2337:122::-;2410:24;2428:5;2410:24;:::i;:::-;2403:5;2400:35;2390:63;;2449:1;2446;2439:12;2390:63;2337:122;:::o;2465:139::-;2511:5;2549:6;2536:20;2527:29;;2565:33;2592:5;2565:33;:::i;:::-;2465:139;;;;:::o;2610:77::-;2647:7;2676:5;2665:16;;2610:77;;;:::o;2693:122::-;2766:24;2784:5;2766:24;:::i;:::-;2759:5;2756:35;2746:63;;2805:1;2802;2795:12;2746:63;2693:122;:::o;2821:139::-;2867:5;2905:6;2892:20;2883:29;;2921:33;2948:5;2921:33;:::i;:::-;2821:139;;;;:::o;2966:474::-;3034:6;3042;3091:2;3079:9;3070:7;3066:23;3062:32;3059:119;;;3097:79;;:::i;:::-;3059:119;3217:1;3242:53;3287:7;3278:6;3267:9;3263:22;3242:53;:::i;:::-;3232:63;;3188:117;3344:2;3370:53;3415:7;3406:6;3395:9;3391:22;3370:53;:::i;:::-;3360:63;;3315:118;2966:474;;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:474::-;4921:6;4929;4978:2;4966:9;4957:7;4953:23;4949:32;4946:119;;;4984:79;;:::i;:::-;4946:119;5104:1;5129:53;5174:7;5165:6;5154:9;5150:22;5129:53;:::i;:::-;5119:63;;5075:117;5231:2;5257:53;5302:7;5293:6;5282:9;5278:22;5257:53;:::i;:::-;5247:63;;5202:118;4853:474;;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:182::-;6640:34;6636:1;6628:6;6624:14;6617:58;6500:182;:::o;6688:366::-;6830:3;6851:67;6915:2;6910:3;6851:67;:::i;:::-;6844:74;;6927:93;7016:3;6927:93;:::i;:::-;7045:2;7040:3;7036:12;7029:19;;6688:366;;;:::o;7060:419::-;7226:4;7264:2;7253:9;7249:18;7241:26;;7313:9;7307:4;7303:20;7299:1;7288:9;7284:17;7277:47;7341:131;7467:4;7341:131;:::i;:::-;7333:139;;7060:419;;;:::o;7485:170::-;7625:22;7621:1;7613:6;7609:14;7602:46;7485:170;:::o;7661:366::-;7803:3;7824:67;7888:2;7883:3;7824:67;:::i;:::-;7817:74;;7900:93;7989:3;7900:93;:::i;:::-;8018:2;8013:3;8009:12;8002:19;;7661:366;;;:::o;8033:419::-;8199:4;8237:2;8226:9;8222:18;8214:26;;8286:9;8280:4;8276:20;8272:1;8261:9;8257:17;8250:47;8314:131;8440:4;8314:131;:::i;:::-;8306:139;;8033:419;;;:::o;8458:180::-;8506:77;8503:1;8496:88;8603:4;8600:1;8593:15;8627:4;8624:1;8617:15;8644:102;8686:8;8733:5;8730:1;8726:13;8705:34;;8644:102;;;:::o;8752:848::-;8813:5;8820:4;8844:6;8835:15;;8868:5;8859:14;;8882:712;8903:1;8893:8;8890:15;8882:712;;;8998:4;8993:3;8989:14;8983:4;8980:24;8977:50;;;9007:18;;:::i;:::-;8977:50;9057:1;9047:8;9043:16;9040:451;;;9472:4;9465:5;9461:16;9452:25;;9040:451;9522:4;9516;9512:15;9504:23;;9552:32;9575:8;9552:32;:::i;:::-;9540:44;;8882:712;;;8752:848;;;;;;;:::o;9606:1073::-;9660:5;9851:8;9841:40;;9872:1;9863:10;;9874:5;;9841:40;9900:4;9890:36;;9917:1;9908:10;;9919:5;;9890:36;9986:4;10034:1;10029:27;;;;10070:1;10065:191;;;;9979:277;;10029:27;10047:1;10038:10;;10049:5;;;10065:191;10110:3;10100:8;10097:17;10094:43;;;10117:18;;:::i;:::-;10094:43;10166:8;10163:1;10159:16;10150:25;;10201:3;10194:5;10191:14;10188:40;;;10208:18;;:::i;:::-;10188:40;10241:5;;;9979:277;;10365:2;10355:8;10352:16;10346:3;10340:4;10337:13;10333:36;10315:2;10305:8;10302:16;10297:2;10291:4;10288:12;10284:35;10268:111;10265:246;;;10421:8;10415:4;10411:19;10402:28;;10456:3;10449:5;10446:14;10443:40;;;10463:18;;:::i;:::-;10443:40;10496:5;;10265:246;10536:42;10574:3;10564:8;10558:4;10555:1;10536:42;:::i;:::-;10521:57;;;;10610:4;10605:3;10601:14;10594:5;10591:25;10588:51;;;10619:18;;:::i;:::-;10588:51;10668:4;10661:5;10657:16;10648:25;;9606:1073;;;;;;:::o;10685:281::-;10743:5;10767:23;10785:4;10767:23;:::i;:::-;10759:31;;10811:25;10827:8;10811:25;:::i;:::-;10799:37;;10855:104;10892:66;10882:8;10876:4;10855:104;:::i;:::-;10846:113;;10685:281;;;;:::o;10972:410::-;11012:7;11035:20;11053:1;11035:20;:::i;:::-;11030:25;;11069:20;11087:1;11069:20;:::i;:::-;11064:25;;11124:1;11121;11117:9;11146:30;11164:11;11146:30;:::i;:::-;11135:41;;11325:1;11316:7;11312:15;11309:1;11306:22;11286:1;11279:9;11259:83;11236:139;;11355:18;;:::i;:::-;11236:139;11020:362;10972:410;;;;:::o;11388:163::-;11528:15;11524:1;11516:6;11512:14;11505:39;11388:163;:::o;11557:366::-;11699:3;11720:67;11784:2;11779:3;11720:67;:::i;:::-;11713:74;;11796:93;11885:3;11796:93;:::i;:::-;11914:2;11909:3;11905:12;11898:19;;11557:366;;;:::o;11929:419::-;12095:4;12133:2;12122:9;12118:18;12110:26;;12182:9;12176:4;12172:20;12168:1;12157:9;12153:17;12146:47;12210:131;12336:4;12210:131;:::i;:::-;12202:139;;11929:419;;;:::o;12354:332::-;12475:4;12513:2;12502:9;12498:18;12490:26;;12526:71;12594:1;12583:9;12579:17;12570:6;12526:71;:::i;:::-;12607:72;12675:2;12664:9;12660:18;12651:6;12607:72;:::i;:::-;12354:332;;;;;:::o;12692:169::-;12832:21;12828:1;12820:6;12816:14;12809:45;12692:169;:::o;12867:366::-;13009:3;13030:67;13094:2;13089:3;13030:67;:::i;:::-;13023:74;;13106:93;13195:3;13106:93;:::i;:::-;13224:2;13219:3;13215:12;13208:19;;12867:366;;;:::o;13239:419::-;13405:4;13443:2;13432:9;13428:18;13420:26;;13492:9;13486:4;13482:20;13478:1;13467:9;13463:17;13456:47;13520:131;13646:4;13520:131;:::i;:::-;13512:139;;13239:419;;;:::o;13664:143::-;13721:5;13752:6;13746:13;13737:22;;13768:33;13795:5;13768:33;:::i;:::-;13664:143;;;;:::o;13813:351::-;13883:6;13932:2;13920:9;13911:7;13907:23;13903:32;13900:119;;;13938:79;;:::i;:::-;13900:119;14058:1;14083:64;14139:7;14130:6;14119:9;14115:22;14083:64;:::i;:::-;14073:74;;14029:128;13813:351;;;;:::o;14170:332::-;14291:4;14329:2;14318:9;14314:18;14306:26;;14342:71;14410:1;14399:9;14395:17;14386:6;14342:71;:::i;:::-;14423:72;14491:2;14480:9;14476:18;14467:6;14423:72;:::i;:::-;14170:332;;;;;:::o;14508:85::-;14553:7;14582:5;14571:16;;14508:85;;;:::o;14599:60::-;14627:3;14648:5;14641:12;;14599:60;;;:::o;14665:158::-;14723:9;14756:61;14774:42;14783:32;14809:5;14783:32;:::i;:::-;14774:42;:::i;:::-;14756:61;:::i;:::-;14743:74;;14665:158;;;:::o;14829:147::-;14924:45;14963:5;14924:45;:::i;:::-;14919:3;14912:58;14829:147;;:::o;14982:807::-;15231:4;15269:3;15258:9;15254:19;15246:27;;15283:71;15351:1;15340:9;15336:17;15327:6;15283:71;:::i;:::-;15364:72;15432:2;15421:9;15417:18;15408:6;15364:72;:::i;:::-;15446:80;15522:2;15511:9;15507:18;15498:6;15446:80;:::i;:::-;15536;15612:2;15601:9;15597:18;15588:6;15536:80;:::i;:::-;15626:73;15694:3;15683:9;15679:19;15670:6;15626:73;:::i;:::-;15709;15777:3;15766:9;15762:19;15753:6;15709:73;:::i;:::-;14982:807;;;;;;;;;:::o;15795:143::-;15852:5;15883:6;15877:13;15868:22;;15899:33;15926:5;15899:33;:::i;:::-;15795:143;;;;:::o;15944:663::-;16032:6;16040;16048;16097:2;16085:9;16076:7;16072:23;16068:32;16065:119;;;16103:79;;:::i;:::-;16065:119;16223:1;16248:64;16304:7;16295:6;16284:9;16280:22;16248:64;:::i;:::-;16238:74;;16194:128;16361:2;16387:64;16443:7;16434:6;16423:9;16419:22;16387:64;:::i;:::-;16377:74;;16332:129;16500:2;16526:64;16582:7;16573:6;16562:9;16558:22;16526:64;:::i;:::-;16516:74;;16471:129;15944:663;;;;;:::o;16613:332::-;16734:4;16772:2;16761:9;16757:18;16749:26;;16785:71;16853:1;16842:9;16838:17;16829:6;16785:71;:::i;:::-;16866:72;16934:2;16923:9;16919:18;16910:6;16866:72;:::i;:::-;16613:332;;;;;:::o;16951:116::-;17021:21;17036:5;17021:21;:::i;:::-;17014:5;17011:32;17001:60;;17057:1;17054;17047:12;17001:60;16951:116;:::o;17073:137::-;17127:5;17158:6;17152:13;17143:22;;17174:30;17198:5;17174:30;:::i;:::-;17073:137;;;;:::o;17216:345::-;17283:6;17332:2;17320:9;17311:7;17307:23;17303:32;17300:119;;;17338:79;;:::i;:::-;17300:119;17458:1;17483:61;17536:7;17527:6;17516:9;17512:22;17483:61;:::i;:::-;17473:71;;17429:125;17216:345;;;;:::o;17567:181::-;17707:33;17703:1;17695:6;17691:14;17684:57;17567:181;:::o;17754:366::-;17896:3;17917:67;17981:2;17976:3;17917:67;:::i;:::-;17910:74;;17993:93;18082:3;17993:93;:::i;:::-;18111:2;18106:3;18102:12;18095:19;;17754:366;;;:::o;18126:419::-;18292:4;18330:2;18319:9;18315:18;18307:26;;18379:9;18373:4;18369:20;18365:1;18354:9;18350:17;18343:47;18407:131;18533:4;18407:131;:::i;:::-;18399:139;;18126:419;;;:::o;18551:182::-;18691:34;18687:1;18679:6;18675:14;18668:58;18551:182;:::o;18739:366::-;18881:3;18902:67;18966:2;18961:3;18902:67;:::i;:::-;18895:74;;18978:93;19067:3;18978:93;:::i;:::-;19096:2;19091:3;19087:12;19080:19;;18739:366;;;:::o;19111:419::-;19277:4;19315:2;19304:9;19300:18;19292:26;;19364:9;19358:4;19354:20;19350:1;19339:9;19335:17;19328:47;19392:131;19518:4;19392:131;:::i;:::-;19384:139;;19111:419;;;:::o;19536:228::-;19676:34;19672:1;19664:6;19660:14;19653:58;19745:11;19740:2;19732:6;19728:15;19721:36;19536:228;:::o;19770:366::-;19912:3;19933:67;19997:2;19992:3;19933:67;:::i;:::-;19926:74;;20009:93;20098:3;20009:93;:::i;:::-;20127:2;20122:3;20118:12;20111:19;;19770:366;;;:::o;20142:419::-;20308:4;20346:2;20335:9;20331:18;20323:26;;20395:9;20389:4;20385:20;20381:1;20370:9;20366:17;20359:47;20423:131;20549:4;20423:131;:::i;:::-;20415:139;;20142:419;;;:::o;20567:175::-;20707:27;20703:1;20695:6;20691:14;20684:51;20567:175;:::o;20748:366::-;20890:3;20911:67;20975:2;20970:3;20911:67;:::i;:::-;20904:74;;20987:93;21076:3;20987:93;:::i;:::-;21105:2;21100:3;21096:12;21089:19;;20748:366;;;:::o;21120:419::-;21286:4;21324:2;21313:9;21309:18;21301:26;;21373:9;21367:4;21363:20;21359:1;21348:9;21344:17;21337:47;21401:131;21527:4;21401:131;:::i;:::-;21393:139;;21120:419;;;:::o;21545:191::-;21585:3;21604:20;21622:1;21604:20;:::i;:::-;21599:25;;21638:20;21656:1;21638:20;:::i;:::-;21633:25;;21681:1;21678;21674:9;21667:16;;21702:3;21699:1;21696:10;21693:36;;;21709:18;;:::i;:::-;21693:36;21545:191;;;;:::o;21742:176::-;21882:28;21878:1;21870:6;21866:14;21859:52;21742:176;:::o;21924:366::-;22066:3;22087:67;22151:2;22146:3;22087:67;:::i;:::-;22080:74;;22163:93;22252:3;22163:93;:::i;:::-;22281:2;22276:3;22272:12;22265:19;;21924:366;;;:::o;22296:419::-;22462:4;22500:2;22489:9;22485:18;22477:26;;22549:9;22543:4;22539:20;22535:1;22524:9;22520:17;22513:47;22577:131;22703:4;22577:131;:::i;:::-;22569:139;;22296:419;;;:::o;22721:233::-;22760:3;22783:24;22801:5;22783:24;:::i;:::-;22774:33;;22829:66;22822:5;22819:77;22816:103;;22899:18;;:::i;:::-;22816:103;22946:1;22939:5;22935:13;22928:20;;22721:233;;;:::o;22960:194::-;23000:4;23020:20;23038:1;23020:20;:::i;:::-;23015:25;;23054:20;23072:1;23054:20;:::i;:::-;23049:25;;23098:1;23095;23091:9;23083:17;;23122:1;23116:4;23113:11;23110:37;;;23127:18;;:::i;:::-;23110:37;22960:194;;;;:::o;23160:180::-;23208:77;23205:1;23198:88;23305:4;23302:1;23295:15;23329:4;23326:1;23319:15;23346:185;23386:1;23403:20;23421:1;23403:20;:::i;:::-;23398:25;;23437:20;23455:1;23437:20;:::i;:::-;23432:25;;23476:1;23466:35;;23481:18;;:::i;:::-;23466:35;23523:1;23520;23516:9;23511:14;;23346:185;;;;:::o;23537:220::-;23677:34;23673:1;23665:6;23661:14;23654:58;23746:3;23741:2;23733:6;23729:15;23722:28;23537:220;:::o;23763:366::-;23905:3;23926:67;23990:2;23985:3;23926:67;:::i;:::-;23919:74;;24002:93;24091:3;24002:93;:::i;:::-;24120:2;24115:3;24111:12;24104:19;;23763:366;;;:::o;24135:419::-;24301:4;24339:2;24328:9;24324:18;24316:26;;24388:9;24382:4;24378:20;24374:1;24363:9;24359:17;24352:47;24416:131;24542:4;24416:131;:::i;:::-;24408:139;;24135:419;;;:::o;24560:180::-;24608:77;24605:1;24598:88;24705:4;24702:1;24695:15;24729:4;24726:1;24719:15;24746:180;24794:77;24791:1;24784:88;24891:4;24888:1;24881:15;24915:4;24912:1;24905:15;24932:114;24999:6;25033:5;25027:12;25017:22;;24932:114;;;:::o;25052:184::-;25151:11;25185:6;25180:3;25173:19;25225:4;25220:3;25216:14;25201:29;;25052:184;;;;:::o;25242:132::-;25309:4;25332:3;25324:11;;25362:4;25357:3;25353:14;25345:22;;25242:132;;;:::o;25380:108::-;25457:24;25475:5;25457:24;:::i;:::-;25452:3;25445:37;25380:108;;:::o;25494:179::-;25563:10;25584:46;25626:3;25618:6;25584:46;:::i;:::-;25662:4;25657:3;25653:14;25639:28;;25494:179;;;;:::o;25679:113::-;25749:4;25781;25776:3;25772:14;25764:22;;25679:113;;;:::o;25828:732::-;25947:3;25976:54;26024:5;25976:54;:::i;:::-;26046:86;26125:6;26120:3;26046:86;:::i;:::-;26039:93;;26156:56;26206:5;26156:56;:::i;:::-;26235:7;26266:1;26251:284;26276:6;26273:1;26270:13;26251:284;;;26352:6;26346:13;26379:63;26438:3;26423:13;26379:63;:::i;:::-;26372:70;;26465:60;26518:6;26465:60;:::i;:::-;26455:70;;26311:224;26298:1;26295;26291:9;26286:14;;26251:284;;;26255:14;26551:3;26544:10;;25952:608;;;25828:732;;;;:::o;26566:831::-;26829:4;26867:3;26856:9;26852:19;26844:27;;26881:71;26949:1;26938:9;26934:17;26925:6;26881:71;:::i;:::-;26962:80;27038:2;27027:9;27023:18;27014:6;26962:80;:::i;:::-;27089:9;27083:4;27079:20;27074:2;27063:9;27059:18;27052:48;27117:108;27220:4;27211:6;27117:108;:::i;:::-;27109:116;;27235:72;27303:2;27292:9;27288:18;27279:6;27235:72;:::i;:::-;27317:73;27385:3;27374:9;27370:19;27361:6;27317:73;:::i;:::-;26566:831;;;;;;;;:::o;27403:177::-;27543:29;27539:1;27531:6;27527:14;27520:53;27403:177;:::o;27586:366::-;27728:3;27749:67;27813:2;27808:3;27749:67;:::i;:::-;27742:74;;27825:93;27914:3;27825:93;:::i;:::-;27943:2;27938:3;27934:12;27927:19;;27586:366;;;:::o;27958:419::-;28124:4;28162:2;28151:9;28147:18;28139:26;;28211:9;28205:4;28201:20;28197:1;28186:9;28182:17;28175:47;28239:131;28365:4;28239:131;:::i;:::-;28231:139;;27958:419;;;:::o

Swarm Source

ipfs://bc8a043f8687460e3fb0481dd3e4e1714b4e52ad31c9662a9945a7c974c6ed3f

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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