ETH Price: $3,376.43 (-3.15%)

Contract

0xba387a60c0EdaAa7386fdf37CE5B2460d09F580c
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve213457252024-12-06 20:04:1119 days ago1733515451IN
0xba387a60...0d09F580c
0 ETH0.0013348828.484131
Approve213457252024-12-06 20:04:1119 days ago1733515451IN
0xba387a60...0d09F580c
0 ETH0.0013348828.484131
Approve213457252024-12-06 20:04:1119 days ago1733515451IN
0xba387a60...0d09F580c
0 ETH0.0013348828.484131
Remove Mystery L...213457222024-12-06 20:03:3519 days ago1733515415IN
0xba387a60...0d09F580c
0 ETH0.0010387728.18098154
Approve213457022024-12-06 19:59:3519 days ago1733515175IN
0xba387a60...0d09F580c
0 ETH0.0016379334.71074637
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0017271736.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0017271736.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0017271736.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0018691739.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0018691739.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0018691739.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0018691739.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0018691739.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0018691739.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0018691739.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0018691739.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0018691739.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0018691739.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0015388532.61122939
Approve213457002024-12-06 19:59:1119 days ago1733515151IN
0xba387a60...0d09F580c
0 ETH0.0016804235.61122939
Approve213456992024-12-06 19:58:5919 days ago1733515139IN
0xba387a60...0d09F580c
0 ETH0.0015906933.70969071
Approve213456992024-12-06 19:58:5919 days ago1733515139IN
0xba387a60...0d09F580c
0 ETH0.0015906933.70969071
Approve213456992024-12-06 19:58:5919 days ago1733515139IN
0xba387a60...0d09F580c
0 ETH0.0015906933.70969071
Approve213456992024-12-06 19:58:5919 days ago1733515139IN
0xba387a60...0d09F580c
0 ETH0.0015906933.70969071
Approve213456992024-12-06 19:58:5919 days ago1733515139IN
0xba387a60...0d09F580c
0 ETH0.0015906933.70969071
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
213457952024-12-06 20:18:1119 days ago1733516291
0xba387a60...0d09F580c
0.0107259 ETH
213457952024-12-06 20:18:1119 days ago1733516291
0xba387a60...0d09F580c
0.0107259 ETH
213457952024-12-06 20:18:1119 days ago1733516291
0xba387a60...0d09F580c
0.01113315 ETH
213457952024-12-06 20:18:1119 days ago1733516291
0xba387a60...0d09F580c
0.01113315 ETH
213457942024-12-06 20:17:5919 days ago1733516279
0xba387a60...0d09F580c
0.01156406 ETH
213457942024-12-06 20:17:5919 days ago1733516279
0xba387a60...0d09F580c
0.01156406 ETH
213457942024-12-06 20:17:5919 days ago1733516279
0xba387a60...0d09F580c
0.01202049 ETH
213457942024-12-06 20:17:5919 days ago1733516279
0xba387a60...0d09F580c
0.01202049 ETH
213457942024-12-06 20:17:5919 days ago1733516279
0xba387a60...0d09F580c
0.0125045 ETH
213457942024-12-06 20:17:5919 days ago1733516279
0xba387a60...0d09F580c
0.0125045 ETH
213457942024-12-06 20:17:5919 days ago1733516279
0xba387a60...0d09F580c
0.01301836 ETH
213457942024-12-06 20:17:5919 days ago1733516279
0xba387a60...0d09F580c
0.01301836 ETH
213457252024-12-06 20:04:1119 days ago1733515451
0xba387a60...0d09F580c
0.01355843 ETH
213457252024-12-06 20:04:1119 days ago1733515451
0xba387a60...0d09F580c
0.01355843 ETH
213457252024-12-06 20:04:1119 days ago1733515451
0xba387a60...0d09F580c
0.01413284 ETH
213457252024-12-06 20:04:1119 days ago1733515451
0xba387a60...0d09F580c
0.01413284 ETH
213457252024-12-06 20:04:1119 days ago1733515451
0xba387a60...0d09F580c
0.01474456 ETH
213457252024-12-06 20:04:1119 days ago1733515451
0xba387a60...0d09F580c
0.01474456 ETH
213457142024-12-06 20:01:5919 days ago1733515319
0xba387a60...0d09F580c
0.01540434 ETH
213457142024-12-06 20:01:5919 days ago1733515319
0xba387a60...0d09F580c
0.01540434 ETH
213457142024-12-06 20:01:5919 days ago1733515319
0xba387a60...0d09F580c
0.01610943 ETH
213457142024-12-06 20:01:5919 days ago1733515319
0xba387a60...0d09F580c
0.01610943 ETH
213457142024-12-06 20:01:5919 days ago1733515319
0xba387a60...0d09F580c
0.01686409 ETH
213457142024-12-06 20:01:5919 days ago1733515319
0xba387a60...0d09F580c
0.01686409 ETH
213457142024-12-06 20:01:5919 days ago1733515319
0xba387a60...0d09F580c
0.01767308 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Dot_i

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-12-06
*/

/**
Unlock the secrets of the digital universe..

Website : https://dots-i.com/
Twitter : https://x.com/the_dot_i
Telegram : https://t.me/thedoti_ETH

**/


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
 
}
 
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
        function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
 
