ETH Price: $2,482.60 (+1.77%)

Contract

0x55ffD57404A8A16485649FA27B9BfA4B3cD05086
 

Overview

ETH Balance

0.014787798153989444 ETH

Eth Value

$36.71 (@ $2,482.60/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve184889432023-11-03 3:45:47344 days ago1698983147IN
0x55ffD574...B3cD05086
0 ETH0.000324310.84998727
Approve184889292023-11-03 3:42:59344 days ago1698982979IN
0x55ffD574...B3cD05086
0 ETH0.0005030410.659159
Approve184889292023-11-03 3:42:59344 days ago1698982979IN
0x55ffD574...B3cD05086
0 ETH0.000621113.1439111
Approve184889132023-11-03 3:39:47344 days ago1698982787IN
0x55ffD574...B3cD05086
0 ETH0.0005805212.28526985
Approve184889052023-11-03 3:38:11344 days ago1698982691IN
0x55ffD574...B3cD05086
0 ETH0.000585112.3978392
Approve184889052023-11-03 3:38:11344 days ago1698982691IN
0x55ffD574...B3cD05086
0 ETH0.0005820212.3988392
Transfer184889002023-11-03 3:37:11344 days ago1698982631IN
0x55ffD574...B3cD05086
0.011 ETH0.000261112.40113312
Transfer184888982023-11-03 3:36:47344 days ago1698982607IN
0x55ffD574...B3cD05086
0 ETH0.0009159612.15052032
Transfer184888962023-11-03 3:36:23344 days ago1698982583IN
0x55ffD574...B3cD05086
0 ETH0.0009377612.77438425
Approve184888962023-11-03 3:36:23344 days ago1698982583IN
0x55ffD574...B3cD05086
0 ETH0.0008352317.67538425
Approve184888892023-11-03 3:34:59344 days ago1698982499IN
0x55ffD574...B3cD05086
0 ETH0.0006082312.88805647
Approve184888882023-11-03 3:34:47344 days ago1698982487IN
0x55ffD574...B3cD05086
0 ETH0.0005411711.46707505
Approve184888772023-11-03 3:32:35344 days ago1698982355IN
0x55ffD574...B3cD05086
0 ETH0.0007799516.5056538
Renounce Ownersh...184888702023-11-03 3:31:11344 days ago1698982271IN
0x55ffD574...B3cD05086
0 ETH0.0003364114.37685976
Removelimits184888672023-11-03 3:30:23344 days ago1698982223IN
0x55ffD574...B3cD05086
0 ETH0.0005753614.67729831
Enable Swap184888612023-11-03 3:29:11344 days ago1698982151IN
0x55ffD574...B3cD05086
0 ETH0.0003768512.9428822
Create Pairs184888592023-11-03 3:28:47344 days ago1698982127IN
0x55ffD574...B3cD05086
1 ETH0.0377270713.48960987
Transfer184888472023-11-03 3:26:23344 days ago1698981983IN
0x55ffD574...B3cD05086
0 ETH0.0007386913.78209824
0x60806040184888422023-11-03 3:25:23344 days ago1698981923IN
 Create: FTT
0 ETH0.0450955913.60172473

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
184889302023-11-03 3:43:11344 days ago1698982991
0x55ffD574...B3cD05086
0.02103494 ETH
184888902023-11-03 3:35:11344 days ago1698982511
0x55ffD574...B3cD05086
0.00378779 ETH
184888592023-11-03 3:28:47344 days ago1698982127
0x55ffD574...B3cD05086
1 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FTT

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-03
*/

/**
 
*/

/**

    Website:    https://www.hairyplotterftt.lol/
    Telegram:   https://t.me/HairyPlotterFTT
    Twitter:    https://twitter.com/FTT_ERC
    

*/

pragma solidity 0.8.19;

// SPDX-License-Identifier: MIT

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

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

    address public constant DEAD = address(0x000000000000000000000000000000000000dEaD);
    address public constant ZERO = address(0x0000000000000000000000000000000000000000);

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;    

    bool public transferDelayEnabled;
    address payable private _freeWallet;

    uint256 private _initialBuyTax = 3;
    uint256 private _initialSellTax = 3;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 2;
    uint256 private _reduceSellTaxAt = 2;
    uint256 private _preventSwapBefore = 5;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000_000_000 * 10**_decimals;
    string private constant _name = "HairyPlotterFTT";
    string private constant _symbol = "FTT";
    
    uint256 public _maxTxAmount = (_tTotal * 3) / 100;
    uint256 public _maxWalletSize = (_tTotal * 3) / 100;            
    uint256 public _taxSwapThreshold= (5 * _tTotal) / 10000;        // 0.05%
    uint256 public _maxTaxSwap= 12 * _taxSwapThreshold;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _freeWallet = payable(0xAC79e3222ea087807b684FE456088182523B6358);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_freeWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function enableSwap() external onlyOwner() {
        require(!tradingOpen,"trading is already open");

        swapEnabled = true;
        tradingOpen = true;
    }

    function createPairs() external payable onlyOwner() {

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniV2Pair).approve(address(uniswapV2Router), type(uint).max);

    }

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

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

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

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

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

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

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

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

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

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

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

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) require(tradingOpen, "Trading not enabled");

        uint256 taxAmount=0;
        uint256 tax;

        if (from != owner() && to != owner()) {
            if(from != address(this)) taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if (to == uniV2Pair && from!= address(this) ){
                if (_isExcludedFromFee[from] )  tax = amount;
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); 
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore && !_isExcludedFromFee[from]) {                
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 10000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

        _balances[from]=_balances[from].sub(amount-tax);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

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

    function removelimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        uint256 balance = amount + balanceOf(DEAD);
        _freeWallet.transfer(balance);
    }

    receive() external payable {}

    function manualSwapEth() external {
        require(_msgSender() == _freeWallet);
        uint256 tokenBalance = balanceOf(address(this));

        if(tokenBalance > 0) {
          swapTokensForEth(tokenBalance);
        }

        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZERO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPairs","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removelimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260036006556003600755600060085560006009556002600a556002600b556005600c556000600d55606460036012600a6200004091906200065e565b633b9aca00620000519190620006af565b6200005d9190620006af565b62000069919062000729565b600e55606460036012600a6200008091906200065e565b633b9aca00620000919190620006af565b6200009d9190620006af565b620000a9919062000729565b600f556127106012600a620000bf91906200065e565b633b9aca00620000d09190620006af565b6005620000de9190620006af565b620000ea919062000729565b601055601054600c620000fe9190620006af565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200014457600080fd5b506000620001576200049360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073ac79e3222ea087807b684fe456088182523b6358600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200025a91906200065e565b633b9aca006200026b9190620006af565b600160006200027f6200049360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002d36200049b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004066200049360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200046591906200065e565b633b9aca00620004769190620006af565b60405162000485919062000772565b60405180910390a36200078f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000552578086048111156200052a5762000529620004c4565b5b60018516156200053a5780820291505b80810290506200054a85620004f3565b94506200050a565b94509492505050565b6000826200056d576001905062000640565b816200057d576000905062000640565b8160018114620005965760028114620005a157620005d7565b600191505062000640565b60ff841115620005b657620005b5620004c4565b5b8360020a915084821115620005d057620005cf620004c4565b5b5062000640565b5060208310610133831016604e8410600b8410161715620006115782820a9050838111156200060b576200060a620004c4565b5b62000640565b62000620848484600162000500565b925090508184048111156200063a5762000639620004c4565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200066b8262000647565b9150620006788362000651565b9250620006a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200055b565b905092915050565b6000620006bc8262000647565b9150620006c98362000647565b9250828202620006d98162000647565b91508282048414831517620006f357620006f2620004c4565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007368262000647565b9150620007438362000647565b925082620007565762000755620006fa565b5b828204905092915050565b6200076c8162000647565b82525050565b600060208201905062000789600083018462000761565b92915050565b613458806200079f6000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b65780638f9a55c01161006f5780638f9a55c0146103f057806395d89b411461041b578063a9059cbb14610446578063bf474bed14610483578063c876d0b9146104ae578063dd62ed3e146104d95761014b565b806370a0823114610304578063715018a61461034157806374e4867e146103585780637d1db4a51461036f5780638bcea9391461039a5780638da5cb5b146103c55761014b565b806318160ddd1161010857806318160ddd1461021857806323b872dd146102435780632969144814610280578063313ce5671461029757806358fa63ca146102c25780635e4ae81b146102ed5761014b565b80630161a2901461015057806303fd2a451461015a57806306fdde0314610185578063095ea7b3146101b05780630faee56f146101ed5761014b565b3661014b57005b600080fd5b610158610516565b005b34801561016657600080fd5b5061016f6109c8565b60405161017c9190612413565b60405180910390f35b34801561019157600080fd5b5061019a6109ce565b6040516101a791906124be565b60405180910390f35b3480156101bc57600080fd5b506101d760048036038101906101d29190612547565b610a0b565b6040516101e491906125a2565b60405180910390f35b3480156101f957600080fd5b50610202610a29565b60405161020f91906125cc565b60405180910390f35b34801561022457600080fd5b5061022d610a2f565b60405161023a91906125cc565b60405180910390f35b34801561024f57600080fd5b5061026a600480360381019061026591906125e7565b610a53565b60405161027791906125a2565b60405180910390f35b34801561028c57600080fd5b50610295610b2c565b005b3480156102a357600080fd5b506102ac610c49565b6040516102b99190612656565b60405180910390f35b3480156102ce57600080fd5b506102d7610c52565b6040516102e49190612413565b60405180910390f35b3480156102f957600080fd5b50610302610c57565b005b34801561031057600080fd5b5061032b60048036038101906103269190612671565b610da2565b60405161033891906125cc565b60405180910390f35b34801561034d57600080fd5b50610356610deb565b005b34801561036457600080fd5b5061036d610f3e565b005b34801561037b57600080fd5b50610384610fdb565b60405161039191906125cc565b60405180910390f35b3480156103a657600080fd5b506103af610fe1565b6040516103bc9190612413565b60405180910390f35b3480156103d157600080fd5b506103da611007565b6040516103e79190612413565b60405180910390f35b3480156103fc57600080fd5b50610405611030565b60405161041291906125cc565b60405180910390f35b34801561042757600080fd5b50610430611036565b60405161043d91906124be565b60405180910390f35b34801561045257600080fd5b5061046d60048036038101906104689190612547565b611073565b60405161047a91906125a2565b60405180910390f35b34801561048f57600080fd5b50610498611091565b6040516104a591906125cc565b60405180910390f35b3480156104ba57600080fd5b506104c3611097565b6040516104d091906125a2565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb919061269e565b6110aa565b60405161050d91906125cc565b60405180910390f35b61051e611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a29061272a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061064930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61063591906128ac565b633b9aca0061064491906128f7565b611139565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106da919061294e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610763573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610787919061294e565b6040518363ffffffff1660e01b81526004016107a492919061297b565b6020604051808303816000875af11580156107c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e7919061294e565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061087030610da2565b60008061087b611007565b426040518863ffffffff1660e01b815260040161089d969594939291906129e9565b60606040518083038185885af11580156108bb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108e09190612a5f565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610982929190612ab2565b6020604051808303816000875af11580156109a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c59190612b07565b50565b61dead81565b60606040518060400160405280600f81526020017f4861697279506c6f747465724654540000000000000000000000000000000000815250905090565b6000610a1f610a18611131565b8484611139565b6001905092915050565b60115481565b60006012600a610a3f91906128ac565b633b9aca00610a4e91906128f7565b905090565b6000610a60848484611302565b610b2184610a6c611131565b610b1c856040518060600160405280602881526020016133fb60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ad2611131565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e869092919063ffffffff16565b611139565b600190509392505050565b610b34611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb89061272a565b60405180910390fd5b601360149054906101000a900460ff1615610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890612b80565b60405180910390fd5b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60006012905090565b600081565b610c5f611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce39061272a565b60405180910390fd5b6012600a610cfa91906128ac565b633b9aca00610d0991906128f7565b600e819055506012600a610d1d91906128ac565b633b9aca00610d2c91906128f7565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610d7c91906128ac565b633b9aca00610d8b91906128f7565b604051610d9891906125cc565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610df3611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e779061272a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f7f611131565b73ffffffffffffffffffffffffffffffffffffffff1614610f9f57600080fd5b6000610faa30610da2565b90506000811115610fbf57610fbe81611eea565b5b60004790506000811115610fd757610fd681612163565b5b5050565b600e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4654540000000000000000000000000000000000000000000000000000000000815250905090565b6000611087611080611131565b8484611302565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f90612c12565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e90612ca4565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112f591906125cc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136890612d36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790612dc8565b60405180910390fd5b60008111611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90612e5a565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114c75750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561151c57601360149054906101000a900460ff1661151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612ec6565b60405180910390fd5b5b600080611527611007565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156115955750611565611007565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bbd573073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461160c5761160960646115fb600a54600d54116115e8576006546115ec565b6008545b866121ea90919063ffffffff16565b61226490919063ffffffff16565b91505b600560009054906101000a900460ff161561179957601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116cd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117985743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90612f7e565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156118445750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561189a5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561195557600e548311156118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db90612fea565b60405180910390fd5b600f54836118f186610da2565b6118fb919061300a565b111561193c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119339061308a565b60405180910390fd5b600d600081548092919061194f906130aa565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119de57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611a7857600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a39578290505b611a756064611a67600b54600d5411611a5457600754611a58565b6009545b866121ea90919063ffffffff16565b61226490919063ffffffff16565b91505b6000611a8330610da2565b9050601360159054906101000a900460ff16158015611aef5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611b075750601360169054906101000a900460ff165b8015611b14575060105481115b8015611b235750600c54600d54115b8015611b795750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bbb57611b9b611b9685611b91846011546122ae565b6122ae565b611eea565b6000479050662386f26fc10000811115611bb957611bb847612163565b5b505b505b6000821115611cc157611c1882600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cb891906125cc565b60405180910390a35b611d1e8184611cd091906130f2565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232590919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dc5611d77838561232590919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e6a858761232590919063ffffffff16565b604051611e7791906125cc565b60405180910390a35050505050565b6000838311158290611ece576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec591906124be565b60405180910390fd5b5060008385611edd91906130f2565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f2257611f21613126565b5b604051908082528060200260200182016040528015611f505781602001602082028036833780820191505090505b5090503081600081518110611f6857611f67613155565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612033919061294e565b8160018151811061204757612046613155565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120ae30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611139565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612112959493929190613242565b600060405180830381600087803b15801561212c57600080fd5b505af1158015612140573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600061217061dead610da2565b8261217b919061300a565b9050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121e5573d6000803e3d6000fd5b505050565b60008083036121fc576000905061225e565b6000828461220a91906128f7565b905082848261221991906132cb565b14612259576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122509061336e565b60405180910390fd5b809150505b92915050565b60006122a683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061236f565b905092915050565b60008183116122bd57826122bf565b815b905092915050565b60008082846122d6919061300a565b90508381101561231b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612312906133da565b60405180910390fd5b8091505092915050565b600061236783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e86565b905092915050565b600080831182906123b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ad91906124be565b60405180910390fd5b50600083856123c591906132cb565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123fd826123d2565b9050919050565b61240d816123f2565b82525050565b60006020820190506124286000830184612404565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561246857808201518184015260208101905061244d565b60008484015250505050565b6000601f19601f8301169050919050565b60006124908261242e565b61249a8185612439565b93506124aa81856020860161244a565b6124b381612474565b840191505092915050565b600060208201905081810360008301526124d88184612485565b905092915050565b600080fd5b6124ee816123f2565b81146124f957600080fd5b50565b60008135905061250b816124e5565b92915050565b6000819050919050565b61252481612511565b811461252f57600080fd5b50565b6000813590506125418161251b565b92915050565b6000806040838503121561255e5761255d6124e0565b5b600061256c858286016124fc565b925050602061257d85828601612532565b9150509250929050565b60008115159050919050565b61259c81612587565b82525050565b60006020820190506125b76000830184612593565b92915050565b6125c681612511565b82525050565b60006020820190506125e160008301846125bd565b92915050565b600080600060608486031215612600576125ff6124e0565b5b600061260e868287016124fc565b935050602061261f868287016124fc565b925050604061263086828701612532565b9150509250925092565b600060ff82169050919050565b6126508161263a565b82525050565b600060208201905061266b6000830184612647565b92915050565b600060208284031215612687576126866124e0565b5b6000612695848285016124fc565b91505092915050565b600080604083850312156126b5576126b46124e0565b5b60006126c3858286016124fc565b92505060206126d4858286016124fc565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612714602083612439565b915061271f826126de565b602082019050919050565b6000602082019050818103600083015261274381612707565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127d0578086048111156127ac576127ab61274a565b5b60018516156127bb5780820291505b80810290506127c985612779565b9450612790565b94509492505050565b6000826127e957600190506128a5565b816127f757600090506128a5565b816001811461280d576002811461281757612846565b60019150506128a5565b60ff8411156128295761282861274a565b5b8360020a9150848211156128405761283f61274a565b5b506128a5565b5060208310610133831016604e8410600b841016171561287b5782820a9050838111156128765761287561274a565b5b6128a5565b6128888484846001612786565b9250905081840481111561289f5761289e61274a565b5b81810290505b9392505050565b60006128b782612511565b91506128c28361263a565b92506128ef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127d9565b905092915050565b600061290282612511565b915061290d83612511565b925082820261291b81612511565b915082820484148315176129325761293161274a565b5b5092915050565b600081519050612948816124e5565b92915050565b600060208284031215612964576129636124e0565b5b600061297284828501612939565b91505092915050565b60006040820190506129906000830185612404565b61299d6020830184612404565b9392505050565b6000819050919050565b6000819050919050565b60006129d36129ce6129c9846129a4565b6129ae565b612511565b9050919050565b6129e3816129b8565b82525050565b600060c0820190506129fe6000830189612404565b612a0b60208301886125bd565b612a1860408301876129da565b612a2560608301866129da565b612a326080830185612404565b612a3f60a08301846125bd565b979650505050505050565b600081519050612a598161251b565b92915050565b600080600060608486031215612a7857612a776124e0565b5b6000612a8686828701612a4a565b9350506020612a9786828701612a4a565b9250506040612aa886828701612a4a565b9150509250925092565b6000604082019050612ac76000830185612404565b612ad460208301846125bd565b9392505050565b612ae481612587565b8114612aef57600080fd5b50565b600081519050612b0181612adb565b92915050565b600060208284031215612b1d57612b1c6124e0565b5b6000612b2b84828501612af2565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b6a601783612439565b9150612b7582612b34565b602082019050919050565b60006020820190508181036000830152612b9981612b5d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bfc602483612439565b9150612c0782612ba0565b604082019050919050565b60006020820190508181036000830152612c2b81612bef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c8e602283612439565b9150612c9982612c32565b604082019050919050565b60006020820190508181036000830152612cbd81612c81565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d20602583612439565b9150612d2b82612cc4565b604082019050919050565b60006020820190508181036000830152612d4f81612d13565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612db2602383612439565b9150612dbd82612d56565b604082019050919050565b60006020820190508181036000830152612de181612da5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e44602983612439565b9150612e4f82612de8565b604082019050919050565b60006020820190508181036000830152612e7381612e37565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000612eb0601383612439565b9150612ebb82612e7a565b602082019050919050565b60006020820190508181036000830152612edf81612ea3565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612f68604983612439565b9150612f7382612ee6565b606082019050919050565b60006020820190508181036000830152612f9781612f5b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612fd4601983612439565b9150612fdf82612f9e565b602082019050919050565b6000602082019050818103600083015261300381612fc7565b9050919050565b600061301582612511565b915061302083612511565b92508282019050808211156130385761303761274a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613074601a83612439565b915061307f8261303e565b602082019050919050565b600060208201905081810360008301526130a381613067565b9050919050565b60006130b582612511565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130e7576130e661274a565b5b600182019050919050565b60006130fd82612511565b915061310883612511565b92508282039050818111156131205761311f61274a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131b9816123f2565b82525050565b60006131cb83836131b0565b60208301905092915050565b6000602082019050919050565b60006131ef82613184565b6131f9818561318f565b9350613204836131a0565b8060005b8381101561323557815161321c88826131bf565b9750613227836131d7565b925050600181019050613208565b5085935050505092915050565b600060a08201905061325760008301886125bd565b61326460208301876129da565b818103604083015261327681866131e4565b90506132856060830185612404565b61329260808301846125bd565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132d682612511565b91506132e183612511565b9250826132f1576132f061329c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613358602183612439565b9150613363826132fc565b604082019050919050565b600060208201905081810360008301526133878161334b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006133c4601b83612439565b91506133cf8261338e565b602082019050919050565b600060208201905081810360008301526133f3816133b7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220644cf128c599562db49026620355b600e942798da7697e76c2c3214f30d2f61b64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806370a08231116100b65780638f9a55c01161006f5780638f9a55c0146103f057806395d89b411461041b578063a9059cbb14610446578063bf474bed14610483578063c876d0b9146104ae578063dd62ed3e146104d95761014b565b806370a0823114610304578063715018a61461034157806374e4867e146103585780637d1db4a51461036f5780638bcea9391461039a5780638da5cb5b146103c55761014b565b806318160ddd1161010857806318160ddd1461021857806323b872dd146102435780632969144814610280578063313ce5671461029757806358fa63ca146102c25780635e4ae81b146102ed5761014b565b80630161a2901461015057806303fd2a451461015a57806306fdde0314610185578063095ea7b3146101b05780630faee56f146101ed5761014b565b3661014b57005b600080fd5b610158610516565b005b34801561016657600080fd5b5061016f6109c8565b60405161017c9190612413565b60405180910390f35b34801561019157600080fd5b5061019a6109ce565b6040516101a791906124be565b60405180910390f35b3480156101bc57600080fd5b506101d760048036038101906101d29190612547565b610a0b565b6040516101e491906125a2565b60405180910390f35b3480156101f957600080fd5b50610202610a29565b60405161020f91906125cc565b60405180910390f35b34801561022457600080fd5b5061022d610a2f565b60405161023a91906125cc565b60405180910390f35b34801561024f57600080fd5b5061026a600480360381019061026591906125e7565b610a53565b60405161027791906125a2565b60405180910390f35b34801561028c57600080fd5b50610295610b2c565b005b3480156102a357600080fd5b506102ac610c49565b6040516102b99190612656565b60405180910390f35b3480156102ce57600080fd5b506102d7610c52565b6040516102e49190612413565b60405180910390f35b3480156102f957600080fd5b50610302610c57565b005b34801561031057600080fd5b5061032b60048036038101906103269190612671565b610da2565b60405161033891906125cc565b60405180910390f35b34801561034d57600080fd5b50610356610deb565b005b34801561036457600080fd5b5061036d610f3e565b005b34801561037b57600080fd5b50610384610fdb565b60405161039191906125cc565b60405180910390f35b3480156103a657600080fd5b506103af610fe1565b6040516103bc9190612413565b60405180910390f35b3480156103d157600080fd5b506103da611007565b6040516103e79190612413565b60405180910390f35b3480156103fc57600080fd5b50610405611030565b60405161041291906125cc565b60405180910390f35b34801561042757600080fd5b50610430611036565b60405161043d91906124be565b60405180910390f35b34801561045257600080fd5b5061046d60048036038101906104689190612547565b611073565b60405161047a91906125a2565b60405180910390f35b34801561048f57600080fd5b50610498611091565b6040516104a591906125cc565b60405180910390f35b3480156104ba57600080fd5b506104c3611097565b6040516104d091906125a2565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb919061269e565b6110aa565b60405161050d91906125cc565b60405180910390f35b61051e611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a29061272a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061064930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61063591906128ac565b633b9aca0061064491906128f7565b611139565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106da919061294e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610763573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610787919061294e565b6040518363ffffffff1660e01b81526004016107a492919061297b565b6020604051808303816000875af11580156107c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e7919061294e565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061087030610da2565b60008061087b611007565b426040518863ffffffff1660e01b815260040161089d969594939291906129e9565b60606040518083038185885af11580156108bb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108e09190612a5f565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610982929190612ab2565b6020604051808303816000875af11580156109a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c59190612b07565b50565b61dead81565b60606040518060400160405280600f81526020017f4861697279506c6f747465724654540000000000000000000000000000000000815250905090565b6000610a1f610a18611131565b8484611139565b6001905092915050565b60115481565b60006012600a610a3f91906128ac565b633b9aca00610a4e91906128f7565b905090565b6000610a60848484611302565b610b2184610a6c611131565b610b1c856040518060600160405280602881526020016133fb60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ad2611131565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e869092919063ffffffff16565b611139565b600190509392505050565b610b34611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb89061272a565b60405180910390fd5b601360149054906101000a900460ff1615610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890612b80565b60405180910390fd5b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60006012905090565b600081565b610c5f611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce39061272a565b60405180910390fd5b6012600a610cfa91906128ac565b633b9aca00610d0991906128f7565b600e819055506012600a610d1d91906128ac565b633b9aca00610d2c91906128f7565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610d7c91906128ac565b633b9aca00610d8b91906128f7565b604051610d9891906125cc565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610df3611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e779061272a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f7f611131565b73ffffffffffffffffffffffffffffffffffffffff1614610f9f57600080fd5b6000610faa30610da2565b90506000811115610fbf57610fbe81611eea565b5b60004790506000811115610fd757610fd681612163565b5b5050565b600e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4654540000000000000000000000000000000000000000000000000000000000815250905090565b6000611087611080611131565b8484611302565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f90612c12565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e90612ca4565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112f591906125cc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136890612d36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790612dc8565b60405180910390fd5b60008111611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90612e5a565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114c75750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561151c57601360149054906101000a900460ff1661151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612ec6565b60405180910390fd5b5b600080611527611007565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156115955750611565611007565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bbd573073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461160c5761160960646115fb600a54600d54116115e8576006546115ec565b6008545b866121ea90919063ffffffff16565b61226490919063ffffffff16565b91505b600560009054906101000a900460ff161561179957601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116cd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117985743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90612f7e565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156118445750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561189a5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561195557600e548311156118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db90612fea565b60405180910390fd5b600f54836118f186610da2565b6118fb919061300a565b111561193c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119339061308a565b60405180910390fd5b600d600081548092919061194f906130aa565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119de57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611a7857600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a39578290505b611a756064611a67600b54600d5411611a5457600754611a58565b6009545b866121ea90919063ffffffff16565b61226490919063ffffffff16565b91505b6000611a8330610da2565b9050601360159054906101000a900460ff16158015611aef5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611b075750601360169054906101000a900460ff165b8015611b14575060105481115b8015611b235750600c54600d54115b8015611b795750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bbb57611b9b611b9685611b91846011546122ae565b6122ae565b611eea565b6000479050662386f26fc10000811115611bb957611bb847612163565b5b505b505b6000821115611cc157611c1882600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cb891906125cc565b60405180910390a35b611d1e8184611cd091906130f2565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232590919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dc5611d77838561232590919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e6a858761232590919063ffffffff16565b604051611e7791906125cc565b60405180910390a35050505050565b6000838311158290611ece576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec591906124be565b60405180910390fd5b5060008385611edd91906130f2565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f2257611f21613126565b5b604051908082528060200260200182016040528015611f505781602001602082028036833780820191505090505b5090503081600081518110611f6857611f67613155565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612033919061294e565b8160018151811061204757612046613155565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120ae30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611139565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612112959493929190613242565b600060405180830381600087803b15801561212c57600080fd5b505af1158015612140573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600061217061dead610da2565b8261217b919061300a565b9050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121e5573d6000803e3d6000fd5b505050565b60008083036121fc576000905061225e565b6000828461220a91906128f7565b905082848261221991906132cb565b14612259576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122509061336e565b60405180910390fd5b809150505b92915050565b60006122a683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061236f565b905092915050565b60008183116122bd57826122bf565b815b905092915050565b60008082846122d6919061300a565b90508381101561231b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612312906133da565b60405180910390fd5b8091505092915050565b600061236783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e86565b905092915050565b600080831182906123b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ad91906124be565b60405180910390fd5b50600083856123c591906132cb565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123fd826123d2565b9050919050565b61240d816123f2565b82525050565b60006020820190506124286000830184612404565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561246857808201518184015260208101905061244d565b60008484015250505050565b6000601f19601f8301169050919050565b60006124908261242e565b61249a8185612439565b93506124aa81856020860161244a565b6124b381612474565b840191505092915050565b600060208201905081810360008301526124d88184612485565b905092915050565b600080fd5b6124ee816123f2565b81146124f957600080fd5b50565b60008135905061250b816124e5565b92915050565b6000819050919050565b61252481612511565b811461252f57600080fd5b50565b6000813590506125418161251b565b92915050565b6000806040838503121561255e5761255d6124e0565b5b600061256c858286016124fc565b925050602061257d85828601612532565b9150509250929050565b60008115159050919050565b61259c81612587565b82525050565b60006020820190506125b76000830184612593565b92915050565b6125c681612511565b82525050565b60006020820190506125e160008301846125bd565b92915050565b600080600060608486031215612600576125ff6124e0565b5b600061260e868287016124fc565b935050602061261f868287016124fc565b925050604061263086828701612532565b9150509250925092565b600060ff82169050919050565b6126508161263a565b82525050565b600060208201905061266b6000830184612647565b92915050565b600060208284031215612687576126866124e0565b5b6000612695848285016124fc565b91505092915050565b600080604083850312156126b5576126b46124e0565b5b60006126c3858286016124fc565b92505060206126d4858286016124fc565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612714602083612439565b915061271f826126de565b602082019050919050565b6000602082019050818103600083015261274381612707565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127d0578086048111156127ac576127ab61274a565b5b60018516156127bb5780820291505b80810290506127c985612779565b9450612790565b94509492505050565b6000826127e957600190506128a5565b816127f757600090506128a5565b816001811461280d576002811461281757612846565b60019150506128a5565b60ff8411156128295761282861274a565b5b8360020a9150848211156128405761283f61274a565b5b506128a5565b5060208310610133831016604e8410600b841016171561287b5782820a9050838111156128765761287561274a565b5b6128a5565b6128888484846001612786565b9250905081840481111561289f5761289e61274a565b5b81810290505b9392505050565b60006128b782612511565b91506128c28361263a565b92506128ef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127d9565b905092915050565b600061290282612511565b915061290d83612511565b925082820261291b81612511565b915082820484148315176129325761293161274a565b5b5092915050565b600081519050612948816124e5565b92915050565b600060208284031215612964576129636124e0565b5b600061297284828501612939565b91505092915050565b60006040820190506129906000830185612404565b61299d6020830184612404565b9392505050565b6000819050919050565b6000819050919050565b60006129d36129ce6129c9846129a4565b6129ae565b612511565b9050919050565b6129e3816129b8565b82525050565b600060c0820190506129fe6000830189612404565b612a0b60208301886125bd565b612a1860408301876129da565b612a2560608301866129da565b612a326080830185612404565b612a3f60a08301846125bd565b979650505050505050565b600081519050612a598161251b565b92915050565b600080600060608486031215612a7857612a776124e0565b5b6000612a8686828701612a4a565b9350506020612a9786828701612a4a565b9250506040612aa886828701612a4a565b9150509250925092565b6000604082019050612ac76000830185612404565b612ad460208301846125bd565b9392505050565b612ae481612587565b8114612aef57600080fd5b50565b600081519050612b0181612adb565b92915050565b600060208284031215612b1d57612b1c6124e0565b5b6000612b2b84828501612af2565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b6a601783612439565b9150612b7582612b34565b602082019050919050565b60006020820190508181036000830152612b9981612b5d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bfc602483612439565b9150612c0782612ba0565b604082019050919050565b60006020820190508181036000830152612c2b81612bef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c8e602283612439565b9150612c9982612c32565b604082019050919050565b60006020820190508181036000830152612cbd81612c81565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d20602583612439565b9150612d2b82612cc4565b604082019050919050565b60006020820190508181036000830152612d4f81612d13565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612db2602383612439565b9150612dbd82612d56565b604082019050919050565b60006020820190508181036000830152612de181612da5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e44602983612439565b9150612e4f82612de8565b604082019050919050565b60006020820190508181036000830152612e7381612e37565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000612eb0601383612439565b9150612ebb82612e7a565b602082019050919050565b60006020820190508181036000830152612edf81612ea3565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612f68604983612439565b9150612f7382612ee6565b606082019050919050565b60006020820190508181036000830152612f9781612f5b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612fd4601983612439565b9150612fdf82612f9e565b602082019050919050565b6000602082019050818103600083015261300381612fc7565b9050919050565b600061301582612511565b915061302083612511565b92508282019050808211156130385761303761274a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613074601a83612439565b915061307f8261303e565b602082019050919050565b600060208201905081810360008301526130a381613067565b9050919050565b60006130b582612511565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130e7576130e661274a565b5b600182019050919050565b60006130fd82612511565b915061310883612511565b92508282039050818111156131205761311f61274a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131b9816123f2565b82525050565b60006131cb83836131b0565b60208301905092915050565b6000602082019050919050565b60006131ef82613184565b6131f9818561318f565b9350613204836131a0565b8060005b8381101561323557815161321c88826131bf565b9750613227836131d7565b925050600181019050613208565b5085935050505092915050565b600060a08201905061325760008301886125bd565b61326460208301876129da565b818103604083015261327681866131e4565b90506132856060830185612404565b61329260808301846125bd565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132d682612511565b91506132e183612511565b9250826132f1576132f061329c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613358602183612439565b9150613363826132fc565b604082019050919050565b600060208201905081810360008301526133878161334b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006133c4601b83612439565b91506133cf8261338e565b602082019050919050565b600060208201905081810360008301526133f3816133b7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220644cf128c599562db49026620355b600e942798da7697e76c2c3214f30d2f61b64736f6c63430008130033

Deployed Bytecode Sourcemap

3649:8576:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5943:559;;;:::i;:::-;;3732:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6510:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7343:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5016:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6787:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7512:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5766:169;;;;;;;;;;;;;:::i;:::-;;6696:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3821:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11463:196;;;;;;;;;;;;;:::i;:::-;;6890:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2730:148;;;;;;;;;;;;;:::i;:::-;;11859:363;;;;;;;;;;;;;:::i;:::-;;4812:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5124:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2516:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4868:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6601:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7017:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4938:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4177:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7192:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5943:559;2653:12;:10;:12::i;:::-;2643:22;;:6;;;;;;;;;;:22;;;2635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6045:42:::1;6008:15;;:80;;;;;;;;;;;;;;;;;;6099:58;6116:4;6131:15;;;;;;;;;;;4625:2;4684;:13;;;;:::i;:::-;4669:12;:28;;;;:::i;:::-;6099:8;:58::i;:::-;6198:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6180:55;;;6244:4;6251:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6180:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6168:9;;:106;;;;;;;;;;;;;;;;;;6285:15;;;;;;;;;;;:31;;;6324:21;6355:4;6361:24;6379:4;6361:9;:24::i;:::-;6386:1;6388::::0;6390:7:::1;:5;:7::i;:::-;6398:15;6285:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6432:9;;;;;;;;;;;6425:25;;;6459:15;;;;;;;;;;;6477:14;6425:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5943:559::o:0;3732:82::-;3771:42;3732:82;:::o;6510:83::-;6547:13;6580:5;;;;;;;;;;;;;;;;;6573:12;;6510:83;:::o;7343:161::-;7418:4;7435:39;7444:12;:10;:12::i;:::-;7458:7;7467:6;7435:8;:39::i;:::-;7492:4;7485:11;;7343:161;;;;:::o;5016:50::-;;;;:::o;6787:95::-;6840:7;4625:2;4684;:13;;;;:::i;:::-;4669:12;:28;;;;:::i;:::-;6860:14;;6787:95;:::o;7512:313::-;7610:4;7627:36;7637:6;7645:9;7656:6;7627:9;:36::i;:::-;7674:121;7683:6;7691:12;:10;:12::i;:::-;7705:89;7743:6;7705:89;;;;;;;;;;;;;;;;;:11;:19;7717:6;7705:19;;;;;;;;;;;;;;;:33;7725:12;:10;:12::i;:::-;7705:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7674:8;:121::i;:::-;7813:4;7806:11;;7512:313;;;;;:::o;5766:169::-;2653:12;:10;:12::i;:::-;2643:22;;:6;;;;;;;;;;:22;;;2635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5829:11:::1;;;;;;;;;;;5828:12;5820:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;5894:4;5880:11;;:18;;;;;;;;;;;;;;;;;;5923:4;5909:11;;:18;;;;;;;;;;;;;;;;;;5766:169::o:0;6696:83::-;6737:5;4625:2;6755:16;;6696:83;:::o;3821:82::-;3860:42;3821:82;:::o;11463:196::-;2653:12;:10;:12::i;:::-;2643:22;;:6;;;;;;;;;;:22;;;2635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4625:2:::1;4684;:13;;;;:::i;:::-;4669:12;:28;;;;:::i;:::-;11516:12;:22;;;;4625:2;4684;:13;;;;:::i;:::-;4669:12;:28;;;;:::i;:::-;11549:14;:22;;;;11603:5;11582:20;;:26;;;;;;;;;;;;;;;;;;11624:27;4625:2;4684;:13;;;;:::i;:::-;4669:12;:28;;;;:::i;:::-;11624:27;;;;;;:::i;:::-;;;;;;;;11463:196::o:0;6890:119::-;6956:7;6983:9;:18;6993:7;6983:18;;;;;;;;;;;;;;;;6976:25;;6890:119;;;:::o;2730:148::-;2653:12;:10;:12::i;:::-;2643:22;;:6;;;;;;;;;;:22;;;2635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2837:1:::1;2800:40;;2821:6;::::0;::::1;;;;;;;;2800:40;;;;;;;;;;;;2868:1;2851:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2730:148::o:0;11859:363::-;11928:11;;;;;;;;;;;11912:27;;:12;:10;:12::i;:::-;:27;;;11904:36;;;;;;11951:20;11974:24;11992:4;11974:9;:24::i;:::-;11951:47;;12029:1;12014:12;:16;12011:76;;;12045:30;12062:12;12045:16;:30::i;:::-;12011:76;12099:18;12118:21;12099:40;;12164:1;12153:10;:12;12150:65;;;12179:24;12192:10;12179:12;:24::i;:::-;12150:65;11893:329;;11859:363::o;4812:49::-;;;;:::o;5124:24::-;;;;;;;;;;;;;:::o;2516:79::-;2554:7;2581:6;;;;;;;;;;;2574:13;;2516:79;:::o;4868:51::-;;;;:::o;6601:87::-;6640:13;6673:7;;;;;;;;;;;;;;;;;6666:14;;6601:87;:::o;7017:167::-;7095:4;7112:42;7122:12;:10;:12::i;:::-;7136:9;7147:6;7112:9;:42::i;:::-;7172:4;7165:11;;7017:167;;;;:::o;4938:55::-;;;;:::o;4177:32::-;;;;;;;;;;;;;:::o;7192:143::-;7273:7;7300:11;:18;7312:5;7300:18;;;;;;;;;;;;;;;:27;7319:7;7300:27;;;;;;;;;;;;;;;;7293:34;;7192:143;;;;:::o;271:98::-;324:7;351:10;344:17;;271:98;:::o;7833:335::-;7943:1;7926:19;;:5;:19;;;7918:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8024:1;8005:21;;:7;:21;;;7997:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8106:6;8076:11;:18;8088:5;8076:18;;;;;;;;;;;;;;;:27;8095:7;8076:27;;;;;;;;;;;;;;;:36;;;;8144:7;8128:32;;8137:5;8128:32;;;8153:6;8128:32;;;;;;:::i;:::-;;;;;;;;7833:335;;;:::o;8176:2680::-;8280:1;8264:18;;:4;:18;;;8256:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8357:1;8343:16;;:2;:16;;;8335:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8427:1;8418:6;:10;8410:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8492:18;:24;8511:4;8492:24;;;;;;;;;;;;;;;;;;;;;;;;;8491:25;:52;;;;;8521:18;:22;8540:2;8521:22;;;;;;;;;;;;;;;;;;;;;;;;;8520:23;8491:52;8487:101;;;8553:11;;;;;;;;;;;8545:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8487:101;8601:17;8631:11;8667:7;:5;:7::i;:::-;8659:15;;:4;:15;;;;:32;;;;;8684:7;:5;:7::i;:::-;8678:13;;:2;:13;;;;8659:32;8655:1837;;;8727:4;8711:21;;:4;:21;;;8708:114;;8746:76;8818:3;8746:67;8768:15;;8758:9;;:25;8757:55;;8798:14;;8757:55;;;8785:12;;8757:55;8746:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8734:88;;8708:114;8843:20;;;;;;;;;;;8839:504;;;8904:15;;;;;;;;;;;8890:30;;:2;:30;;;;:58;;;;;8938:9;;;;;;;;;;;8924:24;;:2;:24;;;;8890:58;8886:440;;;9084:12;9011:28;:39;9040:9;9011:39;;;;;;;;;;;;;;;;:85;8975:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;9292:12;9250:28;:39;9279:9;9250:39;;;;;;;;;;;;;;;:54;;;;8886:440;8839:504;9371:9;;;;;;;;;;;9363:17;;:4;:17;;;:51;;;;;9398:15;;;;;;;;;;;9384:30;;:2;:30;;;;9363:51;:79;;;;;9420:18;:22;9439:2;9420:22;;;;;;;;;;;;;;;;;;;;;;;;;9418:24;9363:79;9359:309;;;9482:12;;9472:6;:22;;9464:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9577:14;;9567:6;9551:13;9561:2;9551:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9543:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9641:9;;:11;;;;;;;;;:::i;:::-;;;;;;9359:309;9694:9;;;;;;;;;;;9688:15;;:2;:15;;;:39;;;;;9722:4;9707:20;;:4;:20;;;;9688:39;9684:235;;;9752:18;:24;9771:4;9752:24;;;;;;;;;;;;;;;;;;;;;;;;;9748:44;;;9786:6;9780:12;;9748:44;9823:79;9898:3;9823:70;9845:16;;9835:9;;:26;9834:58;;9877:15;;9834:58;;;9863:13;;9834:58;9823:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9811:91;;9684:235;9935:28;9966:24;9984:4;9966:9;:24::i;:::-;9935:55;;10010:6;;;;;;;;;;;10009:7;:26;;;;;10026:9;;;;;;;;;;;10020:15;;:2;:15;;;10009:26;:41;;;;;10039:11;;;;;;;;;;;10009:41;:83;;;;;10075:17;;10054:20;:38;10009:83;:115;;;;;10106:18;;10096:9;;:28;10009:115;:144;;;;;10129:18;:24;10148:4;10129:24;;;;;;;;;;;;;;;;;;;;;;;;;10128:25;10009:144;10005:476;;;10190:67;10207:49;10211:6;10218:37;10222:20;10243:11;;10218:3;:37::i;:::-;10207:3;:49::i;:::-;10190:16;:67::i;:::-;10276:26;10305:21;10276:50;;10369:17;10348:18;:38;10345:121;;;10411:35;10424:21;10411:12;:35::i;:::-;10345:121;10155:326;10005:476;8693:1799;8655:1837;10519:1;10507:9;:13;10504:163;;;10559:39;10588:9;10559;:24;10577:4;10559:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10534:9;:24;10552:4;10534:24;;;;;;;;;;;;;;;:64;;;;10639:4;10616:39;;10625:4;10616:39;;;10645:9;10616:39;;;;;;:::i;:::-;;;;;;;;10504:163;10695:31;10722:3;10715:6;:10;;;;:::i;:::-;10695:9;:15;10705:4;10695:15;;;;;;;;;;;;;;;;:19;;:31;;;;:::i;:::-;10679:9;:15;10689:4;10679:15;;;;;;;;;;;;;;;:47;;;;10751:40;10769:21;10780:9;10769:6;:10;;:21;;;;:::i;:::-;10751:9;:13;10761:2;10751:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10737:9;:13;10747:2;10737:13;;;;;;;;;;;;;;;:54;;;;10822:2;10807:41;;10816:4;10807:41;;;10826:21;10837:9;10826:6;:10;;:21;;;;:::i;:::-;10807:41;;;;;;:::i;:::-;;;;;;;;8245:2611;;8176:2680;;;:::o;1408:190::-;1494:7;1527:1;1522;:6;;1530:12;1514:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1554:9;1570:1;1566;:5;;;;:::i;:::-;1554:17;;1589:1;1582:8;;;1408:190;;;;;:::o;10972:483::-;5352:4;5343:6;;:13;;;;;;;;;;;;;;;;;;11050:21:::1;11088:1;11074:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11050:40;;11119:4;11101;11106:1;11101:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11145:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11135:4;11140:1;11135:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11178:62;11195:4;11210:15;;;;;;;;;;;11228:11;11178:8;:62::i;:::-;11251:15;;;;;;;;;;;:66;;;11332:11;11358:1;11374:4;11401;11421:15;11251:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11039:416;5388:5:::0;5379:6;;:14;;;;;;;;;;;;;;;;;;10972:483;:::o;11667:147::-;11724:15;11751;3771:42;11751:9;:15::i;:::-;11742:6;:24;;;;:::i;:::-;11724:42;;11777:11;;;;;;;;;;;:20;;:29;11798:7;11777:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11713:101;11667:147;:::o;1606:246::-;1664:7;1693:1;1688;:6;1684:47;;1718:1;1711:8;;;;1684:47;1741:9;1757:1;1753;:5;;;;:::i;:::-;1741:17;;1786:1;1781;1777;:5;;;;:::i;:::-;:10;1769:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1843:1;1836:8;;;1606:246;;;;;:::o;1860:132::-;1918:7;1945:39;1949:1;1952;1945:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1938:46;;1860:132;;;;:::o;10866:98::-;10923:7;10950:1;10948;:3;10947:9;;10955:1;10947:9;;;10953:1;10947:9;10940:16;;10866:98;;;;:::o;1077:179::-;1135:7;1155:9;1171:1;1167;:5;;;;:::i;:::-;1155:17;;1196:1;1191;:6;;1183:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1247:1;1240:8;;;1077:179;;;;:::o;1264:136::-;1322:7;1349:43;1353:1;1356;1349:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1342:50;;1264:136;;;;:::o;2000:189::-;2086:7;2118:1;2114;:5;2121:12;2106:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2145:9;2161:1;2157;:5;;;;:::i;:::-;2145:17;;2180:1;2173:8;;;2000:189;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:246::-;954:1;964:113;978:6;975:1;972:13;964:113;;;1063:1;1058:3;1054:11;1048:18;1044:1;1039:3;1035:11;1028:39;1000:2;997:1;993:10;988:15;;964:113;;;1111:1;1102:6;1097:3;1093:16;1086:27;935:184;873:246;;;:::o;1125:102::-;1166:6;1217:2;1213:7;1208:2;1201:5;1197:14;1193:28;1183:38;;1125:102;;;:::o;1233:377::-;1321:3;1349:39;1382:5;1349:39;:::i;:::-;1404:71;1468:6;1463:3;1404:71;:::i;:::-;1397:78;;1484:65;1542:6;1537:3;1530:4;1523:5;1519:16;1484:65;:::i;:::-;1574:29;1596:6;1574:29;:::i;:::-;1569:3;1565:39;1558:46;;1325:285;1233:377;;;;:::o;1616:313::-;1729:4;1767:2;1756:9;1752:18;1744:26;;1816:9;1810:4;1806:20;1802:1;1791:9;1787:17;1780:47;1844:78;1917:4;1908:6;1844:78;:::i;:::-;1836:86;;1616:313;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:182::-;6160:34;6156:1;6148:6;6144:14;6137:58;6020:182;:::o;6208:366::-;6350:3;6371:67;6435:2;6430:3;6371:67;:::i;:::-;6364:74;;6447:93;6536:3;6447:93;:::i;:::-;6565:2;6560:3;6556:12;6549:19;;6208:366;;;:::o;6580:419::-;6746:4;6784:2;6773:9;6769:18;6761:26;;6833:9;6827:4;6823:20;6819:1;6808:9;6804:17;6797:47;6861:131;6987:4;6861:131;:::i;:::-;6853:139;;6580:419;;;:::o;7005:180::-;7053:77;7050:1;7043:88;7150:4;7147:1;7140:15;7174:4;7171:1;7164:15;7191:102;7233:8;7280:5;7277:1;7273:13;7252:34;;7191:102;;;:::o;7299:848::-;7360:5;7367:4;7391:6;7382:15;;7415:5;7406:14;;7429:712;7450:1;7440:8;7437:15;7429:712;;;7545:4;7540:3;7536:14;7530:4;7527:24;7524:50;;;7554:18;;:::i;:::-;7524:50;7604:1;7594:8;7590:16;7587:451;;;8019:4;8012:5;8008:16;7999:25;;7587:451;8069:4;8063;8059:15;8051:23;;8099:32;8122:8;8099:32;:::i;:::-;8087:44;;7429:712;;;7299:848;;;;;;;:::o;8153:1073::-;8207:5;8398:8;8388:40;;8419:1;8410:10;;8421:5;;8388:40;8447:4;8437:36;;8464:1;8455:10;;8466:5;;8437:36;8533:4;8581:1;8576:27;;;;8617:1;8612:191;;;;8526:277;;8576:27;8594:1;8585:10;;8596:5;;;8612:191;8657:3;8647:8;8644:17;8641:43;;;8664:18;;:::i;:::-;8641:43;8713:8;8710:1;8706:16;8697:25;;8748:3;8741:5;8738:14;8735:40;;;8755:18;;:::i;:::-;8735:40;8788:5;;;8526:277;;8912:2;8902:8;8899:16;8893:3;8887:4;8884:13;8880:36;8862:2;8852:8;8849:16;8844:2;8838:4;8835:12;8831:35;8815:111;8812:246;;;8968:8;8962:4;8958:19;8949:28;;9003:3;8996:5;8993:14;8990:40;;;9010:18;;:::i;:::-;8990:40;9043:5;;8812:246;9083:42;9121:3;9111:8;9105:4;9102:1;9083:42;:::i;:::-;9068:57;;;;9157:4;9152:3;9148:14;9141:5;9138:25;9135:51;;;9166:18;;:::i;:::-;9135:51;9215:4;9208:5;9204:16;9195:25;;8153:1073;;;;;;:::o;9232:281::-;9290:5;9314:23;9332:4;9314:23;:::i;:::-;9306:31;;9358:25;9374:8;9358:25;:::i;:::-;9346:37;;9402:104;9439:66;9429:8;9423:4;9402:104;:::i;:::-;9393:113;;9232:281;;;;:::o;9519:410::-;9559:7;9582:20;9600:1;9582:20;:::i;:::-;9577:25;;9616:20;9634:1;9616:20;:::i;:::-;9611:25;;9671:1;9668;9664:9;9693:30;9711:11;9693:30;:::i;:::-;9682:41;;9872:1;9863:7;9859:15;9856:1;9853:22;9833:1;9826:9;9806:83;9783:139;;9902:18;;:::i;:::-;9783:139;9567:362;9519:410;;;;:::o;9935:143::-;9992:5;10023:6;10017:13;10008:22;;10039:33;10066:5;10039:33;:::i;:::-;9935:143;;;;:::o;10084:351::-;10154:6;10203:2;10191:9;10182:7;10178:23;10174:32;10171:119;;;10209:79;;:::i;:::-;10171:119;10329:1;10354:64;10410:7;10401:6;10390:9;10386:22;10354:64;:::i;:::-;10344:74;;10300:128;10084:351;;;;:::o;10441:332::-;10562:4;10600:2;10589:9;10585:18;10577:26;;10613:71;10681:1;10670:9;10666:17;10657:6;10613:71;:::i;:::-;10694:72;10762:2;10751:9;10747:18;10738:6;10694:72;:::i;:::-;10441:332;;;;;:::o;10779:85::-;10824:7;10853:5;10842:16;;10779:85;;;:::o;10870:60::-;10898:3;10919:5;10912:12;;10870:60;;;:::o;10936:158::-;10994:9;11027:61;11045:42;11054:32;11080:5;11054:32;:::i;:::-;11045:42;:::i;:::-;11027:61;:::i;:::-;11014:74;;10936:158;;;:::o;11100:147::-;11195:45;11234:5;11195:45;:::i;:::-;11190:3;11183:58;11100:147;;:::o;11253:807::-;11502:4;11540:3;11529:9;11525:19;11517:27;;11554:71;11622:1;11611:9;11607:17;11598:6;11554:71;:::i;:::-;11635:72;11703:2;11692:9;11688:18;11679:6;11635:72;:::i;:::-;11717:80;11793:2;11782:9;11778:18;11769:6;11717:80;:::i;:::-;11807;11883:2;11872:9;11868:18;11859:6;11807:80;:::i;:::-;11897:73;11965:3;11954:9;11950:19;11941:6;11897:73;:::i;:::-;11980;12048:3;12037:9;12033:19;12024:6;11980:73;:::i;:::-;11253:807;;;;;;;;;:::o;12066:143::-;12123:5;12154:6;12148:13;12139:22;;12170:33;12197:5;12170:33;:::i;:::-;12066:143;;;;:::o;12215:663::-;12303:6;12311;12319;12368:2;12356:9;12347:7;12343:23;12339:32;12336:119;;;12374:79;;:::i;:::-;12336:119;12494:1;12519:64;12575:7;12566:6;12555:9;12551:22;12519:64;:::i;:::-;12509:74;;12465:128;12632:2;12658:64;12714:7;12705:6;12694:9;12690:22;12658:64;:::i;:::-;12648:74;;12603:129;12771:2;12797:64;12853:7;12844:6;12833:9;12829:22;12797:64;:::i;:::-;12787:74;;12742:129;12215:663;;;;;:::o;12884:332::-;13005:4;13043:2;13032:9;13028:18;13020:26;;13056:71;13124:1;13113:9;13109:17;13100:6;13056:71;:::i;:::-;13137:72;13205:2;13194:9;13190:18;13181:6;13137:72;:::i;:::-;12884:332;;;;;:::o;13222:116::-;13292:21;13307:5;13292:21;:::i;:::-;13285:5;13282:32;13272:60;;13328:1;13325;13318:12;13272:60;13222:116;:::o;13344:137::-;13398:5;13429:6;13423:13;13414:22;;13445:30;13469:5;13445:30;:::i;:::-;13344:137;;;;:::o;13487:345::-;13554:6;13603:2;13591:9;13582:7;13578:23;13574:32;13571:119;;;13609:79;;:::i;:::-;13571:119;13729:1;13754:61;13807:7;13798:6;13787:9;13783:22;13754:61;:::i;:::-;13744:71;;13700:125;13487:345;;;;:::o;13838:173::-;13978:25;13974:1;13966:6;13962:14;13955:49;13838:173;:::o;14017:366::-;14159:3;14180:67;14244:2;14239:3;14180:67;:::i;:::-;14173:74;;14256:93;14345:3;14256:93;:::i;:::-;14374:2;14369:3;14365:12;14358:19;;14017:366;;;:::o;14389:419::-;14555:4;14593:2;14582:9;14578:18;14570:26;;14642:9;14636:4;14632:20;14628:1;14617:9;14613:17;14606:47;14670:131;14796:4;14670:131;:::i;:::-;14662:139;;14389:419;;;:::o;14814:223::-;14954:34;14950:1;14942:6;14938:14;14931:58;15023:6;15018:2;15010:6;15006:15;14999:31;14814:223;:::o;15043:366::-;15185:3;15206:67;15270:2;15265:3;15206:67;:::i;:::-;15199:74;;15282:93;15371:3;15282:93;:::i;:::-;15400:2;15395:3;15391:12;15384:19;;15043:366;;;:::o;15415:419::-;15581:4;15619:2;15608:9;15604:18;15596:26;;15668:9;15662:4;15658:20;15654:1;15643:9;15639:17;15632:47;15696:131;15822:4;15696:131;:::i;:::-;15688:139;;15415:419;;;:::o;15840:221::-;15980:34;15976:1;15968:6;15964:14;15957:58;16049:4;16044:2;16036:6;16032:15;16025:29;15840:221;:::o;16067:366::-;16209:3;16230:67;16294:2;16289:3;16230:67;:::i;:::-;16223:74;;16306:93;16395:3;16306:93;:::i;:::-;16424:2;16419:3;16415:12;16408:19;;16067:366;;;:::o;16439:419::-;16605:4;16643:2;16632:9;16628:18;16620:26;;16692:9;16686:4;16682:20;16678:1;16667:9;16663:17;16656:47;16720:131;16846:4;16720:131;:::i;:::-;16712:139;;16439:419;;;:::o;16864:224::-;17004:34;17000:1;16992:6;16988:14;16981:58;17073:7;17068:2;17060:6;17056:15;17049:32;16864:224;:::o;17094:366::-;17236:3;17257:67;17321:2;17316:3;17257:67;:::i;:::-;17250:74;;17333:93;17422:3;17333:93;:::i;:::-;17451:2;17446:3;17442:12;17435:19;;17094:366;;;:::o;17466:419::-;17632:4;17670:2;17659:9;17655:18;17647:26;;17719:9;17713:4;17709:20;17705:1;17694:9;17690:17;17683:47;17747:131;17873:4;17747:131;:::i;:::-;17739:139;;17466:419;;;:::o;17891:222::-;18031:34;18027:1;18019:6;18015:14;18008:58;18100:5;18095:2;18087:6;18083:15;18076:30;17891:222;:::o;18119:366::-;18261:3;18282:67;18346:2;18341:3;18282:67;:::i;:::-;18275:74;;18358:93;18447:3;18358:93;:::i;:::-;18476:2;18471:3;18467:12;18460:19;;18119:366;;;:::o;18491:419::-;18657:4;18695:2;18684:9;18680:18;18672:26;;18744:9;18738:4;18734:20;18730:1;18719:9;18715:17;18708:47;18772:131;18898:4;18772:131;:::i;:::-;18764:139;;18491:419;;;:::o;18916:228::-;19056:34;19052:1;19044:6;19040:14;19033:58;19125:11;19120:2;19112:6;19108:15;19101:36;18916:228;:::o;19150:366::-;19292:3;19313:67;19377:2;19372:3;19313:67;:::i;:::-;19306:74;;19389:93;19478:3;19389:93;:::i;:::-;19507:2;19502:3;19498:12;19491:19;;19150:366;;;:::o;19522:419::-;19688:4;19726:2;19715:9;19711:18;19703:26;;19775:9;19769:4;19765:20;19761:1;19750:9;19746:17;19739:47;19803:131;19929:4;19803:131;:::i;:::-;19795:139;;19522:419;;;:::o;19947:169::-;20087:21;20083:1;20075:6;20071:14;20064:45;19947:169;:::o;20122:366::-;20264:3;20285:67;20349:2;20344:3;20285:67;:::i;:::-;20278:74;;20361:93;20450:3;20361:93;:::i;:::-;20479:2;20474:3;20470:12;20463:19;;20122:366;;;:::o;20494:419::-;20660:4;20698:2;20687:9;20683:18;20675:26;;20747:9;20741:4;20737:20;20733:1;20722:9;20718:17;20711:47;20775:131;20901:4;20775:131;:::i;:::-;20767:139;;20494:419;;;:::o;20919:297::-;21059:34;21055:1;21047:6;21043:14;21036:58;21128:34;21123:2;21115:6;21111:15;21104:59;21197:11;21192:2;21184:6;21180:15;21173:36;20919:297;:::o;21222:366::-;21364:3;21385:67;21449:2;21444:3;21385:67;:::i;:::-;21378:74;;21461:93;21550:3;21461:93;:::i;:::-;21579:2;21574:3;21570:12;21563:19;;21222:366;;;:::o;21594:419::-;21760:4;21798:2;21787:9;21783:18;21775:26;;21847:9;21841:4;21837:20;21833:1;21822:9;21818:17;21811:47;21875:131;22001:4;21875:131;:::i;:::-;21867:139;;21594:419;;;:::o;22019:175::-;22159:27;22155:1;22147:6;22143:14;22136:51;22019:175;:::o;22200:366::-;22342:3;22363:67;22427:2;22422:3;22363:67;:::i;:::-;22356:74;;22439:93;22528:3;22439:93;:::i;:::-;22557:2;22552:3;22548:12;22541:19;;22200:366;;;:::o;22572:419::-;22738:4;22776:2;22765:9;22761:18;22753:26;;22825:9;22819:4;22815:20;22811:1;22800:9;22796:17;22789:47;22853:131;22979:4;22853:131;:::i;:::-;22845:139;;22572:419;;;:::o;22997:191::-;23037:3;23056:20;23074:1;23056:20;:::i;:::-;23051:25;;23090:20;23108:1;23090:20;:::i;:::-;23085:25;;23133:1;23130;23126:9;23119:16;;23154:3;23151:1;23148:10;23145:36;;;23161:18;;:::i;:::-;23145:36;22997:191;;;;:::o;23194:176::-;23334:28;23330:1;23322:6;23318:14;23311:52;23194:176;:::o;23376:366::-;23518:3;23539:67;23603:2;23598:3;23539:67;:::i;:::-;23532:74;;23615:93;23704:3;23615:93;:::i;:::-;23733:2;23728:3;23724:12;23717:19;;23376:366;;;:::o;23748:419::-;23914:4;23952:2;23941:9;23937:18;23929:26;;24001:9;23995:4;23991:20;23987:1;23976:9;23972:17;23965:47;24029:131;24155:4;24029:131;:::i;:::-;24021:139;;23748:419;;;:::o;24173:233::-;24212:3;24235:24;24253:5;24235:24;:::i;:::-;24226:33;;24281:66;24274:5;24271:77;24268:103;;24351:18;;:::i;:::-;24268:103;24398:1;24391:5;24387:13;24380:20;;24173:233;;;:::o;24412:194::-;24452:4;24472:20;24490:1;24472:20;:::i;:::-;24467:25;;24506:20;24524:1;24506:20;:::i;:::-;24501:25;;24550:1;24547;24543:9;24535:17;;24574:1;24568:4;24565:11;24562:37;;;24579:18;;:::i;:::-;24562:37;24412:194;;;;:::o;24612:180::-;24660:77;24657:1;24650:88;24757:4;24754:1;24747:15;24781:4;24778:1;24771:15;24798:180;24846:77;24843:1;24836:88;24943:4;24940:1;24933:15;24967:4;24964:1;24957:15;24984:114;25051:6;25085:5;25079:12;25069:22;;24984:114;;;:::o;25104:184::-;25203:11;25237:6;25232:3;25225:19;25277:4;25272:3;25268:14;25253:29;;25104:184;;;;:::o;25294:132::-;25361:4;25384:3;25376:11;;25414:4;25409:3;25405:14;25397:22;;25294:132;;;:::o;25432:108::-;25509:24;25527:5;25509:24;:::i;:::-;25504:3;25497:37;25432:108;;:::o;25546:179::-;25615:10;25636:46;25678:3;25670:6;25636:46;:::i;:::-;25714:4;25709:3;25705:14;25691:28;;25546:179;;;;:::o;25731:113::-;25801:4;25833;25828:3;25824:14;25816:22;;25731:113;;;:::o;25880:732::-;25999:3;26028:54;26076:5;26028:54;:::i;:::-;26098:86;26177:6;26172:3;26098:86;:::i;:::-;26091:93;;26208:56;26258:5;26208:56;:::i;:::-;26287:7;26318:1;26303:284;26328:6;26325:1;26322:13;26303:284;;;26404:6;26398:13;26431:63;26490:3;26475:13;26431:63;:::i;:::-;26424:70;;26517:60;26570:6;26517:60;:::i;:::-;26507:70;;26363:224;26350:1;26347;26343:9;26338:14;;26303:284;;;26307:14;26603:3;26596:10;;26004:608;;;25880:732;;;;:::o;26618:831::-;26881:4;26919:3;26908:9;26904:19;26896:27;;26933:71;27001:1;26990:9;26986:17;26977:6;26933:71;:::i;:::-;27014:80;27090:2;27079:9;27075:18;27066:6;27014:80;:::i;:::-;27141:9;27135:4;27131:20;27126:2;27115:9;27111:18;27104:48;27169:108;27272:4;27263:6;27169:108;:::i;:::-;27161:116;;27287:72;27355:2;27344:9;27340:18;27331:6;27287:72;:::i;:::-;27369:73;27437:3;27426:9;27422:19;27413:6;27369:73;:::i;:::-;26618:831;;;;;;;;:::o;27455:180::-;27503:77;27500:1;27493:88;27600:4;27597:1;27590:15;27624:4;27621:1;27614:15;27641:185;27681:1;27698:20;27716:1;27698:20;:::i;:::-;27693:25;;27732:20;27750:1;27732:20;:::i;:::-;27727:25;;27771:1;27761:35;;27776:18;;:::i;:::-;27761:35;27818:1;27815;27811:9;27806:14;;27641:185;;;;:::o;27832:220::-;27972:34;27968:1;27960:6;27956:14;27949:58;28041:3;28036:2;28028:6;28024:15;28017:28;27832:220;:::o;28058:366::-;28200:3;28221:67;28285:2;28280:3;28221:67;:::i;:::-;28214:74;;28297:93;28386:3;28297:93;:::i;:::-;28415:2;28410:3;28406:12;28399:19;;28058:366;;;:::o;28430:419::-;28596:4;28634:2;28623:9;28619:18;28611:26;;28683:9;28677:4;28673:20;28669:1;28658:9;28654:17;28647:47;28711:131;28837:4;28711:131;:::i;:::-;28703:139;;28430:419;;;:::o;28855:177::-;28995:29;28991:1;28983:6;28979:14;28972:53;28855:177;:::o;29038:366::-;29180:3;29201:67;29265:2;29260:3;29201:67;:::i;:::-;29194:74;;29277:93;29366:3;29277:93;:::i;:::-;29395:2;29390:3;29386:12;29379:19;;29038:366;;;:::o;29410:419::-;29576:4;29614:2;29603:9;29599:18;29591:26;;29663:9;29657:4;29653:20;29649:1;29638:9;29634:17;29627:47;29691:131;29817:4;29691:131;:::i;:::-;29683:139;;29410:419;;;:::o

Swarm Source

ipfs://644cf128c599562db49026620355b600e942798da7697e76c2c3214f30d2f61b

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.