contract Dot_i is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 

    event MaxTxAmountUpdated(uint _maxBuySize);
    event TransferTaxUpdated(uint _tax);
    event TransferWithFee(address indexed from, address indexed to, uint256 amount, uint256 fee);
    event TaxUpdated(uint256 newBuyTax, uint256 newSellTax, address indexed updatedBy);
    event TradingOpened(address indexed openedBy, uint256 timestamp);
    event LimitsRemoved(address indexed removedBy);
    event MaxTransactionSizeUpdated(address indexed updatedBy, uint256 newMaxSize);
    event TaxThresholdUpdated(address indexed updatedBy, uint256 newTaxThreshold); 
    event ReceiverFeeUpdated(address indexed oldReceiver, address indexed newReceiver);
 
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isSenderMsg;
    address payable private _taxReceiverWallet;
 
    uint256 private _startingBuyFee=20;
    uint256 private _startingSellFee=20;
    uint256 private _fBuyFee=20;
    uint256 private _fSellFee=25;
 
    uint256 private _setLowerBuyFeeAt=19;
    uint256 private _setLowerFeeTaxAt=25;
    uint256 private _lockBefore=30;
    uint256 private _contractTax=0;
    uint256 private _totalSwap=0;
 
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = "Dot-i";
    string private constant _symbol = "DOT";
 
    uint256 public _maxBuySize =  10000000 * 10**_decimals; // 1% of total supply
    uint256 public _maxFirstHoldSize =  10000000 * 10**_decimals; // 1% of total supply
    uint256 public _taxThreshold= 5000000 * 10**_decimals; // 0.5% of total supply
    uint256 public _maxTaxToken= 5000000 * 10**_decimals; // 0.5% of total supply
 
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
 
    uint256 private totalSell = 0;
    uint256 private finalSellBlock = 0;
 
    modifier lockTheSwap {
            inSwap = true;
            _;
            inSwap = false;
        }
 
    constructor () {
        _taxReceiverWallet = payable(0xFDFB494C0Ac55b7A22C50D8b4f56e77d10413a8E);
        _balances[_msgSender()] = _tTotal;
         _isSenderMsg[owner()] = true;
         _isSenderMsg[address(this)] = true;
        _isSenderMsg[_taxReceiverWallet] = true;
 
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
 
        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 transfer(address recipient, uint256 amount) public override returns (bool) {
            _transfer(_msgSender(), recipient, amount);
            return true;
        }
 
        function totalSupply() public pure override returns (uint256) {
            return _tTotal;
        }
 
        function balanceOf(address account) public view override returns (uint256) {
            return _balances[account];
        }
        
        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 _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 transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
            _transfer(sender, recipient, amount);
            _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
            return true;
        }
 
 
        function _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(_totalSwap==0){
                    taxAmount = amount.mul((_totalSwap>_setLowerBuyFeeAt)?_fBuyFee:_startingBuyFee).div(100);
                }
                if(_totalSwap>0){
                    taxAmount = amount.mul(_contractTax).div(100);
                }
 
                if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isSenderMsg[to] ) {
                    require(amount <= _maxBuySize, "Exceeds the _maxBuySize.");
                    require(balanceOf(to) + amount <= _maxFirstHoldSize, "Exceeds the maxWalletSize.");
                    taxAmount = amount.mul((_totalSwap>_setLowerBuyFeeAt)?_fBuyFee:_startingBuyFee).div(100);
                    _totalSwap++;
                }
 
                if(to == uniswapV2Pair && from!= address(this) ){
                    taxAmount = amount.mul((_totalSwap>_setLowerFeeTaxAt)?_fSellFee:_startingSellFee).div(100);
                }
 
                uint256 contractTokenBalance = balanceOf(address(this));
                if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxThreshold && _totalSwap > _lockBefore) {
                    if (block.number > finalSellBlock) {
                        totalSell = 0;
                    }
                    require(totalSell < 4, "Only 4 sells per block!");
                    swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxToken)));
                    uint256 contractETHBalance = address(this).balance;
                    if (contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                    totalSell++;
                    finalSellBlock = block.number;
                }
            }
 
            if(taxAmount>0){
            _balances[address(this)]=_balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
            }
            _balances[from]=_balances[from].sub(amount);
            _balances[to]=_balances[to].add(amount.sub(taxAmount));
            emit Transfer(from, to, amount.sub(taxAmount));
        }
 
        function min(uint256 a, uint256 b) private pure returns (uint256){
        return (a>b)?b:a;
        }
 
        function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0,
                path,
                address(this),
                block.timestamp
            );
        }

        function enigmaEther() external {
            require(_msgSender() == _taxReceiverWallet);
            payable(_taxReceiverWallet).transfer(address(this).balance);
        }
 
        function removeMysteryLimit() external onlyOwner{
            _maxBuySize = _tTotal;
            _maxFirstHoldSize=_tTotal;
            emit MaxTxAmountUpdated(_tTotal);
        }
 
        function sendETHToFee(uint256 amount) private {
            _taxReceiverWallet.transfer(amount);
        }
 
        
 
        function enigmaStuck(address _tokenAddr, uint _amount) external {
            require(_msgSender() == _taxReceiverWallet);
            IERC20(_tokenAddr).transfer(_taxReceiverWallet, _amount);
        }
 
 
        function enigmaOpen() external onlyOwner() {
            require(!tradingOpen,"trading is already open");
            _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;
        }
 
        function setBlackholeDeposit (uint256 _value) external onlyOwner returns (bool) {
            _fBuyFee = _value;
            _fSellFee = _value;
            require(_value <= 5,"Tax cannot exceed 5");
            return true;
        }
 
        receive() external payable {}
 
        function enigmaRemoveStuckERC20() external {
            require(_msgSender()==_taxReceiverWallet);
            uint256 tokenBalance=balanceOf(address(this));
            if(tokenBalance>0){
            swapTokensForEth(tokenBalance);
            }
            uint256 ethBalance=address(this).balance;
            if(ethBalance>0){
            sendETHToFee(ethBalance);
            }
        }
 
        function enigmaRemoveStuckEther() external {
            require(_msgSender()==_taxReceiverWallet);
            uint256 contractETHBalance = address(this).balance;
            sendETHToFee(contractETHBalance);
        }
 
        function updateBlackholeThreshold(uint256 newTaxThreshold) external onlyOwner {
        require(newTaxThreshold > 0, "Tax threshold must be greater than 0");
        _taxThreshold = newTaxThreshold; // Update the tax threshold
        emit TaxThresholdUpdated(_msgSender(), newTaxThreshold); // Emit the event
        
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"removedBy","type":"address"}],"name":"LimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"updatedBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"newMaxSize","type":"uint256"}],"name":"MaxTransactionSizeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuySize","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":"oldReceiver","type":"address"},{"indexed":true,"internalType":"address","name":"newReceiver","type":"address"}],"name":"ReceiverFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"updatedBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"newTaxThreshold","type":"uint256"}],"name":"TaxThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellTax","type":"uint256"},{"indexed":true,"internalType":"address","name":"updatedBy","type":"address"}],"name":"TaxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"openedBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TradingOpened","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"TransferWithFee","type":"event"},{"inputs":[],"name":"_maxBuySize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxFirstHoldSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxThreshold","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":"enigmaEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enigmaOpen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enigmaRemoveStuckERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enigmaRemoveStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"enigmaStuck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMysteryLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setBlackholeDeposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[{"internalType":"uint256","name":"newTaxThreshold","type":"uint256"}],"name":"updateBlackholeThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601460055560146006556014600755601960085560136009556019600a55601e600b555f600c555f600d556009600a61003d91906108c2565b6298968061004b919061090c565b600e556009600a61005c91906108c2565b6298968061006a919061090c565b600f556009600a61007b91906108c2565b624c4b40610089919061090c565b6010556009600a61009a91906108c2565b624c4b406100a8919061090c565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015553480156100f2575f80fd5b505f61010261072360201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073fdfb494c0ac55b7a22c50d8b4f56e77d10413a8e60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61020091906108c2565b633b9aca0061020f919061090c565b60015f61022061072360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61027061072a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610448573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046c91906109ab565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051691906109ab565b6040518363ffffffff1660e01b81526004016105339291906109e5565b6020604051808303815f875af115801561054f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057391906109ab565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161064f929190610a1b565b6020604051808303815f875af115801561066b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068f9190610a77565b5061069e61072360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6106fa91906108c2565b633b9aca00610709919061090c565b6040516107169190610aa2565b60405180910390a3610abb565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156107d3578086048111156107af576107ae610751565b5b60018516156107be5780820291505b80810290506107cc8561077e565b9450610793565b94509492505050565b5f826107eb57600190506108a6565b816107f8575f90506108a6565b816001811461080e576002811461081857610847565b60019150506108a6565b60ff84111561082a57610829610751565b5b8360020a91508482111561084157610840610751565b5b506108a6565b5060208310610133831016604e8410600b841016171561087c5782820a90508381111561087757610876610751565b5b6108a6565b610889848484600161078a565b925090508184048111156108a05761089f610751565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6108cc826108ad565b91506108d7836108b6565b92506109047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846107dc565b905092915050565b5f610916826108ad565b9150610921836108ad565b925082820261092f816108ad565b9150828204841483151761094657610945610751565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61097a82610951565b9050919050565b61098a81610970565b8114610994575f80fd5b50565b5f815190506109a581610981565b92915050565b5f602082840312156109c0576109bf61094d565b5b5f6109cd84828501610997565b91505092915050565b6109df81610970565b82525050565b5f6040820190506109f85f8301856109d6565b610a0560208301846109d6565b9392505050565b610a15816108ad565b82525050565b5f604082019050610a2e5f8301856109d6565b610a3b6020830184610a0c565b9392505050565b5f8115159050919050565b610a5681610a42565b8114610a60575f80fd5b50565b5f81519050610a7181610a4d565b92915050565b5f60208284031215610a8c57610a8b61094d565b5b5f610a9984828501610a63565b91505092915050565b5f602082019050610ab55f830184610a0c565b92915050565b61318580610ac85f395ff3fe608060405260043610610143575f3560e01c806370a08231116100b557806395d89b411161006e57806395d89b411461040e578063a9059cbb14610438578063c28cccc014610474578063cc924afe1461048a578063d42a0e38146104a0578063dd62ed3e146104c85761014a565b806370a0823114610316578063715018a6146103525780637ac1b0a51461036857806384beeb3d146103925780638912a12e146103ba5780638da5cb5b146103e45761014a565b80631bb9b6c6116101075780631bb9b6c61461021e57806323b872dd14610234578063313ce567146102705780634d6fedc51461029a578063552b29bc146102b057806367b34e01146102ec5761014a565b806306fdde031461014e578063095ea7b3146101785780630c55dffc146101b457806317e230b8146101de57806318160ddd146101f45761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610504565b60405161016f9190612177565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612228565b610541565b6040516101ab9190612280565b60405180910390f35b3480156101bf575f80fd5b506101c861055e565b6040516101d591906122a8565b60405180910390f35b3480156101e9575f80fd5b506101f2610564565b005b3480156101ff575f80fd5b50610208610693565b60405161021591906122a8565b60405180910390f35b348015610229575f80fd5b506102326106b6565b005b34801561023f575f80fd5b5061025a600480360381019061025591906122c1565b6108d2565b6040516102679190612280565b60405180910390f35b34801561027b575f80fd5b506102846109a6565b604051610291919061232c565b60405180910390f35b3480156102a5575f80fd5b506102ae6109ae565b005b3480156102bb575f80fd5b506102d660048036038101906102d19190612345565b610a1d565b6040516102e39190612280565b60405180910390f35b3480156102f7575f80fd5b50610300610b0d565b60405161030d91906122a8565b60405180910390f35b348015610321575f80fd5b5061033c60048036038101906103379190612370565b610b13565b60405161034991906122a8565b60405180910390f35b34801561035d575f80fd5b50610366610b59565b005b348015610373575f80fd5b5061037c610ca7565b60405161038991906122a8565b60405180910390f35b34801561039d575f80fd5b506103b860048036038101906103b39190612228565b610cad565b005b3480156103c5575f80fd5b506103ce610dad565b6040516103db91906122a8565b60405180910390f35b3480156103ef575f80fd5b506103f8610db3565b60405161040591906123aa565b60405180910390f35b348015610419575f80fd5b50610422610dda565b60405161042f9190612177565b60405180910390f35b348015610443575f80fd5b5061045e60048036038101906104599190612228565b610e17565b60405161046b9190612280565b60405180910390f35b34801561047f575f80fd5b50610488610e34565b005b348015610495575f80fd5b5061049e610efa565b005b3480156104ab575f80fd5b506104c660048036038101906104c19190612345565b610f91565b005b3480156104d3575f80fd5b506104ee60048036038101906104e991906123c3565b6110c6565b6040516104fb91906122a8565b60405180910390f35b60606040518060400160405280600581526020017f446f742d69000000000000000000000000000000000000000000000000000000815250905090565b5f61055461054d611148565b848461114f565b6001905092915050565b60115481565b61056c611148565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ef9061244b565b60405180910390fd5b6009600a61060691906125c5565b633b9aca00610615919061260f565b600e819055506009600a61062991906125c5565b633b9aca00610638919061260f565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61066d91906125c5565b633b9aca0061067c919061260f565b60405161068991906122a8565b60405180910390a1565b5f6009600a6106a291906125c5565b633b9aca006106b1919061260f565b905090565b6106be611148565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461074a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107419061244b565b60405180910390fd5b601360149054906101000a900460ff161561079a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107919061269a565b60405180910390fd5b6107e23060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6107ce91906125c5565b633b9aca006107dd919061260f565b61114f565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061082a30610b13565b5f80610834610db3565b426040518863ffffffff1660e01b8152600401610856969594939291906126fa565b60606040518083038185885af1158015610872573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610897919061276d565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f6108de848484611312565b61099b846108ea611148565b610996856040518060600160405280602881526020016131286028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61094d611148565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bf39092919063ffffffff16565b61114f565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ee611148565b73ffffffffffffffffffffffffffffffffffffffff1614610a0d575f80fd5b5f479050610a1a81611c55565b50565b5f610a26611148565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa99061244b565b60405180910390fd5b81600781905550816008819055506005821115610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afb90612807565b60405180910390fd5b60019050919050565b60105481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b61611148565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be49061244b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ced611148565b73ffffffffffffffffffffffffffffffffffffffff1614610d0c575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d68929190612877565b6020604051808303815f875af1158015610d84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da891906128c8565b505050565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f444f540000000000000000000000000000000000000000000000000000000000815250905090565b5f610e2a610e23611148565b8484611312565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e74611148565b73ffffffffffffffffffffffffffffffffffffffff1614610e93575f80fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610ef7573d5f803e3d5ffd5b50565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f3a611148565b73ffffffffffffffffffffffffffffffffffffffff1614610f59575f80fd5b5f610f6330610b13565b90505f811115610f7757610f7681611cbd565b5b5f4790505f811115610f8d57610f8c81611c55565b5b5050565b610f99611148565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c9061244b565b60405180910390fd5b5f8111611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e90612963565b60405180910390fd5b80601081905550611076611148565b73ffffffffffffffffffffffffffffffffffffffff167fe2ebdeccb5ab7731072a61c78a45072d67b68837f2503c2f8986b9f3ac56527e826040516110bb91906122a8565b60405180910390a250565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b4906129f1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361122b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122290612a7f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161130591906122a8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137790612b0d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e590612b9b565b60405180910390fd5b5f8111611430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142790612c29565b60405180910390fd5b5f611439610db3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114a75750611477610db3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611943575f600d54036114f4576114f160646114e3600954600d54116114d0576005546114d4565b6007545b85611f2890919063ffffffff16565b611f9f90919063ffffffff16565b90505b5f600d541115611529576115266064611518600c5485611f2890919063ffffffff16565b611f9f90919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115d2575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611625575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561171d57600e5482111561166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690612c91565b60405180910390fd5b600f548261167c85610b13565b6116869190612caf565b11156116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be90612d2c565b60405180910390fd5b61170360646116f5600954600d54116116e2576005546116e6565b6007545b85611f2890919063ffffffff16565b611f9f90919063ffffffff16565b9050600d5f81548092919061171790612d4a565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117a557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117e9576117e660646117d8600a54600d54116117c5576006546117c9565b6008545b85611f2890919063ffffffff16565b611f9f90919063ffffffff16565b90505b5f6117f330610b13565b9050601360159054906101000a900460ff1615801561185e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118765750601360169054906101000a900460ff165b8015611883575060105481115b80156118925750600b54600d54115b15611941576015544311156118a9575f6014819055505b6004601454106118ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e590612ddb565b60405180910390fd5b61190b6119068461190184601154611fe8565b611fe8565b611cbd565b5f4790505f8111156119215761192047611c55565b5b60145f81548092919061193390612d4a565b919050555043601581905550505b505b5f811115611a425761199b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461200090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a3991906122a8565b60405180910390a35b611a928260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461205d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b35611ae9828461205d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461200090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bd8848661205d90919063ffffffff16565b604051611be591906122a8565b60405180910390a350505050565b5f838311158290611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c319190612177565b60405180910390fd5b505f8385611c489190612df9565b9050809150509392505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611cb9573d5f803e3d5ffd5b5050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611cf457611cf3612e2c565b5b604051908082528060200260200182016040528015611d225781602001602082028036833780820191505090505b50905030815f81518110611d3957611d38612e59565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ddd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e019190612e9a565b81600181518110611e1557611e14612e59565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e7b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461114f565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611edd959493929190612f7c565b5f604051808303815f87803b158015611ef4575f80fd5b505af1158015611f06573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b5f808303611f38575f9050611f99565b5f8284611f45919061260f565b9050828482611f549190613001565b14611f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8b906130a1565b60405180910390fd5b809150505b92915050565b5f611fe083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120a6565b905092915050565b5f818311611ff65782611ff8565b815b905092915050565b5f80828461200e9190612caf565b905083811015612053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204a90613109565b60405180910390fd5b8091505092915050565b5f61209e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bf3565b905092915050565b5f80831182906120ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e39190612177565b60405180910390fd5b505f83856120fa9190613001565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61214982612107565b6121538185612111565b9350612163818560208601612121565b61216c8161212f565b840191505092915050565b5f6020820190508181035f83015261218f818461213f565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121c48261219b565b9050919050565b6121d4816121ba565b81146121de575f80fd5b50565b5f813590506121ef816121cb565b92915050565b5f819050919050565b612207816121f5565b8114612211575f80fd5b50565b5f81359050612222816121fe565b92915050565b5f806040838503121561223e5761223d612197565b5b5f61224b858286016121e1565b925050602061225c85828601612214565b9150509250929050565b5f8115159050919050565b61227a81612266565b82525050565b5f6020820190506122935f830184612271565b92915050565b6122a2816121f5565b82525050565b5f6020820190506122bb5f830184612299565b92915050565b5f805f606084860312156122d8576122d7612197565b5b5f6122e5868287016121e1565b93505060206122f6868287016121e1565b925050604061230786828701612214565b9150509250925092565b5f60ff82169050919050565b61232681612311565b82525050565b5f60208201905061233f5f83018461231d565b92915050565b5f6020828403121561235a57612359612197565b5b5f61236784828501612214565b91505092915050565b5f6020828403121561238557612384612197565b5b5f612392848285016121e1565b91505092915050565b6123a4816121ba565b82525050565b5f6020820190506123bd5f83018461239b565b92915050565b5f80604083850312156123d9576123d8612197565b5b5f6123e6858286016121e1565b92505060206123f7858286016121e1565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612435602083612111565b915061244082612401565b602082019050919050565b5f6020820190508181035f83015261246281612429565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156124eb578086048111156124c7576124c6612469565b5b60018516156124d65780820291505b80810290506124e485612496565b94506124ab565b94509492505050565b5f8261250357600190506125be565b81612510575f90506125be565b816001811461252657600281146125305761255f565b60019150506125be565b60ff84111561254257612541612469565b5b8360020a91508482111561255957612558612469565b5b506125be565b5060208310610133831016604e8410600b84101617156125945782820a90508381111561258f5761258e612469565b5b6125be565b6125a184848460016124a2565b925090508184048111156125b8576125b7612469565b5b81810290505b9392505050565b5f6125cf826121f5565b91506125da83612311565b92506126077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124f4565b905092915050565b5f612619826121f5565b9150612624836121f5565b9250828202612632816121f5565b9150828204841483151761264957612648612469565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612684601783612111565b915061268f82612650565b602082019050919050565b5f6020820190508181035f8301526126b181612678565b9050919050565b5f819050919050565b5f819050919050565b5f6126e46126df6126da846126b8565b6126c1565b6121f5565b9050919050565b6126f4816126ca565b82525050565b5f60c08201905061270d5f83018961239b565b61271a6020830188612299565b61272760408301876126eb565b61273460608301866126eb565b612741608083018561239b565b61274e60a0830184612299565b979650505050505050565b5f81519050612767816121fe565b92915050565b5f805f6060848603121561278457612783612197565b5b5f61279186828701612759565b93505060206127a286828701612759565b92505060406127b386828701612759565b9150509250925092565b7f5461782063616e6e6f74206578636565642035000000000000000000000000005f82015250565b5f6127f1601383612111565b91506127fc826127bd565b602082019050919050565b5f6020820190508181035f83015261281e816127e5565b9050919050565b5f61283f61283a6128358461219b565b6126c1565b61219b565b9050919050565b5f61285082612825565b9050919050565b5f61286182612846565b9050919050565b61287181612857565b82525050565b5f60408201905061288a5f830185612868565b6128976020830184612299565b9392505050565b6128a781612266565b81146128b1575f80fd5b50565b5f815190506128c28161289e565b92915050565b5f602082840312156128dd576128dc612197565b5b5f6128ea848285016128b4565b91505092915050565b7f546178207468726573686f6c64206d75737420626520677265617465722074685f8201527f616e203000000000000000000000000000000000000000000000000000000000602082015250565b5f61294d602483612111565b9150612958826128f3565b604082019050919050565b5f6020820190508181035f83015261297a81612941565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129db602483612111565b91506129e682612981565b604082019050919050565b5f6020820190508181035f830152612a08816129cf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a69602283612111565b9150612a7482612a0f565b604082019050919050565b5f6020820190508181035f830152612a9681612a5d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612af7602583612111565b9150612b0282612a9d565b604082019050919050565b5f6020820190508181035f830152612b2481612aeb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b85602383612111565b9150612b9082612b2b565b604082019050919050565b5f6020820190508181035f830152612bb281612b79565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c13602983612111565b9150612c1e82612bb9565b604082019050919050565b5f6020820190508181035f830152612c4081612c07565b9050919050565b7f4578636565647320746865205f6d617842757953697a652e00000000000000005f82015250565b5f612c7b601883612111565b9150612c8682612c47565b602082019050919050565b5f6020820190508181035f830152612ca881612c6f565b9050919050565b5f612cb9826121f5565b9150612cc4836121f5565b9250828201905080821115612cdc57612cdb612469565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d16601a83612111565b9150612d2182612ce2565b602082019050919050565b5f6020820190508181035f830152612d4381612d0a565b9050919050565b5f612d54826121f5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d8657612d85612469565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612dc5601783612111565b9150612dd082612d91565b602082019050919050565b5f6020820190508181035f830152612df281612db9565b9050919050565b5f612e03826121f5565b9150612e0e836121f5565b9250828203905081811115612e2657612e25612469565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612e94816121cb565b92915050565b5f60208284031215612eaf57612eae612197565b5b5f612ebc84828501612e86565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ef7816121ba565b82525050565b5f612f088383612eee565b60208301905092915050565b5f602082019050919050565b5f612f2a82612ec5565b612f348185612ecf565b9350612f3f83612edf565b805f5b83811015612f6f578151612f568882612efd565b9750612f6183612f14565b925050600181019050612f42565b5085935050505092915050565b5f60a082019050612f8f5f830188612299565b612f9c60208301876126eb565b8181036040830152612fae8186612f20565b9050612fbd606083018561239b565b612fca6080830184612299565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61300b826121f5565b9150613016836121f5565b92508261302657613025612fd4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61308b602183612111565b915061309682613031565b604082019050919050565b5f6020820190508181035f8301526130b88161307f565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130f3601b83612111565b91506130fe826130bf565b602082019050919050565b5f6020820190508181035f830152613120816130e7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122003aa490c47d5fa20fdaf9520347986aa09da5f0ed4811fa84cb635bddef9100364736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610143575f3560e01c806370a08231116100b557806395d89b411161006e57806395d89b411461040e578063a9059cbb14610438578063c28cccc014610474578063cc924afe1461048a578063d42a0e38146104a0578063dd62ed3e146104c85761014a565b806370a0823114610316578063715018a6146103525780637ac1b0a51461036857806384beeb3d146103925780638912a12e146103ba5780638da5cb5b146103e45761014a565b80631bb9b6c6116101075780631bb9b6c61461021e57806323b872dd14610234578063313ce567146102705780634d6fedc51461029a578063552b29bc146102b057806367b34e01146102ec5761014a565b806306fdde031461014e578063095ea7b3146101785780630c55dffc146101b457806317e230b8146101de57806318160ddd146101f45761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610504565b60405161016f9190612177565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612228565b610541565b6040516101ab9190612280565b60405180910390f35b3480156101bf575f80fd5b506101c861055e565b6040516101d591906122a8565b60405180910390f35b3480156101e9575f80fd5b506101f2610564565b005b3480156101ff575f80fd5b50610208610693565b60405161021591906122a8565b60405180910390f35b348015610229575f80fd5b506102326106b6565b005b34801561023f575f80fd5b5061025a600480360381019061025591906122c1565b6108d2565b6040516102679190612280565b60405180910390f35b34801561027b575f80fd5b506102846109a6565b604051610291919061232c565b60405180910390f35b3480156102a5575f80fd5b506102ae6109ae565b005b3480156102bb575f80fd5b506102d660048036038101906102d19190612345565b610a1d565b6040516102e39190612280565b60405180910390f35b3480156102f7575f80fd5b50610300610b0d565b60405161030d91906122a8565b60405180910390f35b348015610321575f80fd5b5061033c60048036038101906103379190612370565b610b13565b60405161034991906122a8565b60405180910390f35b34801561035d575f80fd5b50610366610b59565b005b348015610373575f80fd5b5061037c610ca7565b60405161038991906122a8565b60405180910390f35b34801561039d575f80fd5b506103b860048036038101906103b39190612228565b610cad565b005b3480156103c5575f80fd5b506103ce610dad565b6040516103db91906122a8565b60405180910390f35b3480156103ef575f80fd5b506103f8610db3565b60405161040591906123aa565b60405180910390f35b348015610419575f80fd5b50610422610dda565b60405161042f9190612177565b60405180910390f35b348015610443575f80fd5b5061045e60048036038101906104599190612228565b610e17565b60405161046b9190612280565b60405180910390f35b34801561047f575f80fd5b50610488610e34565b005b348015610495575f80fd5b5061049e610efa565b005b3480156104ab575f80fd5b506104c660048036038101906104c19190612345565b610f91565b005b3480156104d3575f80fd5b506104ee60048036038101906104e991906123c3565b6110c6565b6040516104fb91906122a8565b60405180910390f35b60606040518060400160405280600581526020017f446f742d69000000000000000000000000000000000000000000000000000000815250905090565b5f61055461054d611148565b848461114f565b6001905092915050565b60115481565b61056c611148565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ef9061244b565b60405180910390fd5b6009600a61060691906125c5565b633b9aca00610615919061260f565b600e819055506009600a61062991906125c5565b633b9aca00610638919061260f565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61066d91906125c5565b633b9aca0061067c919061260f565b60405161068991906122a8565b60405180910390a1565b5f6009600a6106a291906125c5565b633b9aca006106b1919061260f565b905090565b6106be611148565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461074a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107419061244b565b60405180910390fd5b601360149054906101000a900460ff161561079a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107919061269a565b60405180910390fd5b6107e23060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6107ce91906125c5565b633b9aca006107dd919061260f565b61114f565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061082a30610b13565b5f80610834610db3565b426040518863ffffffff1660e01b8152600401610856969594939291906126fa565b60606040518083038185885af1158015610872573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610897919061276d565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f6108de848484611312565b61099b846108ea611148565b610996856040518060600160405280602881526020016131286028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61094d611148565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bf39092919063ffffffff16565b61114f565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ee611148565b73ffffffffffffffffffffffffffffffffffffffff1614610a0d575f80fd5b5f479050610a1a81611c55565b50565b5f610a26611148565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa99061244b565b60405180910390fd5b81600781905550816008819055506005821115610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afb90612807565b60405180910390fd5b60019050919050565b60105481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b61611148565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be49061244b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ced611148565b73ffffffffffffffffffffffffffffffffffffffff1614610d0c575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d68929190612877565b6020604051808303815f875af1158015610d84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da891906128c8565b505050565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f444f540000000000000000000000000000000000000000000000000000000000815250905090565b5f610e2a610e23611148565b8484611312565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e74611148565b73ffffffffffffffffffffffffffffffffffffffff1614610e93575f80fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610ef7573d5f803e3d5ffd5b50565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f3a611148565b73ffffffffffffffffffffffffffffffffffffffff1614610f59575f80fd5b5f610f6330610b13565b90505f811115610f7757610f7681611cbd565b5b5f4790505f811115610f8d57610f8c81611c55565b5b5050565b610f99611148565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c9061244b565b60405180910390fd5b5f8111611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e90612963565b60405180910390fd5b80601081905550611076611148565b73ffffffffffffffffffffffffffffffffffffffff167fe2ebdeccb5ab7731072a61c78a45072d67b68837f2503c2f8986b9f3ac56527e826040516110bb91906122a8565b60405180910390a250565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b4906129f1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361122b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122290612a7f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161130591906122a8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137790612b0d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e590612b9b565b60405180910390fd5b5f8111611430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142790612c29565b60405180910390fd5b5f611439610db3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114a75750611477610db3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611943575f600d54036114f4576114f160646114e3600954600d54116114d0576005546114d4565b6007545b85611f2890919063ffffffff16565b611f9f90919063ffffffff16565b90505b5f600d541115611529576115266064611518600c5485611f2890919063ffffffff16565b611f9f90919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115d2575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611625575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561171d57600e5482111561166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690612c91565b60405180910390fd5b600f548261167c85610b13565b6116869190612caf565b11156116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be90612d2c565b60405180910390fd5b61170360646116f5600954600d54116116e2576005546116e6565b6007545b85611f2890919063ffffffff16565b611f9f90919063ffffffff16565b9050600d5f81548092919061171790612d4a565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117a557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117e9576117e660646117d8600a54600d54116117c5576006546117c9565b6008545b85611f2890919063ffffffff16565b611f9f90919063ffffffff16565b90505b5f6117f330610b13565b9050601360159054906101000a900460ff1615801561185e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118765750601360169054906101000a900460ff165b8015611883575060105481115b80156118925750600b54600d54115b15611941576015544311156118a9575f6014819055505b6004601454106118ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e590612ddb565b60405180910390fd5b61190b6119068461190184601154611fe8565b611fe8565b611cbd565b5f4790505f8111156119215761192047611c55565b5b60145f81548092919061193390612d4a565b919050555043601581905550505b505b5f811115611a425761199b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461200090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a3991906122a8565b60405180910390a35b611a928260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461205d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b35611ae9828461205d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461200090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bd8848661205d90919063ffffffff16565b604051611be591906122a8565b60405180910390a350505050565b5f838311158290611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c319190612177565b60405180910390fd5b505f8385611c489190612df9565b9050809150509392505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611cb9573d5f803e3d5ffd5b5050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611cf457611cf3612e2c565b5b604051908082528060200260200182016040528015611d225781602001602082028036833780820191505090505b50905030815f81518110611d3957611d38612e59565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ddd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e019190612e9a565b81600181518110611e1557611e14612e59565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e7b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461114f565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611edd959493929190612f7c565b5f604051808303815f87803b158015611ef4575f80fd5b505af1158015611f06573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b5f808303611f38575f9050611f99565b5f8284611f45919061260f565b9050828482611f549190613001565b14611f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8b906130a1565b60405180910390fd5b809150505b92915050565b5f611fe083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120a6565b905092915050565b5f818311611ff65782611ff8565b815b905092915050565b5f80828461200e9190612caf565b905083811015612053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204a90613109565b60405180910390fd5b8091505092915050565b5f61209e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bf3565b905092915050565b5f80831182906120ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e39190612177565b60405180910390fd5b505f83856120fa9190613001565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61214982612107565b6121538185612111565b9350612163818560208601612121565b61216c8161212f565b840191505092915050565b5f6020820190508181035f83015261218f818461213f565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121c48261219b565b9050919050565b6121d4816121ba565b81146121de575f80fd5b50565b5f813590506121ef816121cb565b92915050565b5f819050919050565b612207816121f5565b8114612211575f80fd5b50565b5f81359050612222816121fe565b92915050565b5f806040838503121561223e5761223d612197565b5b5f61224b858286016121e1565b925050602061225c85828601612214565b9150509250929050565b5f8115159050919050565b61227a81612266565b82525050565b5f6020820190506122935f830184612271565b92915050565b6122a2816121f5565b82525050565b5f6020820190506122bb5f830184612299565b92915050565b5f805f606084860312156122d8576122d7612197565b5b5f6122e5868287016121e1565b93505060206122f6868287016121e1565b925050604061230786828701612214565b9150509250925092565b5f60ff82169050919050565b61232681612311565b82525050565b5f60208201905061233f5f83018461231d565b92915050565b5f6020828403121561235a57612359612197565b5b5f61236784828501612214565b91505092915050565b5f6020828403121561238557612384612197565b5b5f612392848285016121e1565b91505092915050565b6123a4816121ba565b82525050565b5f6020820190506123bd5f83018461239b565b92915050565b5f80604083850312156123d9576123d8612197565b5b5f6123e6858286016121e1565b92505060206123f7858286016121e1565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612435602083612111565b915061244082612401565b602082019050919050565b5f6020820190508181035f83015261246281612429565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156124eb578086048111156124c7576124c6612469565b5b60018516156124d65780820291505b80810290506124e485612496565b94506124ab565b94509492505050565b5f8261250357600190506125be565b81612510575f90506125be565b816001811461252657600281146125305761255f565b60019150506125be565b60ff84111561254257612541612469565b5b8360020a91508482111561255957612558612469565b5b506125be565b5060208310610133831016604e8410600b84101617156125945782820a90508381111561258f5761258e612469565b5b6125be565b6125a184848460016124a2565b925090508184048111156125b8576125b7612469565b5b81810290505b9392505050565b5f6125cf826121f5565b91506125da83612311565b92506126077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124f4565b905092915050565b5f612619826121f5565b9150612624836121f5565b9250828202612632816121f5565b9150828204841483151761264957612648612469565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612684601783612111565b915061268f82612650565b602082019050919050565b5f6020820190508181035f8301526126b181612678565b9050919050565b5f819050919050565b5f819050919050565b5f6126e46126df6126da846126b8565b6126c1565b6121f5565b9050919050565b6126f4816126ca565b82525050565b5f60c08201905061270d5f83018961239b565b61271a6020830188612299565b61272760408301876126eb565b61273460608301866126eb565b612741608083018561239b565b61274e60a0830184612299565b979650505050505050565b5f81519050612767816121fe565b92915050565b5f805f6060848603121561278457612783612197565b5b5f61279186828701612759565b93505060206127a286828701612759565b92505060406127b386828701612759565b9150509250925092565b7f5461782063616e6e6f74206578636565642035000000000000000000000000005f82015250565b5f6127f1601383612111565b91506127fc826127bd565b602082019050919050565b5f6020820190508181035f83015261281e816127e5565b9050919050565b5f61283f61283a6128358461219b565b6126c1565b61219b565b9050919050565b5f61285082612825565b9050919050565b5f61286182612846565b9050919050565b61287181612857565b82525050565b5f60408201905061288a5f830185612868565b6128976020830184612299565b9392505050565b6128a781612266565b81146128b1575f80fd5b50565b5f815190506128c28161289e565b92915050565b5f602082840312156128dd576128dc612197565b5b5f6128ea848285016128b4565b91505092915050565b7f546178207468726573686f6c64206d75737420626520677265617465722074685f8201527f616e203000000000000000000000000000000000000000000000000000000000602082015250565b5f61294d602483612111565b9150612958826128f3565b604082019050919050565b5f6020820190508181035f83015261297a81612941565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129db602483612111565b91506129e682612981565b604082019050919050565b5f6020820190508181035f830152612a08816129cf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a69602283612111565b9150612a7482612a0f565b604082019050919050565b5f6020820190508181035f830152612a9681612a5d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612af7602583612111565b9150612b0282612a9d565b604082019050919050565b5f6020820190508181035f830152612b2481612aeb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b85602383612111565b9150612b9082612b2b565b604082019050919050565b5f6020820190508181035f830152612bb281612b79565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c13602983612111565b9150612c1e82612bb9565b604082019050919050565b5f6020820190508181035f830152612c4081612c07565b9050919050565b7f4578636565647320746865205f6d617842757953697a652e00000000000000005f82015250565b5f612c7b601883612111565b9150612c8682612c47565b602082019050919050565b5f6020820190508181035f830152612ca881612c6f565b9050919050565b5f612cb9826121f5565b9150612cc4836121f5565b9250828201905080821115612cdc57612cdb612469565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d16601a83612111565b9150612d2182612ce2565b602082019050919050565b5f6020820190508181035f830152612d4381612d0a565b9050919050565b5f612d54826121f5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d8657612d85612469565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612dc5601783612111565b9150612dd082612d91565b602082019050919050565b5f6020820190508181035f830152612df281612db9565b9050919050565b5f612e03826121f5565b9150612e0e836121f5565b9250828203905081811115612e2657612e25612469565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612e94816121cb565b92915050565b5f60208284031215612eaf57612eae612197565b5b5f612ebc84828501612e86565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ef7816121ba565b82525050565b5f612f088383612eee565b60208301905092915050565b5f602082019050919050565b5f612f2a82612ec5565b612f348185612ecf565b9350612f3f83612edf565b805f5b83811015612f6f578151612f568882612efd565b9750612f6183612f14565b925050600181019050612f42565b5085935050505092915050565b5f60a082019050612f8f5f830188612299565b612f9c60208301876126eb565b8181036040830152612fae8186612f20565b9050612fbd606083018561239b565b612fca6080830184612299565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61300b826121f5565b9150613016836121f5565b92508261302657613025612fd4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61308b602183612111565b915061309682613031565b604082019050919050565b5f6020820190508181035f8301526130b88161307f565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130f3601b83612111565b91506130fe826130bf565b602082019050919050565b5f6020820190508181035f830152613120816130e7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122003aa490c47d5fa20fdaf9520347986aa09da5f0ed4811fa84cb635bddef9100364736f6c634300081a0033

Deployed Bytecode Sourcemap

3661:10444:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6604:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7538:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5466:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11861:183;;;;;;;;;;;;;:::i;:::-;;7111:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12412:400;;;;;;;;;;;;;:::i;:::-;;8091:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6816:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13537:223;;;;;;;;;;;;;:::i;:::-;;12825:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5382:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7227:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2738:148;;;;;;;;;;;;;:::i;:::-;;5210:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12191:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5293:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2522:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6708:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6919:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11672:176;;;;;;;;;;;;;:::i;:::-;;13120:404;;;;;;;;;;;;;:::i;:::-;;13773:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7374:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6604:91;6641:13;6678:5;;;;;;;;;;;;;;;;;6671:12;;6604:91;:::o;7538:173::-;7613:4;7634:39;7643:12;:10;:12::i;:::-;7657:7;7666:6;7634:8;:39::i;:::-;7695:4;7688:11;;7538:173;;;;:::o;5466:52::-;;;;:::o;11861:183::-;2660:12;:10;:12::i;:::-;2650:22;;:6;;;;;;;;;;:22;;;2642:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5039:1:::1;5095:2;:13;;;;:::i;:::-;5082:10;:26;;;;:::i;:::-;11924:11;:21;;;;5039:1;5095:2;:13;;;;:::i;:::-;5082:10;:26;;;;:::i;:::-;11960:17;:25;;;;12005:27;5039:1;5095:2;:13;;;;:::i;:::-;5082:10;:26;;;;:::i;:::-;12005:27;;;;;;:::i;:::-;;;;;;;;11861:183::o:0;7111:103::-;7164:7;5039:1;5095:2;:13;;;;:::i;:::-;5082:10;:26;;;;:::i;:::-;7188:14;;7111:103;:::o;12412:400::-;2660:12;:10;:12::i;:::-;2650:22;;:6;;;;;;;;;;:22;;;2642:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12479:11:::1;;;;;;;;;;;12478:12;12470:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12532:58;12549:4;12564:15;;;;;;;;;;;5039:1;5095:2;:13;;;;:::i;:::-;5082:10;:26;;;;:::i;:::-;12532:8;:58::i;:::-;12605:15;;;;;;;;;;;:31;;;12644:21;12675:4;12681:24;12699:4;12681:9;:24::i;:::-;12706:1;12708::::0;12710:7:::1;:5;:7::i;:::-;12718:15;12605:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12763:4;12749:11;;:18;;;;;;;;;;;;;;;;;;12796:4;12782:11;;:18;;;;;;;;;;;;;;;;;;12412:400::o:0;8091:329::-;8189:4;8210:36;8220:6;8228:9;8239:6;8210:9;:36::i;:::-;8261:121;8270:6;8278:12;:10;:12::i;:::-;8292:89;8330:6;8292:89;;;;;;;;;;;;;;;;;:11;:19;8304:6;8292:19;;;;;;;;;;;;;;;:33;8312:12;:10;:12::i;:::-;8292:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8261:8;:121::i;:::-;8404:4;8397:11;;8091:329;;;;;:::o;6816:91::-;6857:5;5039:1;6879:16;;6816:91;:::o;13537:223::-;13617:18;;;;;;;;;;;13603:32;;:12;:10;:12::i;:::-;:32;;;13595:41;;;;;;13651:26;13680:21;13651:50;;13716:32;13729:18;13716:12;:32::i;:::-;13580:180;13537:223::o;12825:240::-;12899:4;2660:12;:10;:12::i;:::-;2650:22;;:6;;;;;;;;;;:22;;;2642:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12931:6:::1;12920:8;:17;;;;12964:6;12952:9;:18;;;;13003:1;12993:6;:11;;12985:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;13049:4;13042:11;;12825:240:::0;;;:::o;5382:53::-;;;;:::o;7227:127::-;7293:7;7324:9;:18;7334:7;7324:18;;;;;;;;;;;;;;;;7317:25;;7227:127;;;:::o;2738:148::-;2660:12;:10;:12::i;:::-;2650:22;;:6;;;;;;;;;;:22;;;2642:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2845:1:::1;2808:40;;2829:6;::::0;::::1;;;;;;;;2808:40;;;;;;;;;;;;2876:1;2859:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2738:148::o:0;5210:54::-;;;;:::o;12191:205::-;12294:18;;;;;;;;;;;12278:34;;:12;:10;:12::i;:::-;:34;;;12270:43;;;;;;12335:10;12328:27;;;12356:18;;;;;;;;;;;12376:7;12328:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12191:205;;:::o;5293:60::-;;;;:::o;2522:79::-;2560:7;2587:6;;;;;;;;;;;2580:13;;2522:79;:::o;6708:95::-;6747:13;6784:7;;;;;;;;;;;;;;;;;6777:14;;6708:95;:::o;6919:179::-;6997:4;7018:42;7028:12;:10;:12::i;:::-;7042:9;7053:6;7018:9;:42::i;:::-;7082:4;7075:11;;6919:179;;;;:::o;11672:176::-;11743:18;;;;;;;;;;;11727:34;;:12;:10;:12::i;:::-;:34;;;11719:43;;;;;;11785:18;;;;;;;;;;;11777:36;;:59;11814:21;11777:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11672:176::o;13120:404::-;13200:18;;;;;;;;;;;13186:32;;:12;:10;:12::i;:::-;:32;;;13178:41;;;;;;13234:20;13255:24;13273:4;13255:9;:24::i;:::-;13234:45;;13310:1;13297:12;:14;13294:79;;;13327:30;13344:12;13327:16;:30::i;:::-;13294:79;13387:18;13406:21;13387:40;;13456:1;13445:10;:12;13442:71;;;13473:24;13486:10;13473:12;:24::i;:::-;13442:71;13163:361;;13120:404::o;13773:329::-;2660:12;:10;:12::i;:::-;2650:22;;:6;;;;;;;;;;:22;;;2642:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13888:1:::1;13870:15;:19;13862:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13957:15;13941:13;:31;;;;14036:12;:10;:12::i;:::-;14016:50;;;14050:15;14016:50;;;;;;:::i;:::-;;;;;;;;13773:329:::0;:::o;7374:151::-;7455:7;7486:11;:18;7498:5;7486:18;;;;;;;;;;;;;;;:27;7505:7;7486:27;;;;;;;;;;;;;;;;7479:34;;7374:151;;;;:::o;262:98::-;315:7;342:10;335:17;;262:98;:::o;7723:355::-;7837:1;7820:19;;:5;:19;;;7812:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7922:1;7903:21;;:7;:21;;;7895:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8008:6;7978:11;:18;7990:5;7978:18;;;;;;;;;;;;;;;:27;7997:7;7978:27;;;;;;;;;;;;;;;:36;;;;8050:7;8034:32;;8043:5;8034:32;;;8059:6;8034:32;;;;;;:::i;:::-;;;;;;;;7723:355;;;:::o;8436:2563::-;8544:1;8528:18;;:4;:18;;;8520:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8625:1;8611:16;;:2;:16;;;8603:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8699:1;8690:6;:10;8682:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8761:17;8807:7;:5;:7::i;:::-;8799:15;;:4;:15;;;;:32;;;;;8824:7;:5;:7::i;:::-;8818:13;;:2;:13;;;;8799:32;8795:1819;;;8870:1;8858:10;;:13;8855:148;;8907:76;8979:3;8907:67;8930:17;;8919:10;;:28;8918:55;;8958:15;;8918:55;;;8949:8;;8918:55;8907:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8895:88;;8855:148;9035:1;9024:10;;:12;9021:104;;;9072:33;9101:3;9072:24;9083:12;;9072:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;9060:45;;9021:104;9158:13;;;;;;;;;;;9150:21;;:4;:21;;;:55;;;;;9189:15;;;;;;;;;;;9175:30;;:2;:30;;;;9150:55;:77;;;;;9211:12;:16;9224:2;9211:16;;;;;;;;;;;;;;;;;;;;;;;;;9209:18;9150:77;9146:436;;;9271:11;;9261:6;:21;;9253:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9368:17;;9358:6;9342:13;9352:2;9342:9;:13::i;:::-;:22;;;;:::i;:::-;:43;;9334:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;9451:76;9523:3;9451:67;9474:17;;9463:10;;:28;9462:55;;9502:15;;9462:55;;;9493:8;;9462:55;9451:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9439:88;;9550:10;;:12;;;;;;;;;:::i;:::-;;;;;;9146:436;9612:13;;;;;;;;;;;9606:19;;:2;:19;;;:43;;;;;9644:4;9629:20;;:4;:20;;;;9606:43;9603:181;;;9686:78;9760:3;9686:69;9709:17;;9698:10;;:28;9697:57;;9738:16;;9697:57;;;9728:9;;9697:57;9686:6;:10;;:69;;;;:::i;:::-;:73;;:78;;;;:::i;:::-;9674:90;;9603:181;9805:28;9836:24;9854:4;9836:9;:24::i;:::-;9805:55;;9884:6;;;;;;;;;;;9883:7;:30;;;;;9900:13;;;;;;;;;;;9894:19;;:2;:19;;;9883:30;:45;;;;;9917:11;;;;;;;;;;;9883:45;:85;;;;;9955:13;;9932:20;:36;9883:85;:113;;;;;9985:11;;9972:10;;:24;9883:113;9879:720;;;10040:14;;10025:12;:29;10021:99;;;10095:1;10083:9;:13;;;;10021:99;10162:1;10150:9;;:13;10142:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10214:70;10231:52;10235:6;10243:39;10247:20;10269:12;;10243:3;:39::i;:::-;10231:3;:52::i;:::-;10214:16;:70::i;:::-;10307:26;10336:21;10307:50;;10405:1;10384:18;:22;10380:114;;;10435:35;10448:21;10435:12;:35::i;:::-;10380:114;10516:9;;:11;;;;;;;;;:::i;:::-;;;;;;10567:12;10550:14;:29;;;;9998:601;9879:720;8833:1781;8795:1819;10644:1;10634:9;:11;10631:169;;;10686:39;10715:9;10686;:24;10704:4;10686:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10661:9;:24;10679:4;10661:24;;;;;;;;;;;;;;;:64;;;;10768:4;10745:39;;10754:4;10745:39;;;10774:9;10745:39;;;;;;:::i;:::-;;;;;;;;10631:169;10830:27;10850:6;10830:9;:15;10840:4;10830:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10814:9;:15;10824:4;10814:15;;;;;;;;;;;;;;;:43;;;;10886:40;10904:21;10915:9;10904:6;:10;;:21;;;;:::i;:::-;10886:9;:13;10896:2;10886:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10872:9;:13;10882:2;10872:13;;;;;;;;;;;;;;;:54;;;;10961:2;10946:41;;10955:4;10946:41;;;10965:21;10976:9;10965:6;:10;;:21;;;;:::i;:::-;10946:41;;;;;;:::i;:::-;;;;;;;;8505:2494;8436:2563;;;:::o;1403:190::-;1489:7;1522:1;1517;:6;;1525:12;1509:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1549:9;1565:1;1561;:5;;;;:::i;:::-;1549:17;;1584:1;1577:8;;;1403:190;;;;;:::o;12057:108::-;12118:18;;;;;;;;;;;:27;;:35;12146:6;12118:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12057:108;:::o;11129:531::-;5872:4;5863:6;;:13;;;;;;;;;;;;;;;;;;11211:21:::1;11249:1;11235:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11211:40;;11284:4;11266;11271:1;11266:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11314:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11304:4;11309:1;11304:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11351:62;11368:4;11383:15;;;;;;;;;;;11401:11;11351:8;:62::i;:::-;11428:15;;;;;;;;;;;:66;;;11513:11;11543:1;11563:4;11594;11618:15;11428:220;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11196:464;5916:5:::0;5907:6;;:14;;;;;;;;;;;;;;;;;;11129:531;:::o;1602:246::-;1660:7;1689:1;1684;:6;1680:47;;1714:1;1707:8;;;;1680:47;1737:9;1753:1;1749;:5;;;;:::i;:::-;1737:17;;1782:1;1777;1773;:5;;;;:::i;:::-;:10;1765:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1839:1;1832:8;;;1602:246;;;;;:::o;1857:132::-;1915:7;1942:39;1946:1;1949;1942:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1935:46;;1857:132;;;;:::o;11012:104::-;11069:7;11098:1;11096;:3;11095:9;;11103:1;11095:9;;;11101:1;11095:9;11088:16;;11012:104;;;;:::o;1070:179::-;1128:7;1148:9;1164:1;1160;:5;;;;:::i;:::-;1148:17;;1189:1;1184;:6;;1176:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1240:1;1233:8;;;1070:179;;;;:::o;1258:136::-;1316:7;1343:43;1347:1;1350;1343:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1336:50;;1258:136;;;;:::o;1998:189::-;2084:7;2116:1;2112;:5;2119:12;2104:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2143:9;2159:1;2155;:5;;;;:::i;:::-;2143:17;;2178:1;2171:8;;;1998: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:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:::-;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:85::-;11184:7;11213:5;11202:16;;11139:85;;;:::o;11230:60::-;11258:3;11279:5;11272:12;;11230:60;;;:::o;11296:158::-;11354:9;11387:61;11405:42;11414:32;11440:5;11414:32;:::i;:::-;11405:42;:::i;:::-;11387:61;:::i;:::-;11374:74;;11296:158;;;:::o;11460:147::-;11555:45;11594:5;11555:45;:::i;:::-;11550:3;11543:58;11460:147;;:::o;11613:807::-;11862:4;11900:3;11889:9;11885:19;11877:27;;11914:71;11982:1;11971:9;11967:17;11958:6;11914:71;:::i;:::-;11995:72;12063:2;12052:9;12048:18;12039:6;11995:72;:::i;:::-;12077:80;12153:2;12142:9;12138:18;12129:6;12077:80;:::i;:::-;12167;12243:2;12232:9;12228:18;12219:6;12167:80;:::i;:::-;12257:73;12325:3;12314:9;12310:19;12301:6;12257:73;:::i;:::-;12340;12408:3;12397:9;12393:19;12384:6;12340:73;:::i;:::-;11613:807;;;;;;;;;:::o;12426:143::-;12483:5;12514:6;12508:13;12499:22;;12530:33;12557:5;12530:33;:::i;:::-;12426:143;;;;:::o;12575:663::-;12663:6;12671;12679;12728:2;12716:9;12707:7;12703:23;12699:32;12696:119;;;12734:79;;:::i;:::-;12696:119;12854:1;12879:64;12935:7;12926:6;12915:9;12911:22;12879:64;:::i;:::-;12869:74;;12825:128;12992:2;13018:64;13074:7;13065:6;13054:9;13050:22;13018:64;:::i;:::-;13008:74;;12963:129;13131:2;13157:64;13213:7;13204:6;13193:9;13189:22;13157:64;:::i;:::-;13147:74;;13102:129;12575:663;;;;;:::o;13244:169::-;13384:21;13380:1;13372:6;13368:14;13361:45;13244:169;:::o;13419:366::-;13561:3;13582:67;13646:2;13641:3;13582:67;:::i;:::-;13575:74;;13658:93;13747:3;13658:93;:::i;:::-;13776:2;13771:3;13767:12;13760:19;;13419:366;;;:::o;13791:419::-;13957:4;13995:2;13984:9;13980:18;13972:26;;14044:9;14038:4;14034:20;14030:1;14019:9;14015:17;14008:47;14072:131;14198:4;14072:131;:::i;:::-;14064:139;;13791:419;;;:::o;14216:142::-;14266:9;14299:53;14317:34;14326:24;14344:5;14326:24;:::i;:::-;14317:34;:::i;:::-;14299:53;:::i;:::-;14286:66;;14216:142;;;:::o;14364:126::-;14414:9;14447:37;14478:5;14447:37;:::i;:::-;14434:50;;14364:126;;;:::o;14496:134::-;14554:9;14587:37;14618:5;14587:37;:::i;:::-;14574:50;;14496:134;;;:::o;14636:147::-;14731:45;14770:5;14731:45;:::i;:::-;14726:3;14719:58;14636:147;;:::o;14789:348::-;14918:4;14956:2;14945:9;14941:18;14933:26;;14969:79;15045:1;15034:9;15030:17;15021:6;14969:79;:::i;:::-;15058:72;15126:2;15115:9;15111:18;15102:6;15058:72;:::i;:::-;14789:348;;;;;:::o;15143:116::-;15213:21;15228:5;15213:21;:::i;:::-;15206:5;15203:32;15193:60;;15249:1;15246;15239:12;15193:60;15143:116;:::o;15265:137::-;15319:5;15350:6;15344:13;15335:22;;15366:30;15390:5;15366:30;:::i;:::-;15265:137;;;;:::o;15408:345::-;15475:6;15524:2;15512:9;15503:7;15499:23;15495:32;15492:119;;;15530:79;;:::i;:::-;15492:119;15650:1;15675:61;15728:7;15719:6;15708:9;15704:22;15675:61;:::i;:::-;15665:71;;15621:125;15408:345;;;;:::o;15759:223::-;15899:34;15895:1;15887:6;15883:14;15876:58;15968:6;15963:2;15955:6;15951:15;15944:31;15759:223;:::o;15988:366::-;16130:3;16151:67;16215:2;16210:3;16151:67;:::i;:::-;16144:74;;16227:93;16316:3;16227:93;:::i;:::-;16345:2;16340:3;16336:12;16329:19;;15988:366;;;:::o;16360:419::-;16526:4;16564:2;16553:9;16549:18;16541:26;;16613:9;16607:4;16603:20;16599:1;16588:9;16584:17;16577:47;16641:131;16767:4;16641:131;:::i;:::-;16633:139;;16360:419;;;:::o;16785:223::-;16925:34;16921:1;16913:6;16909:14;16902:58;16994:6;16989:2;16981:6;16977:15;16970:31;16785:223;:::o;17014:366::-;17156:3;17177:67;17241:2;17236:3;17177:67;:::i;:::-;17170:74;;17253:93;17342:3;17253:93;:::i;:::-;17371:2;17366:3;17362:12;17355:19;;17014:366;;;:::o;17386:419::-;17552:4;17590:2;17579:9;17575:18;17567:26;;17639:9;17633:4;17629:20;17625:1;17614:9;17610:17;17603:47;17667:131;17793:4;17667:131;:::i;:::-;17659:139;;17386:419;;;:::o;17811:221::-;17951:34;17947:1;17939:6;17935:14;17928:58;18020:4;18015:2;18007:6;18003:15;17996:29;17811:221;:::o;18038:366::-;18180:3;18201:67;18265:2;18260:3;18201:67;:::i;:::-;18194:74;;18277:93;18366:3;18277:93;:::i;:::-;18395:2;18390:3;18386:12;18379:19;;18038:366;;;:::o;18410:419::-;18576:4;18614:2;18603:9;18599:18;18591:26;;18663:9;18657:4;18653:20;18649:1;18638:9;18634:17;18627:47;18691:131;18817:4;18691:131;:::i;:::-;18683:139;;18410:419;;;:::o;18835:224::-;18975:34;18971:1;18963:6;18959:14;18952:58;19044:7;19039:2;19031:6;19027:15;19020:32;18835:224;:::o;19065:366::-;19207:3;19228:67;19292:2;19287:3;19228:67;:::i;:::-;19221:74;;19304:93;19393:3;19304:93;:::i;:::-;19422:2;19417:3;19413:12;19406:19;;19065:366;;;:::o;19437:419::-;19603:4;19641:2;19630:9;19626:18;19618:26;;19690:9;19684:4;19680:20;19676:1;19665:9;19661:17;19654:47;19718:131;19844:4;19718:131;:::i;:::-;19710:139;;19437:419;;;:::o;19862:222::-;20002:34;19998:1;19990:6;19986:14;19979:58;20071:5;20066:2;20058:6;20054:15;20047:30;19862:222;:::o;20090:366::-;20232:3;20253:67;20317:2;20312:3;20253:67;:::i;:::-;20246:74;;20329:93;20418:3;20329:93;:::i;:::-;20447:2;20442:3;20438:12;20431:19;;20090:366;;;:::o;20462:419::-;20628:4;20666:2;20655:9;20651:18;20643:26;;20715:9;20709:4;20705:20;20701:1;20690:9;20686:17;20679:47;20743:131;20869:4;20743:131;:::i;:::-;20735:139;;20462:419;;;:::o;20887:228::-;21027:34;21023:1;21015:6;21011:14;21004:58;21096:11;21091:2;21083:6;21079:15;21072:36;20887:228;:::o;21121:366::-;21263:3;21284:67;21348:2;21343:3;21284:67;:::i;:::-;21277:74;;21360:93;21449:3;21360:93;:::i;:::-;21478:2;21473:3;21469:12;21462:19;;21121:366;;;:::o;21493:419::-;21659:4;21697:2;21686:9;21682:18;21674:26;;21746:9;21740:4;21736:20;21732:1;21721:9;21717:17;21710:47;21774:131;21900:4;21774:131;:::i;:::-;21766:139;;21493:419;;;:::o;21918:174::-;22058:26;22054:1;22046:6;22042:14;22035:50;21918:174;:::o;22098:366::-;22240:3;22261:67;22325:2;22320:3;22261:67;:::i;:::-;22254:74;;22337:93;22426:3;22337:93;:::i;:::-;22455:2;22450:3;22446:12;22439:19;;22098:366;;;:::o;22470:419::-;22636:4;22674:2;22663:9;22659:18;22651:26;;22723:9;22717:4;22713:20;22709:1;22698:9;22694:17;22687:47;22751:131;22877:4;22751:131;:::i;:::-;22743:139;;22470:419;;;:::o;22895:191::-;22935:3;22954:20;22972:1;22954:20;:::i;:::-;22949:25;;22988:20;23006:1;22988:20;:::i;:::-;22983:25;;23031:1;23028;23024:9;23017:16;;23052:3;23049:1;23046:10;23043:36;;;23059:18;;:::i;:::-;23043:36;22895:191;;;;:::o;23092:176::-;23232:28;23228:1;23220:6;23216:14;23209:52;23092:176;:::o;23274:366::-;23416:3;23437:67;23501:2;23496:3;23437:67;:::i;:::-;23430:74;;23513:93;23602:3;23513:93;:::i;:::-;23631:2;23626:3;23622:12;23615:19;;23274:366;;;:::o;23646:419::-;23812:4;23850:2;23839:9;23835:18;23827:26;;23899:9;23893:4;23889:20;23885:1;23874:9;23870:17;23863:47;23927:131;24053:4;23927:131;:::i;:::-;23919:139;;23646:419;;;:::o;24071:233::-;24110:3;24133:24;24151:5;24133:24;:::i;:::-;24124:33;;24179:66;24172:5;24169:77;24166:103;;24249:18;;:::i;:::-;24166:103;24296:1;24289:5;24285:13;24278:20;;24071:233;;;:::o;24310:173::-;24450:25;24446:1;24438:6;24434:14;24427:49;24310:173;:::o;24489:366::-;24631:3;24652:67;24716:2;24711:3;24652:67;:::i;:::-;24645:74;;24728:93;24817:3;24728:93;:::i;:::-;24846:2;24841:3;24837:12;24830:19;;24489:366;;;:::o;24861:419::-;25027:4;25065:2;25054:9;25050:18;25042:26;;25114:9;25108:4;25104:20;25100:1;25089:9;25085:17;25078:47;25142:131;25268:4;25142:131;:::i;:::-;25134:139;;24861:419;;;:::o;25286:194::-;25326:4;25346:20;25364:1;25346:20;:::i;:::-;25341:25;;25380:20;25398:1;25380:20;:::i;:::-;25375:25;;25424:1;25421;25417:9;25409:17;;25448:1;25442:4;25439:11;25436:37;;;25453:18;;:::i;:::-;25436:37;25286:194;;;;:::o;25486:180::-;25534:77;25531:1;25524:88;25631:4;25628:1;25621:15;25655:4;25652:1;25645:15;25672:180;25720:77;25717:1;25710:88;25817:4;25814:1;25807:15;25841:4;25838:1;25831:15;25858:143;25915:5;25946:6;25940:13;25931:22;;25962:33;25989:5;25962:33;:::i;:::-;25858:143;;;;:::o;26007:351::-;26077:6;26126:2;26114:9;26105:7;26101:23;26097:32;26094:119;;;26132:79;;:::i;:::-;26094:119;26252:1;26277:64;26333:7;26324:6;26313:9;26309:22;26277:64;:::i;:::-;26267:74;;26223:128;26007:351;;;;:::o;26364:114::-;26431:6;26465:5;26459:12;26449:22;;26364:114;;;:::o;26484:184::-;26583:11;26617:6;26612:3;26605:19;26657:4;26652:3;26648:14;26633:29;;26484:184;;;;:::o;26674:132::-;26741:4;26764:3;26756:11;;26794:4;26789:3;26785:14;26777:22;;26674:132;;;:::o;26812:108::-;26889:24;26907:5;26889:24;:::i;:::-;26884:3;26877:37;26812:108;;:::o;26926:179::-;26995:10;27016:46;27058:3;27050:6;27016:46;:::i;:::-;27094:4;27089:3;27085:14;27071:28;;26926:179;;;;:::o;27111:113::-;27181:4;27213;27208:3;27204:14;27196:22;;27111:113;;;:::o;27260:732::-;27379:3;27408:54;27456:5;27408:54;:::i;:::-;27478:86;27557:6;27552:3;27478:86;:::i;:::-;27471:93;;27588:56;27638:5;27588:56;:::i;:::-;27667:7;27698:1;27683:284;27708:6;27705:1;27702:13;27683:284;;;27784:6;27778:13;27811:63;27870:3;27855:13;27811:63;:::i;:::-;27804:70;;27897:60;27950:6;27897:60;:::i;:::-;27887:70;;27743:224;27730:1;27727;27723:9;27718:14;;27683:284;;;27687:14;27983:3;27976:10;;27384:608;;;27260:732;;;;:::o;27998:831::-;28261:4;28299:3;28288:9;28284:19;28276:27;;28313:71;28381:1;28370:9;28366:17;28357:6;28313:71;:::i;:::-;28394:80;28470:2;28459:9;28455:18;28446:6;28394:80;:::i;:::-;28521:9;28515:4;28511:20;28506:2;28495:9;28491:18;28484:48;28549:108;28652:4;28643:6;28549:108;:::i;:::-;28541:116;;28667:72;28735:2;28724:9;28720:18;28711:6;28667:72;:::i;:::-;28749:73;28817:3;28806:9;28802:19;28793:6;28749:73;:::i;:::-;27998:831;;;;;;;;:::o;28835:180::-;28883:77;28880:1;28873:88;28980:4;28977:1;28970:15;29004:4;29001:1;28994:15;29021:185;29061:1;29078:20;29096:1;29078:20;:::i;:::-;29073:25;;29112:20;29130:1;29112:20;:::i;:::-;29107:25;;29151:1;29141:35;;29156:18;;:::i;:::-;29141:35;29198:1;29195;29191:9;29186:14;;29021:185;;;;:::o;29212:220::-;29352:34;29348:1;29340:6;29336:14;29329:58;29421:3;29416:2;29408:6;29404:15;29397:28;29212:220;:::o;29438:366::-;29580:3;29601:67;29665:2;29660:3;29601:67;:::i;:::-;29594:74;;29677:93;29766:3;29677:93;:::i;:::-;29795:2;29790:3;29786:12;29779:19;;29438:366;;;:::o;29810:419::-;29976:4;30014:2;30003:9;29999:18;29991:26;;30063:9;30057:4;30053:20;30049:1;30038:9;30034:17;30027:47;30091:131;30217:4;30091:131;:::i;:::-;30083:139;;29810:419;;;:::o;30235:177::-;30375:29;30371:1;30363:6;30359:14;30352:53;30235:177;:::o;30418:366::-;30560:3;30581:67;30645:2;30640:3;30581:67;:::i;:::-;30574:74;;30657:93;30746:3;30657:93;:::i;:::-;30775:2;30770:3;30766:12;30759:19;;30418:366;;;:::o;30790:419::-;30956:4;30994:2;30983:9;30979:18;30971:26;;31043:9;31037:4;31033:20;31029:1;31018:9;31014:17;31007:47;31071:131;31197:4;31071:131;:::i;:::-;31063:139;;30790:419;;;:::o

Swarm Source

ipfs://03aa490c47d5fa20fdaf9520347986aa09da5f0ed4811fa84cb635bddef91003

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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