ETH Price: $2,446.85 (+1.85%)

Contract

0xA952c49671C60644F670bb0e83ffF38450F08389
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer207847612024-09-19 12:52:4717 days ago1726750367IN
0xA952c496...450F08389
0 ETH0.0013348517.4872754
Transfer198364942024-05-10 1:54:47149 days ago1715306087IN
0xA952c496...450F08389
0 ETH0.000300383.93518003
Approve185462212023-11-11 4:11:11330 days ago1699675871IN
0xA952c496...450F08389
0 ETH0.0007649730.94442365
Approve185066362023-11-05 15:16:23336 days ago1699197383IN
0xA952c496...450F08389
0 ETH0.0011917825.35440224
Approve181820932023-09-21 5:11:59381 days ago1695273119IN
0xA952c496...450F08389
0 ETH0.000370837.88934083
Approve180730052023-09-05 21:38:59396 days ago1693949939IN
0xA952c496...450F08389
0 ETH0.0015890133.76216242
Approve180715722023-09-05 16:49:23397 days ago1693932563IN
0xA952c496...450F08389
0 ETH0.0011562524.59848958
Approve180655702023-09-04 20:41:35397 days ago1693860095IN
0xA952c496...450F08389
0 ETH0.0010413822.30281908
Approve180641612023-09-04 15:58:47398 days ago1693843127IN
0xA952c496...450F08389
0 ETH0.0014623431.31820074
Approve180602642023-09-04 2:54:47398 days ago1693796087IN
0xA952c496...450F08389
0 ETH0.0004736310.07617168
Approve180600882023-09-04 2:18:47398 days ago1693793927IN
0xA952c496...450F08389
0 ETH0.0006399413.5970568
Approve180600662023-09-04 2:14:23398 days ago1693793663IN
0xA952c496...450F08389
0 ETH0.0005040910.79599006
Approve180588792023-09-03 22:15:47398 days ago1693779347IN
0xA952c496...450F08389
0 ETH0.0006687314.20868716
Approve180587912023-09-03 21:57:59398 days ago1693778279IN
0xA952c496...450F08389
0 ETH0.000450829.59104464
Approve180587722023-09-03 21:53:59398 days ago1693778039IN
0xA952c496...450F08389
0 ETH0.000500610.65000073
Approve180583972023-09-03 20:37:59398 days ago1693773479IN
0xA952c496...450F08389
0 ETH0.0004017313.57548425
Approve180583442023-09-03 20:27:23398 days ago1693772843IN
0xA952c496...450F08389
0 ETH0.0007141615.19330794
Approve180582682023-09-03 20:11:59398 days ago1693771919IN
0xA952c496...450F08389
0 ETH0.0006664814.2553631
Approve180582072023-09-03 19:59:47398 days ago1693771187IN
0xA952c496...450F08389
0 ETH0.0007347215.63070935
Approve180581982023-09-03 19:57:59398 days ago1693771079IN
0xA952c496...450F08389
0 ETH0.0004992916.87198276
Approve180581932023-09-03 19:56:59398 days ago1693771019IN
0xA952c496...450F08389
0 ETH0.0008146217.30851065
Approve180581932023-09-03 19:56:59398 days ago1693771019IN
0xA952c496...450F08389
0 ETH0.0009120319.3781865
Approve180581932023-09-03 19:56:59398 days ago1693771019IN
0xA952c496...450F08389
0 ETH0.0009120319.3781865
Approve180581932023-09-03 19:56:59398 days ago1693771019IN
0xA952c496...450F08389
0 ETH0.0009120319.3781865
Approve180581782023-09-03 19:53:59398 days ago1693770839IN
0xA952c496...450F08389
0 ETH0.0008318217.69644097
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
181455592023-09-16 1:49:23386 days ago1694828963
0xA952c496...450F08389
0.00057505 ETH
181455592023-09-16 1:49:23386 days ago1694828963
0xA952c496...450F08389
0.00057505 ETH
180730342023-09-05 21:44:47396 days ago1693950287
0xA952c496...450F08389
0.00106325 ETH
180730342023-09-05 21:44:47396 days ago1693950287
0xA952c496...450F08389
0.00106325 ETH
180715782023-09-05 16:50:35397 days ago1693932635
0xA952c496...450F08389
0.00036426 ETH
180715782023-09-05 16:50:35397 days ago1693932635
0xA952c496...450F08389
0.00036426 ETH
180646782023-09-04 17:42:35398 days ago1693849355
0xA952c496...450F08389
0.00099828 ETH
180646782023-09-04 17:42:35398 days ago1693849355
0xA952c496...450F08389
0.00099828 ETH
180641622023-09-04 15:58:59398 days ago1693843139
0xA952c496...450F08389
0.00084652 ETH
180641622023-09-04 15:58:59398 days ago1693843139
0xA952c496...450F08389
0.00084652 ETH
180637082023-09-04 14:27:35398 days ago1693837655
0xA952c496...450F08389
0.00031346 ETH
180637082023-09-04 14:27:35398 days ago1693837655
0xA952c496...450F08389
0.00031346 ETH
180633652023-09-04 13:18:23398 days ago1693833503
0xA952c496...450F08389
0.0002869 ETH
180633652023-09-04 13:18:23398 days ago1693833503
0xA952c496...450F08389
0.0002869 ETH
180601752023-09-04 2:36:47398 days ago1693795007
0xA952c496...450F08389
0.00061684 ETH
180601752023-09-04 2:36:47398 days ago1693795007
0xA952c496...450F08389
0.00061684 ETH
180600892023-09-04 2:18:59398 days ago1693793939
0xA952c496...450F08389
0.00074853 ETH
180600892023-09-04 2:18:59398 days ago1693793939
0xA952c496...450F08389
0.00074853 ETH
180600682023-09-04 2:14:47398 days ago1693793687
0xA952c496...450F08389
0.00047017 ETH
180600682023-09-04 2:14:47398 days ago1693793687
0xA952c496...450F08389
0.00047017 ETH
180594112023-09-04 0:02:35398 days ago1693785755
0xA952c496...450F08389
0.0005255 ETH
180594112023-09-04 0:02:35398 days ago1693785755
0xA952c496...450F08389
0.0005255 ETH
180594052023-09-04 0:01:23398 days ago1693785683
0xA952c496...450F08389
0.0019613 ETH
180594052023-09-04 0:01:23398 days ago1693785683
0xA952c496...450F08389
0.0019613 ETH
180588642023-09-03 22:12:47398 days ago1693779167
0xA952c496...450F08389
0.00039448 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
sog

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**
░██████╗░█████╗░░██████╗░
██╔════╝██╔══██╗██╔════╝░
╚█████╗░██║░░██║██║░░██╗░
░╚═══██╗██║░░██║██║░░╚██╗
██████╔╝╚█████╔╝╚██████╔╝
╚═════╝░░╚════╝░░╚═════╝░

The real OG of OGs.

$SOG - Sog Coin - Sonic OG Coin

X: x.com/sogcoinerc20
Website: sogcoin.yachts
Telegram: https://t.me/sogcoinerc
**/

pragma solidity 0.8.19;

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

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 WETH() external pure returns (address);
    function factory() external pure returns (address);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

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

contract sog is IERC20, Auth {
    uint8 private constant _decimals       = 9;
    uint256 private constant _totalSupply  = 1_000_000 * (10**_decimals);
    string private constant _name          = "Sog Coin";
    string private  constant _symbol       = "SOG";
    uint256 private _maxTxAmount = _totalSupply; 
    uint256 private _maxWalletAmount = _totalSupply;
    uint8 private reduceBuyTBlocks = 1;
    uint8 private reduceSellTBlocks = 1;
    uint256 private _taxSwapMin = _totalSupply * 100 / 1000000;
    uint256 private _taxSwapMax = _totalSupply * 9200 / 1000000;
    uint256 private _preventSwapBefore = 2;
    uint8 private initialBuyT = 10;
    uint8 private initialSellT = 5;
    uint8 private _finalBuyT  = 2;
    uint8 private _finalSellT = 2;
    uint256 private _buyCount;
    uint256 private _taxSwapThreshold = _taxSwapMin * 540 * 10;
    address payable private _walletMarketing = payable(0xcC1919816A956AB4a244d880312C72f6c9E1D20A); 
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFees;
    mapping (address => bool) private _noLimits;

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

    bool private _tradingOpen;

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

    event TokensBurned(address indexed burnedByWallet, uint256 tokenAmount);

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

        uint256 tokenReserve   = _totalSupply * 1 / 100;
        
        _balances[address(this)] = _totalSupply - tokenReserve;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _balances[_owner] = tokenReserve;
        emit Transfer(address(0), _owner, _balances[_owner]);

        _noFees[_owner] = true;
        _noFees[address(this)] = true;
        _noFees[_swapRouterAddress] = true;
        _noFees[_walletMarketing] = true;
        _noLimits[_owner] = true;
        _noLimits[address(this)] = true;
        _noLimits[_swapRouterAddress] = true;
        _noLimits[_walletMarketing] = true;
    }

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

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

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

    function transferFrom(address sndr, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(sndr), "Trading not open");
        if(_allowances[sndr][msg.sender] != type(uint256).max){
            _allowances[sndr][msg.sender] = _allowances[sndr][msg.sender] - amount;
        }
        return _transferFrom(sndr, recipient, amount);
    }

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

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

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
        address lprecipient = lpowner;
        if ( autoburn ) { lprecipient = address(0); }
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lprecipient, block.timestamp );
    }

    function _openTrading() internal {
        _maxTxAmount     = _totalSupply * 2 / 100; 
        _maxWalletAmount = _totalSupply * 2 / 100;
        _tradingOpen = true;
        _buyCount = block.number;
        _preventSwapBefore = _preventSwapBefore + _buyCount + reduceBuyTBlocks + reduceSellTBlocks;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");
        if (!_tradingOpen) { require(_noFees[sender] && _noLimits[sender], "Trading not open"); }
        if ( !_inTaxSwap && _isLP[recipient] ) { _swapTaxAndLiquify(); }
        if ( block.number < _preventSwapBefore && block.number >= _buyCount && _isLP[sender] ) {
            require(recipient == tx.origin, "MEV blocked");
        }
        if ( sender != address(this) && recipient != address(this) && sender != _owner ) { 
            require(_checkLimits(sender, recipient, amount), "TX exceeds limits"); 
        }
        uint256 _taxAmount = _calculateTax(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] = _balances[sender] - amount;
        _taxSwapThreshold += _taxAmount;
        _balances[recipient] = _balances[recipient] + _transferAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _checkLimits(address sndr, address recipient, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_noLimits[sndr] && !_noLimits[recipient] ) {
            if ( transferAmount > _maxTxAmount ) { limitCheckPassed = false; }
            else if ( !_isLP[recipient] && (_balances[recipient] + transferAmount > _maxWalletAmount) ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _checkTradingOpen(address sndr) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_noFees[sndr] && _noLimits[sndr]) { checkResult = true; } 

        return checkResult;
    }

    function _calculateTax(address sndr, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( !_tradingOpen || _noFees[sndr] || _noFees[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[sndr] ) { 
            if ( block.number >= _buyCount + reduceBuyTBlocks + reduceSellTBlocks ) {
                taxAmount = amount * _finalBuyT / 100; 
            } else if ( block.number >= _buyCount + reduceBuyTBlocks ) {
                taxAmount = amount * initialSellT / 100;
            } else if ( block.number >= _buyCount) {
                taxAmount = amount * initialBuyT / 100;
            }
        } else if ( _isLP[recipient] ) { 
            taxAmount = amount * _finalSellT / 100; 
        }

        return taxAmount;
    }


    function exemptFromFees(address wlt) external view returns (bool) {
        return _noFees[wlt];
    } 
    function exemptFromLimits(address wlt) external view returns (bool) {
        return _noLimits[wlt];
    } 
    function setExempt(address wlt, bool noFees, bool noLimits) external onlyOwner {
        if (noLimits || noFees) { require(!_isLP[wlt], "Cannot exempt LP"); }
        _noFees[ wlt ] = noFees;
        _noLimits[ wlt ] = noLimits;
    }

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

  

    function maxWallet() external view returns (uint256) {        return _maxWalletAmount;    }
    function maxTransaction() external view returns (uint256) {        return _maxTxAmount;    }

    function swapAtMin() external view returns (uint256) { return _taxSwapMin;    }
    function swapAtMax() external view returns (uint256) { return _taxSwapMax;    }

    function setLimits(uint16 maxTrxPermille, uint16 maxWltPermille) external onlyOwner {
        uint256 newTxAmt = _totalSupply * maxTrxPermille / 1000 + 1;
        require(newTxAmt >= _maxTxAmount, "tx too low");
        _maxTxAmount = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWltPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletAmount, "wallet too low");
        _maxWalletAmount = newWalletAmt;
    }

   


    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = _taxSwapThreshold;
        if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
            if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }
            
            uint256 _tokensToSwap = _taxTokensAvailable; 
            if( _tokensToSwap > 10**_decimals ) {
                _balances[address(this)] += _taxTokensAvailable;
                _swapTaxTokensForEth(_tokensToSwap);
                _taxSwapThreshold -= _taxTokensAvailable;
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
        }
    }

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

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

    

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burnedByWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spendr","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":[{"internalType":"address","name":"wlt","type":"address"}],"name":"exemptFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wlt","type":"address"}],"name":"exemptFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wlt","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTrxPermille","type":"uint16"},{"internalType":"uint16","name":"maxWltPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAtMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAtMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"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":"sndr","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":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000aa6565b620f424062000024919062000af7565b6001556009600a62000037919062000aa6565b620f424062000047919062000af7565b6002556001600360006101000a81548160ff021916908360ff1602179055506001600360016101000a81548160ff021916908360ff160217905550620f424060646009600a62000098919062000aa6565b620f4240620000a8919062000af7565b620000b4919062000af7565b620000c0919062000b71565b600455620f42406123f06009600a620000da919062000aa6565b620f4240620000ea919062000af7565b620000f6919062000af7565b62000102919062000b71565b6005556002600655600a600760006101000a81548160ff021916908360ff1602179055506005600760016101000a81548160ff021916908360ff1602179055506002600760026101000a81548160ff021916908360ff1602179055506002600760036101000a81548160ff021916908360ff160217905550600a61021c6004546200018e919062000af7565b6200019a919062000af7565b60095573cc1919816a956ab4a244d880312c72f6c9e1d20a600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360016101000a81548160ff0219169083151502179055503480156200026f57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000606460016009600a62000309919062000aa6565b620f424062000319919062000af7565b62000325919062000af7565b62000331919062000b71565b9050806009600a62000344919062000aa6565b620f424062000354919062000af7565b62000360919062000ba9565b600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000442919062000bf5565b60405180910390a380600b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200058f919062000bf5565b60405180910390a36001600d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062000c12565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200099a578086048111156200097257620009716200090c565b5b6001851615620009825780820291505b808102905062000992856200093b565b945062000952565b94509492505050565b600082620009b5576001905062000a88565b81620009c5576000905062000a88565b8160018114620009de5760028114620009e95762000a1f565b600191505062000a88565b60ff841115620009fe57620009fd6200090c565b5b8360020a91508482111562000a185762000a176200090c565b5b5062000a88565b5060208310610133831016604e8410600b841016171562000a595782820a90508381111562000a535762000a526200090c565b5b62000a88565b62000a68848484600162000948565b9250905081840481111562000a825762000a816200090c565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ab38262000a8f565b915062000ac08362000a99565b925062000aef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009a3565b905092915050565b600062000b048262000a8f565b915062000b118362000a8f565b925082820262000b218162000a8f565b9150828204841483151762000b3b5762000b3a6200090c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b7e8262000a8f565b915062000b8b8362000a8f565b92508262000b9e5762000b9d62000b42565b5b828204905092915050565b600062000bb68262000a8f565b915062000bc38362000a8f565b925082820390508181111562000bde5762000bdd6200090c565b5b92915050565b62000bef8162000a8f565b82525050565b600060208201905062000c0c600083018462000be4565b92915050565b613a768062000c226000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb14610437578063c3f70b5214610474578063dd62ed3e1461049f578063e8078d94146104dc578063f2fde38b146104e6578063f8b45b051461050f57610140565b8063715018a61461036257806375f0a874146103795780638d3e6e40146103a45780638da5cb5b146103e157806395d89b411461040c57610140565b8063368f4800116100fd578063368f48001461024057806346b89834146102695780634d4ce9351461029457806357ff135a146102bf5780635a90a49e146102e857806370a082311461032557610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61053a565b6040516101679190612a70565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612b2b565b610577565b6040516101a49190612b86565b60405180910390f35b3480156101b957600080fd5b506101c2610669565b6040516101cf9190612bb0565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa9190612bcb565b61068c565b60405161020c9190612b86565b60405180910390f35b34801561022157600080fd5b5061022a610896565b6040516102379190612c3a565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612c8f565b61089f565b005b34801561027557600080fd5b5061027e610a5b565b60405161028b9190612bb0565b60405180910390f35b3480156102a057600080fd5b506102a9610a65565b6040516102b69190612bb0565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e19190612cfb565b610a6f565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190612d4e565b610c4c565b60405161031c9190612b86565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190612d4e565b610ca2565b6040516103599190612bb0565b60405180910390f35b34801561036e57600080fd5b50610377610ceb565b005b34801561038557600080fd5b5061038e610df4565b60405161039b9190612d8a565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c69190612d4e565b610e1e565b6040516103d89190612b86565b60405180910390f35b3480156103ed57600080fd5b506103f6610e74565b6040516104039190612d8a565b60405180910390f35b34801561041857600080fd5b50610421610e9d565b60405161042e9190612a70565b60405180910390f35b34801561044357600080fd5b5061045e60048036038101906104599190612b2b565b610eda565b60405161046b9190612b86565b60405180910390f35b34801561048057600080fd5b50610489610f37565b6040516104969190612bb0565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190612da5565b610f41565b6040516104d39190612bb0565b60405180910390f35b6104e4610fc8565b005b3480156104f257600080fd5b5061050d60048036038101906105089190612e23565b6116b5565b005b34801561051b57600080fd5b506105246117bd565b6040516105319190612bb0565b60405180910390f35b60606040518060400160405280600881526020017f536f6720436f696e000000000000000000000000000000000000000000000000815250905090565b600081600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106579190612bb0565b60405180910390a36001905092915050565b60006009600a6106799190612fb2565b620f42406106879190612ffd565b905090565b6000610697846117c7565b6106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd9061308b565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108825781600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461080191906130ab565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61088d8484846118a2565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461092d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109249061312b565b60405180910390fd5b600060016103e88461ffff166009600a6109479190612fb2565b620f42406109559190612ffd565b61095f9190612ffd565b610969919061317a565b61097391906131ab565b90506001548110156109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b19061322b565b60405180910390fd5b80600181905550600060016103e88461ffff166009600a6109db9190612fb2565b620f42406109e99190612ffd565b6109f39190612ffd565b6109fd919061317a565b610a0791906131ab565b9050600254811015610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590613297565b60405180910390fd5b8060028190555050505050565b6000600454905090565b6000600554905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af49061312b565b60405180910390fd5b8080610b065750815b15610b9957601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8f90613303565b60405180910390fd5b5b81600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d709061312b565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610dea9190612d8a565b60405180910390a1565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f534f470000000000000000000000000000000000000000000000000000000000815250905090565b6000610ee5336117c7565b610f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1b9061308b565b60405180910390fd5b610f2f3384846118a2565b905092915050565b6000600154905090565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d9061312b565b60405180910390fd5b6001601360016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f99061336f565b60405180910390fd5b601360009054906101000a900460ff1615611152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611149906133db565b60405180910390fd5b60003411806111615750600047115b6111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119790613447565b60405180910390fd5b6000600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611222576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611219906134b3565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b391906134e8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561133c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136091906134e8565b6040518363ffffffff1660e01b815260040161137d929190613515565b6020604051808303816000875af115801561139c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c091906134e8565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061144b600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476000611e2e565b600954600b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114be91906130ab565b925050819055506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115909190613585565b6000604051808303816000865af19150503d80600081146115cd576040519150601f19603f3d011682016040523d82523d6000602084013e6115d2565b606091505b5050905080611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d906135e8565b60405180910390fd5b8060126000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611697611f1c565b506000601360016101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a9061312b565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516117b29190613667565b60405180910390a150565b6000600254905090565b60008060009050601360009054906101000a900460ff16156117ec5760019050611899565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561188e5750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561189857600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611912576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611909906136ce565b60405180910390fd5b601360009054906101000a900460ff16611a0857600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156119c85750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fe9061308b565b60405180910390fd5b5b601360019054906101000a900460ff16158015611a6e5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611a7c57611a7b612004565b5b60065443108015611a8f57506008544310155b8015611ae45750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b58573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e9061373a565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bc057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c18575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c6857611c28848484612124565b611c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5e906137a6565b60405180910390fd5b5b6000611c758585856122bb565b905060008184611c8591906130ab565b905083600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd291906130ab565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160096000828254611d2791906131ab565b9250508190555080600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7991906131ab565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611e199190612bb0565b60405180910390a36001925050509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508115611e6057600090505b611e698461256b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401611ed096959493929190613801565b60606040518083038185885af1158015611eee573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f139190613877565b50505050505050565b606460026009600a611f2e9190612fb2565b620f4240611f3c9190612ffd565b611f469190612ffd565b611f50919061317a565b600181905550606460026009600a611f689190612fb2565b620f4240611f769190612ffd565b611f809190612ffd565b611f8a919061317a565b6002819055506001601360006101000a81548160ff02191690831515021790555043600881905550600360019054906101000a900460ff1660ff16600360009054906101000a900460ff1660ff16600854600654611fe891906131ab565b611ff291906131ab565b611ffc91906131ab565b600681905550565b6001601360016101000a81548160ff0219169083151502179055506000600954905060045481101580156120445750601360009054906101000a900460ff165b156121065760055481106120585760055490505b60008190506009600a61206b9190612fb2565b8111156120eb5781600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120c191906131ab565b925050819055506120d181612755565b81600960008282546120e391906130ab565b925050819055505b600047905060008111156121035761210281612974565b5b50505b506000601360016101000a81548160ff021916908315150217905550565b60008060019050601360009054906101000a900460ff1680156121915750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121e75750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122b0576001548311156121ff57600090506122af565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122a4575060025483600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122a291906131ab565b115b156122ae57600090505b5b5b809150509392505050565b600080601360009054906101000a900460ff1615806123235750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123775750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123855760009050612560565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124df57600360019054906101000a900460ff1660ff16600360009054906101000a900460ff1660ff1660085461240a91906131ab565b61241491906131ab565b431061244b576064600760029054906101000a900460ff1660ff168461243a9190612ffd565b612444919061317a565b90506124da565b600360009054906101000a900460ff1660ff1660085461246b91906131ab565b43106124a2576064600760019054906101000a900460ff1660ff16846124919190612ffd565b61249b919061317a565b90506124d9565b60085443106124d8576064600760009054906101000a900460ff1660ff16846124cb9190612ffd565b6124d5919061317a565b90505b5b5b61255f565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561255e576064600760039054906101000a900460ff1660ff16846125519190612ffd565b61255b919061317a565b90505b5b5b809150509392505050565b80600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612752577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516127499190612bb0565b60405180910390a35b50565b61275e8161256b565b6000600267ffffffffffffffff81111561277b5761277a6138ca565b5b6040519080825280602002602001820160405280156127a95781602001602082028036833780820191505090505b50905030816000815181106127c1576127c06138f9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288c91906134e8565b816001815181106128a05761289f6138f9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161293e9594939291906139e6565b600060405180830381600087803b15801561295857600080fd5b505af115801561296c573d6000803e3d6000fd5b505050505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156129dc573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a1a5780820151818401526020810190506129ff565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a42826129e0565b612a4c81856129eb565b9350612a5c8185602086016129fc565b612a6581612a26565b840191505092915050565b60006020820190508181036000830152612a8a8184612a37565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ac282612a97565b9050919050565b612ad281612ab7565b8114612add57600080fd5b50565b600081359050612aef81612ac9565b92915050565b6000819050919050565b612b0881612af5565b8114612b1357600080fd5b50565b600081359050612b2581612aff565b92915050565b60008060408385031215612b4257612b41612a92565b5b6000612b5085828601612ae0565b9250506020612b6185828601612b16565b9150509250929050565b60008115159050919050565b612b8081612b6b565b82525050565b6000602082019050612b9b6000830184612b77565b92915050565b612baa81612af5565b82525050565b6000602082019050612bc56000830184612ba1565b92915050565b600080600060608486031215612be457612be3612a92565b5b6000612bf286828701612ae0565b9350506020612c0386828701612ae0565b9250506040612c1486828701612b16565b9150509250925092565b600060ff82169050919050565b612c3481612c1e565b82525050565b6000602082019050612c4f6000830184612c2b565b92915050565b600061ffff82169050919050565b612c6c81612c55565b8114612c7757600080fd5b50565b600081359050612c8981612c63565b92915050565b60008060408385031215612ca657612ca5612a92565b5b6000612cb485828601612c7a565b9250506020612cc585828601612c7a565b9150509250929050565b612cd881612b6b565b8114612ce357600080fd5b50565b600081359050612cf581612ccf565b92915050565b600080600060608486031215612d1457612d13612a92565b5b6000612d2286828701612ae0565b9350506020612d3386828701612ce6565b9250506040612d4486828701612ce6565b9150509250925092565b600060208284031215612d6457612d63612a92565b5b6000612d7284828501612ae0565b91505092915050565b612d8481612ab7565b82525050565b6000602082019050612d9f6000830184612d7b565b92915050565b60008060408385031215612dbc57612dbb612a92565b5b6000612dca85828601612ae0565b9250506020612ddb85828601612ae0565b9150509250929050565b6000612df082612a97565b9050919050565b612e0081612de5565b8114612e0b57600080fd5b50565b600081359050612e1d81612df7565b92915050565b600060208284031215612e3957612e38612a92565b5b6000612e4784828501612e0e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612ed657808604811115612eb257612eb1612e50565b5b6001851615612ec15780820291505b8081029050612ecf85612e7f565b9450612e96565b94509492505050565b600082612eef5760019050612fab565b81612efd5760009050612fab565b8160018114612f135760028114612f1d57612f4c565b6001915050612fab565b60ff841115612f2f57612f2e612e50565b5b8360020a915084821115612f4657612f45612e50565b5b50612fab565b5060208310610133831016604e8410600b8410161715612f815782820a905083811115612f7c57612f7b612e50565b5b612fab565b612f8e8484846001612e8c565b92509050818404811115612fa557612fa4612e50565b5b81810290505b9392505050565b6000612fbd82612af5565b9150612fc883612c1e565b9250612ff57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612edf565b905092915050565b600061300882612af5565b915061301383612af5565b925082820261302181612af5565b9150828204841483151761303857613037612e50565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006130756010836129eb565b91506130808261303f565b602082019050919050565b600060208201905081810360008301526130a481613068565b9050919050565b60006130b682612af5565b91506130c183612af5565b92508282039050818111156130d9576130d8612e50565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b60006131156018836129eb565b9150613120826130df565b602082019050919050565b6000602082019050818103600083015261314481613108565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061318582612af5565b915061319083612af5565b9250826131a05761319f61314b565b5b828204905092915050565b60006131b682612af5565b91506131c183612af5565b92508282019050808211156131d9576131d8612e50565b5b92915050565b7f747820746f6f206c6f7700000000000000000000000000000000000000000000600082015250565b6000613215600a836129eb565b9150613220826131df565b602082019050919050565b6000602082019050818103600083015261324481613208565b9050919050565b7f77616c6c657420746f6f206c6f77000000000000000000000000000000000000600082015250565b6000613281600e836129eb565b915061328c8261324b565b602082019050919050565b600060208201905081810360008301526132b081613274565b9050919050565b7f43616e6e6f74206578656d7074204c5000000000000000000000000000000000600082015250565b60006132ed6010836129eb565b91506132f8826132b7565b602082019050919050565b6000602082019050818103600083015261331c816132e0565b9050919050565b7f4c50206372656174656400000000000000000000000000000000000000000000600082015250565b6000613359600a836129eb565b915061336482613323565b602082019050919050565b600060208201905081810360008301526133888161334c565b9050919050565b7f74726164696e67206f70656e0000000000000000000000000000000000000000600082015250565b60006133c5600c836129eb565b91506133d08261338f565b602082019050919050565b600060208201905081810360008301526133f4816133b8565b9050919050565b7f4e6f2045544820696e2063612f6d736700000000000000000000000000000000600082015250565b60006134316010836129eb565b915061343c826133fb565b602082019050919050565b6000602082019050818103600083015261346081613424565b9050919050565b7f4e6f20746f6b656e7320696e2063610000000000000000000000000000000000600082015250565b600061349d600f836129eb565b91506134a882613467565b602082019050919050565b600060208201905081810360008301526134cc81613490565b9050919050565b6000815190506134e281612ac9565b92915050565b6000602082840312156134fe576134fd612a92565b5b600061350c848285016134d3565b91505092915050565b600060408201905061352a6000830185612d7b565b6135376020830184612d7b565b9392505050565b600081519050919050565b600081905092915050565b600061355f8261353e565b6135698185613549565b93506135798185602086016129fc565b80840191505092915050565b60006135918284613554565b915081905092915050565b7f4661696c656420616464696e67206c7000000000000000000000000000000000600082015250565b60006135d26010836129eb565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b6000819050919050565b600061362d61362861362384612a97565b613608565b612a97565b9050919050565b600061363f82613612565b9050919050565b600061365182613634565b9050919050565b61366181613646565b82525050565b600060208201905061367c6000830184613658565b92915050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b60006136b8601d836129eb565b91506136c382613682565b602082019050919050565b600060208201905081810360008301526136e7816136ab565b9050919050565b7f4d455620626c6f636b6564000000000000000000000000000000000000000000600082015250565b6000613724600b836129eb565b915061372f826136ee565b602082019050919050565b6000602082019050818103600083015261375381613717565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b60006137906011836129eb565b915061379b8261375a565b602082019050919050565b600060208201905081810360008301526137bf81613783565b9050919050565b6000819050919050565b60006137eb6137e66137e1846137c6565b613608565b612af5565b9050919050565b6137fb816137d0565b82525050565b600060c0820190506138166000830189612d7b565b6138236020830188612ba1565b61383060408301876137f2565b61383d60608301866137f2565b61384a6080830185612d7b565b61385760a0830184612ba1565b979650505050505050565b60008151905061387181612aff565b92915050565b6000806000606084860312156138905761388f612a92565b5b600061389e86828701613862565b93505060206138af86828701613862565b92505060406138c086828701613862565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61395d81612ab7565b82525050565b600061396f8383613954565b60208301905092915050565b6000602082019050919050565b600061399382613928565b61399d8185613933565b93506139a883613944565b8060005b838110156139d95781516139c08882613963565b97506139cb8361397b565b9250506001810190506139ac565b5085935050505092915050565b600060a0820190506139fb6000830188612ba1565b613a0860208301876137f2565b8181036040830152613a1a8186613988565b9050613a296060830185612d7b565b613a366080830184612ba1565b969550505050505056fea2646970667358221220d4e8de30a91a901e3eb6f58e853fcd3582ac00a31aa9633e7008e2bddff04c1664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb14610437578063c3f70b5214610474578063dd62ed3e1461049f578063e8078d94146104dc578063f2fde38b146104e6578063f8b45b051461050f57610140565b8063715018a61461036257806375f0a874146103795780638d3e6e40146103a45780638da5cb5b146103e157806395d89b411461040c57610140565b8063368f4800116100fd578063368f48001461024057806346b89834146102695780634d4ce9351461029457806357ff135a146102bf5780635a90a49e146102e857806370a082311461032557610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61053a565b6040516101679190612a70565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612b2b565b610577565b6040516101a49190612b86565b60405180910390f35b3480156101b957600080fd5b506101c2610669565b6040516101cf9190612bb0565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa9190612bcb565b61068c565b60405161020c9190612b86565b60405180910390f35b34801561022157600080fd5b5061022a610896565b6040516102379190612c3a565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612c8f565b61089f565b005b34801561027557600080fd5b5061027e610a5b565b60405161028b9190612bb0565b60405180910390f35b3480156102a057600080fd5b506102a9610a65565b6040516102b69190612bb0565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e19190612cfb565b610a6f565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190612d4e565b610c4c565b60405161031c9190612b86565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190612d4e565b610ca2565b6040516103599190612bb0565b60405180910390f35b34801561036e57600080fd5b50610377610ceb565b005b34801561038557600080fd5b5061038e610df4565b60405161039b9190612d8a565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c69190612d4e565b610e1e565b6040516103d89190612b86565b60405180910390f35b3480156103ed57600080fd5b506103f6610e74565b6040516104039190612d8a565b60405180910390f35b34801561041857600080fd5b50610421610e9d565b60405161042e9190612a70565b60405180910390f35b34801561044357600080fd5b5061045e60048036038101906104599190612b2b565b610eda565b60405161046b9190612b86565b60405180910390f35b34801561048057600080fd5b50610489610f37565b6040516104969190612bb0565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190612da5565b610f41565b6040516104d39190612bb0565b60405180910390f35b6104e4610fc8565b005b3480156104f257600080fd5b5061050d60048036038101906105089190612e23565b6116b5565b005b34801561051b57600080fd5b506105246117bd565b6040516105319190612bb0565b60405180910390f35b60606040518060400160405280600881526020017f536f6720436f696e000000000000000000000000000000000000000000000000815250905090565b600081600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106579190612bb0565b60405180910390a36001905092915050565b60006009600a6106799190612fb2565b620f42406106879190612ffd565b905090565b6000610697846117c7565b6106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd9061308b565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108825781600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461080191906130ab565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61088d8484846118a2565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461092d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109249061312b565b60405180910390fd5b600060016103e88461ffff166009600a6109479190612fb2565b620f42406109559190612ffd565b61095f9190612ffd565b610969919061317a565b61097391906131ab565b90506001548110156109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b19061322b565b60405180910390fd5b80600181905550600060016103e88461ffff166009600a6109db9190612fb2565b620f42406109e99190612ffd565b6109f39190612ffd565b6109fd919061317a565b610a0791906131ab565b9050600254811015610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590613297565b60405180910390fd5b8060028190555050505050565b6000600454905090565b6000600554905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af49061312b565b60405180910390fd5b8080610b065750815b15610b9957601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8f90613303565b60405180910390fd5b5b81600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d709061312b565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610dea9190612d8a565b60405180910390a1565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f534f470000000000000000000000000000000000000000000000000000000000815250905090565b6000610ee5336117c7565b610f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1b9061308b565b60405180910390fd5b610f2f3384846118a2565b905092915050565b6000600154905090565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d9061312b565b60405180910390fd5b6001601360016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f99061336f565b60405180910390fd5b601360009054906101000a900460ff1615611152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611149906133db565b60405180910390fd5b60003411806111615750600047115b6111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119790613447565b60405180910390fd5b6000600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611222576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611219906134b3565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b391906134e8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561133c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136091906134e8565b6040518363ffffffff1660e01b815260040161137d929190613515565b6020604051808303816000875af115801561139c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c091906134e8565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061144b600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476000611e2e565b600954600b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114be91906130ab565b925050819055506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115909190613585565b6000604051808303816000865af19150503d80600081146115cd576040519150601f19603f3d011682016040523d82523d6000602084013e6115d2565b606091505b5050905080611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d906135e8565b60405180910390fd5b8060126000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611697611f1c565b506000601360016101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a9061312b565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516117b29190613667565b60405180910390a150565b6000600254905090565b60008060009050601360009054906101000a900460ff16156117ec5760019050611899565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561188e5750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561189857600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611912576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611909906136ce565b60405180910390fd5b601360009054906101000a900460ff16611a0857600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156119c85750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fe9061308b565b60405180910390fd5b5b601360019054906101000a900460ff16158015611a6e5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611a7c57611a7b612004565b5b60065443108015611a8f57506008544310155b8015611ae45750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b58573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e9061373a565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bc057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c18575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c6857611c28848484612124565b611c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5e906137a6565b60405180910390fd5b5b6000611c758585856122bb565b905060008184611c8591906130ab565b905083600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd291906130ab565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160096000828254611d2791906131ab565b9250508190555080600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7991906131ab565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611e199190612bb0565b60405180910390a36001925050509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508115611e6057600090505b611e698461256b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401611ed096959493929190613801565b60606040518083038185885af1158015611eee573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f139190613877565b50505050505050565b606460026009600a611f2e9190612fb2565b620f4240611f3c9190612ffd565b611f469190612ffd565b611f50919061317a565b600181905550606460026009600a611f689190612fb2565b620f4240611f769190612ffd565b611f809190612ffd565b611f8a919061317a565b6002819055506001601360006101000a81548160ff02191690831515021790555043600881905550600360019054906101000a900460ff1660ff16600360009054906101000a900460ff1660ff16600854600654611fe891906131ab565b611ff291906131ab565b611ffc91906131ab565b600681905550565b6001601360016101000a81548160ff0219169083151502179055506000600954905060045481101580156120445750601360009054906101000a900460ff165b156121065760055481106120585760055490505b60008190506009600a61206b9190612fb2565b8111156120eb5781600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120c191906131ab565b925050819055506120d181612755565b81600960008282546120e391906130ab565b925050819055505b600047905060008111156121035761210281612974565b5b50505b506000601360016101000a81548160ff021916908315150217905550565b60008060019050601360009054906101000a900460ff1680156121915750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121e75750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122b0576001548311156121ff57600090506122af565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122a4575060025483600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122a291906131ab565b115b156122ae57600090505b5b5b809150509392505050565b600080601360009054906101000a900460ff1615806123235750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123775750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123855760009050612560565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124df57600360019054906101000a900460ff1660ff16600360009054906101000a900460ff1660ff1660085461240a91906131ab565b61241491906131ab565b431061244b576064600760029054906101000a900460ff1660ff168461243a9190612ffd565b612444919061317a565b90506124da565b600360009054906101000a900460ff1660ff1660085461246b91906131ab565b43106124a2576064600760019054906101000a900460ff1660ff16846124919190612ffd565b61249b919061317a565b90506124d9565b60085443106124d8576064600760009054906101000a900460ff1660ff16846124cb9190612ffd565b6124d5919061317a565b90505b5b5b61255f565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561255e576064600760039054906101000a900460ff1660ff16846125519190612ffd565b61255b919061317a565b90505b5b5b809150509392505050565b80600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612752577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516127499190612bb0565b60405180910390a35b50565b61275e8161256b565b6000600267ffffffffffffffff81111561277b5761277a6138ca565b5b6040519080825280602002602001820160405280156127a95781602001602082028036833780820191505090505b50905030816000815181106127c1576127c06138f9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288c91906134e8565b816001815181106128a05761289f6138f9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161293e9594939291906139e6565b600060405180830381600087803b15801561295857600080fd5b505af115801561296c573d6000803e3d6000fd5b505050505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156129dc573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a1a5780820151818401526020810190506129ff565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a42826129e0565b612a4c81856129eb565b9350612a5c8185602086016129fc565b612a6581612a26565b840191505092915050565b60006020820190508181036000830152612a8a8184612a37565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ac282612a97565b9050919050565b612ad281612ab7565b8114612add57600080fd5b50565b600081359050612aef81612ac9565b92915050565b6000819050919050565b612b0881612af5565b8114612b1357600080fd5b50565b600081359050612b2581612aff565b92915050565b60008060408385031215612b4257612b41612a92565b5b6000612b5085828601612ae0565b9250506020612b6185828601612b16565b9150509250929050565b60008115159050919050565b612b8081612b6b565b82525050565b6000602082019050612b9b6000830184612b77565b92915050565b612baa81612af5565b82525050565b6000602082019050612bc56000830184612ba1565b92915050565b600080600060608486031215612be457612be3612a92565b5b6000612bf286828701612ae0565b9350506020612c0386828701612ae0565b9250506040612c1486828701612b16565b9150509250925092565b600060ff82169050919050565b612c3481612c1e565b82525050565b6000602082019050612c4f6000830184612c2b565b92915050565b600061ffff82169050919050565b612c6c81612c55565b8114612c7757600080fd5b50565b600081359050612c8981612c63565b92915050565b60008060408385031215612ca657612ca5612a92565b5b6000612cb485828601612c7a565b9250506020612cc585828601612c7a565b9150509250929050565b612cd881612b6b565b8114612ce357600080fd5b50565b600081359050612cf581612ccf565b92915050565b600080600060608486031215612d1457612d13612a92565b5b6000612d2286828701612ae0565b9350506020612d3386828701612ce6565b9250506040612d4486828701612ce6565b9150509250925092565b600060208284031215612d6457612d63612a92565b5b6000612d7284828501612ae0565b91505092915050565b612d8481612ab7565b82525050565b6000602082019050612d9f6000830184612d7b565b92915050565b60008060408385031215612dbc57612dbb612a92565b5b6000612dca85828601612ae0565b9250506020612ddb85828601612ae0565b9150509250929050565b6000612df082612a97565b9050919050565b612e0081612de5565b8114612e0b57600080fd5b50565b600081359050612e1d81612df7565b92915050565b600060208284031215612e3957612e38612a92565b5b6000612e4784828501612e0e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612ed657808604811115612eb257612eb1612e50565b5b6001851615612ec15780820291505b8081029050612ecf85612e7f565b9450612e96565b94509492505050565b600082612eef5760019050612fab565b81612efd5760009050612fab565b8160018114612f135760028114612f1d57612f4c565b6001915050612fab565b60ff841115612f2f57612f2e612e50565b5b8360020a915084821115612f4657612f45612e50565b5b50612fab565b5060208310610133831016604e8410600b8410161715612f815782820a905083811115612f7c57612f7b612e50565b5b612fab565b612f8e8484846001612e8c565b92509050818404811115612fa557612fa4612e50565b5b81810290505b9392505050565b6000612fbd82612af5565b9150612fc883612c1e565b9250612ff57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612edf565b905092915050565b600061300882612af5565b915061301383612af5565b925082820261302181612af5565b9150828204841483151761303857613037612e50565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006130756010836129eb565b91506130808261303f565b602082019050919050565b600060208201905081810360008301526130a481613068565b9050919050565b60006130b682612af5565b91506130c183612af5565b92508282039050818111156130d9576130d8612e50565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b60006131156018836129eb565b9150613120826130df565b602082019050919050565b6000602082019050818103600083015261314481613108565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061318582612af5565b915061319083612af5565b9250826131a05761319f61314b565b5b828204905092915050565b60006131b682612af5565b91506131c183612af5565b92508282019050808211156131d9576131d8612e50565b5b92915050565b7f747820746f6f206c6f7700000000000000000000000000000000000000000000600082015250565b6000613215600a836129eb565b9150613220826131df565b602082019050919050565b6000602082019050818103600083015261324481613208565b9050919050565b7f77616c6c657420746f6f206c6f77000000000000000000000000000000000000600082015250565b6000613281600e836129eb565b915061328c8261324b565b602082019050919050565b600060208201905081810360008301526132b081613274565b9050919050565b7f43616e6e6f74206578656d7074204c5000000000000000000000000000000000600082015250565b60006132ed6010836129eb565b91506132f8826132b7565b602082019050919050565b6000602082019050818103600083015261331c816132e0565b9050919050565b7f4c50206372656174656400000000000000000000000000000000000000000000600082015250565b6000613359600a836129eb565b915061336482613323565b602082019050919050565b600060208201905081810360008301526133888161334c565b9050919050565b7f74726164696e67206f70656e0000000000000000000000000000000000000000600082015250565b60006133c5600c836129eb565b91506133d08261338f565b602082019050919050565b600060208201905081810360008301526133f4816133b8565b9050919050565b7f4e6f2045544820696e2063612f6d736700000000000000000000000000000000600082015250565b60006134316010836129eb565b915061343c826133fb565b602082019050919050565b6000602082019050818103600083015261346081613424565b9050919050565b7f4e6f20746f6b656e7320696e2063610000000000000000000000000000000000600082015250565b600061349d600f836129eb565b91506134a882613467565b602082019050919050565b600060208201905081810360008301526134cc81613490565b9050919050565b6000815190506134e281612ac9565b92915050565b6000602082840312156134fe576134fd612a92565b5b600061350c848285016134d3565b91505092915050565b600060408201905061352a6000830185612d7b565b6135376020830184612d7b565b9392505050565b600081519050919050565b600081905092915050565b600061355f8261353e565b6135698185613549565b93506135798185602086016129fc565b80840191505092915050565b60006135918284613554565b915081905092915050565b7f4661696c656420616464696e67206c7000000000000000000000000000000000600082015250565b60006135d26010836129eb565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b6000819050919050565b600061362d61362861362384612a97565b613608565b612a97565b9050919050565b600061363f82613612565b9050919050565b600061365182613634565b9050919050565b61366181613646565b82525050565b600060208201905061367c6000830184613658565b92915050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b60006136b8601d836129eb565b91506136c382613682565b602082019050919050565b600060208201905081810360008301526136e7816136ab565b9050919050565b7f4d455620626c6f636b6564000000000000000000000000000000000000000000600082015250565b6000613724600b836129eb565b915061372f826136ee565b602082019050919050565b6000602082019050818103600083015261375381613717565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b60006137906011836129eb565b915061379b8261375a565b602082019050919050565b600060208201905081810360008301526137bf81613783565b9050919050565b6000819050919050565b60006137eb6137e66137e1846137c6565b613608565b612af5565b9050919050565b6137fb816137d0565b82525050565b600060c0820190506138166000830189612d7b565b6138236020830188612ba1565b61383060408301876137f2565b61383d60608301866137f2565b61384a6080830185612d7b565b61385760a0830184612ba1565b979650505050505050565b60008151905061387181612aff565b92915050565b6000806000606084860312156138905761388f612a92565b5b600061389e86828701613862565b93505060206138af86828701613862565b92505060406138c086828701613862565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61395d81612ab7565b82525050565b600061396f8383613954565b60208301905092915050565b6000602082019050919050565b600061399382613928565b61399d8185613933565b93506139a883613944565b8060005b838110156139d95781516139c08882613963565b97506139cb8361397b565b9250506001810190506139ac565b5085935050505092915050565b600060a0820190506139fb6000830188612ba1565b613a0860208301876137f2565b8181036040830152613a1a8186613988565b9050613a296060830185612d7b565b613a366080830184612ba1565b969550505050505056fea2646970667358221220d4e8de30a91a901e3eb6f58e853fcd3582ac00a31aa9633e7008e2bddff04c1664736f6c63430008130033

Deployed Bytecode Sourcemap

2848:11190:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5668:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6006:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5398:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6460:392;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5492:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12321:440;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12149:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12234;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11595:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11369:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5754:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2665:127;;;;;;;;;;;;;:::i;:::-;;11841:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11480:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2439:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5578:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6227:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12049:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5865:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7185:770;;;:::i;:::-;;2512:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11952:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5668:80;5716:13;5740:5;;;;;;;;;;;;;;;;;5733:12;;5668:80;:::o;6006:213::-;6080:4;6131:6;6097:11;:23;6109:10;6097:23;;;;;;;;;;;;;;;:31;6121:6;6097:31;;;;;;;;;;;;;;;:40;;;;6174:6;6153:36;;6162:10;6153:36;;;6182:6;6153:36;;;;;;:::i;:::-;;;;;;;;6207:4;6200:11;;6006:213;;;;:::o;5398:88::-;5453:7;2925:1;2987:2;:13;;;;:::i;:::-;2974:9;:27;;;;:::i;:::-;5464:19;;5398:88;:::o;6460:392::-;6558:4;6583:23;6601:4;6583:17;:23::i;:::-;6575:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;6674:17;6641:11;:17;6653:4;6641:17;;;;;;;;;;;;;;;:29;6659:10;6641:29;;;;;;;;;;;;;;;;:50;6638:151;;6771:6;6739:11;:17;6751:4;6739:17;;;;;;;;;;;;;;;:29;6757:10;6739:29;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;6707:11;:17;6719:4;6707:17;;;;;;;;;;;;;;;:29;6725:10;6707:29;;;;;;;;;;;;;;;:70;;;;6638:151;6806:38;6820:4;6826:9;6837:6;6806:13;:38::i;:::-;6799:45;;6460:392;;;;;:::o;5492:80::-;5544:5;2925:1;5553:16;;5492:80;:::o;12321:440::-;2384:6;;;;;;;;;;2370:20;;:10;:20;;;2362:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12416:16:::1;12474:1;12467:4;12450:14;12435:29;;2925:1;2987:2;:13;;;;:::i;:::-;2974:9;:27;;;;:::i;:::-;12435:29;;;;:::i;:::-;:36;;;;:::i;:::-;:40;;;;:::i;:::-;12416:59;;12506:12;;12494:8;:24;;12486:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12559:8;12544:12;:23;;;;12578:20;12640:1;12633:4;12616:14;12601:29;;2925:1;2987:2;:13;;;;:::i;:::-;2974:9;:27;;;;:::i;:::-;12601:29;;;;:::i;:::-;:36;;;;:::i;:::-;:40;;;;:::i;:::-;12578:63;;12676:16;;12660:12;:32;;12652:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12741:12;12722:16;:31;;;;12405:356;;12321:440:::0;;:::o;12149:79::-;12193:7;12211:11;;12204:18;;12149:79;:::o;12234:::-;12278:7;12296:11;;12289:18;;12234:79;:::o;11595:238::-;2384:6;;;;;;;;;;2370:20;;:10;:20;;;2362:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11689:8:::1;:18;;;;11701:6;11689:18;11685:69;;;11720:5;:10;11726:3;11720:10;;;;;;;;;;;;;;;;;;;;;;;;;11719:11;11711:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;11685:69;11781:6;11764:7;:14;11773:3;11764:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11817:8;11798:9;:16;11809:3;11798:16;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;11595:238:::0;;;:::o;11369:104::-;11429:4;11453:7;:12;11461:3;11453:12;;;;;;;;;;;;;;;;;;;;;;;;;11446:19;;11369:104;;;:::o;5754:105::-;5820:7;5838:9;:18;5848:7;5838:18;;;;;;;;;;;;;;;;5831:25;;5754:105;;;:::o;2665:127::-;2384:6;;;;;;;;;;2370:20;;:10;:20;;;2362:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2742:1:::1;2725:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2751:32;2780:1;2751:32;;;;;;:::i;:::-;;;;;;;;2665:127::o:0;11841:97::-;11891:7;11916:16;;;;;;;;;;;11909:23;;11841:97;:::o;11480:108::-;11542:4;11566:9;:14;11576:3;11566:14;;;;;;;;;;;;;;;;;;;;;;;;;11559:21;;11480:108;;;:::o;2439:67::-;2477:7;2495:6;;;;;;;;;;;2488:13;;2439:67;:::o;5578:84::-;5628:13;5652:7;;;;;;;;;;;;;;;;;5645:14;;5578:84;:::o;6227:225::-;6307:4;6332:29;6350:10;6332:17;:29::i;:::-;6324:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6400:44;6414:10;6426:9;6437:6;6400:13;:44::i;:::-;6393:51;;6227:225;;;;:::o;12049:92::-;12098:7;12123:12;;12116:19;;12049:92;:::o;5865:133::-;5949:7;5967:11;:19;5979:6;5967:19;;;;;;;;;;;;;;;:28;5987:7;5967:28;;;;;;;;;;;;;;;;5960:35;;5865:133;;;;:::o;7185:770::-;2384:6;;;;;;;;;;2370:20;;:10;:20;;;2362:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4483:4:::1;4470:10;;:17;;;;;;;;;;;;;;;;;;7289:1:::2;7267:24;;:10;;;;;;;;;;;:24;;;7259:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;7326:12;;;;;;;;;;;7325:13;7317:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7386:1;7374:9;:13;:40;;;;7413:1;7391:21;:23;7374:40;7366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;7479:1;7454:9;:24;7472:4;7454:24;;;;;;;;;;;;;;;;:26;7446:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;7542:18;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7524:58;;;7591:4;7598:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7524:100;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7511:10;;:113;;;;;;;;;;;;;;;;;;7635:69;7649:9;:24;7667:4;7649:24;;;;;;;;;;;;;;;;7675:21;7698:5;7635:13;:69::i;:::-;7740:17;;7715:9;:21;7725:10;;;;;;;;;;;7715:21;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;7769:12;7786:10;;;;;;;;;;;:15;;7802:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7786:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7768:69;;;7856:7;7848:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;7915:7;7895:5;:17;7901:10;;;;;;;;;;;7895:17;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7933:14;:12;:14::i;:::-;7248:707;4525:5:::1;4512:10;;:18;;;;;;;;;;;;;;;;;;7185:770::o:0;2512:147::-;2384:6;;;;;;;;;;2370:20;;:10;:20;;;2362:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2605:8:::1;2596:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2620:30;2641:8;2620:30;;;;;;:::i;:::-;;;;;;;;2512:147:::0;:::o;11952:91::-;11996:7;12021:16;;12014:23;;11952:91;:::o;10250:273::-;10313:4;10329:16;10348:5;10329:24;;10369:12;;;;;;;;;;;10364:120;;;10400:4;10386:18;;10364:120;;;10427:7;:13;10435:4;10427:13;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;;10444:9;:15;10454:4;10444:15;;;;;;;;;;;;;;;;;;;;;;;;;10427:32;10423:61;;;10477:4;10463:18;;10423:61;10364:120;10504:11;10497:18;;;10250:273;;;:::o;8660:1083::-;8752:4;8795:1;8777:20;;:6;:20;;;8769:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8847:12;;;;;;;;;;;8842:89;;8871:7;:15;8879:6;8871:15;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;;8890:9;:17;8900:6;8890:17;;;;;;;;;;;;;;;;;;;;;;;;;8871:36;8863:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8842:89;8947:10;;;;;;;;;;;8946:11;:31;;;;;8961:5;:16;8967:9;8961:16;;;;;;;;;;;;;;;;;;;;;;;;;8946:31;8941:64;;;8982:20;:18;:20::i;:::-;8941:64;9035:18;;9020:12;:33;:62;;;;;9073:9;;9057:12;:25;;9020:62;:79;;;;;9086:5;:13;9092:6;9086:13;;;;;;;;;;;;;;;;;;;;;;;;;9020:79;9015:160;;;9138:9;9125:22;;:9;:22;;;9117:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9015:160;9208:4;9190:23;;:6;:23;;;;:53;;;;;9238:4;9217:26;;:9;:26;;;;9190:53;:73;;;;;9257:6;;;;;;;;;;9247:16;;:6;:16;;;;9190:73;9185:179;;;9290:39;9303:6;9311:9;9322:6;9290:12;:39::i;:::-;9282:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;9185:179;9374:18;9395:40;9409:6;9417:9;9428:6;9395:13;:40::i;:::-;9374:61;;9446:23;9481:10;9472:6;:19;;;;:::i;:::-;9446:45;;9542:6;9522:9;:17;9532:6;9522:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9502:9;:17;9512:6;9502:17;;;;;;;;;;;;;;;:46;;;;9580:10;9559:17;;:31;;;;;;;:::i;:::-;;;;;;;;9647:15;9624:9;:20;9634:9;9624:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;9601:9;:20;9611:9;9601:20;;;;;;;;;;;;;;;:61;;;;9695:9;9678:35;;9687:6;9678:35;;;9706:6;9678:35;;;;;;:::i;:::-;;;;;;;;9731:4;9724:11;;;;8660:1083;;;;;:::o;7963:369::-;8066:19;8088:7;;;;;;;;;;;8066:29;;8111:8;8106:45;;;8146:1;8124:24;;8106:45;8161:28;8176:12;8161:14;:28::i;:::-;8200:18;;;;;;;;;;;:34;;;8242:13;8267:4;8274:12;8288:1;8291;8294:11;8307:15;8200:124;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8055:277;7963:369;;;:::o;8340:312::-;8422:3;8418:1;2925;2987:2;:13;;;;:::i;:::-;2974:9;:27;;;;:::i;:::-;8403:16;;;;:::i;:::-;:22;;;;:::i;:::-;8384:12;:41;;;;8475:3;8471:1;2925;2987:2;:13;;;;:::i;:::-;2974:9;:27;;;;:::i;:::-;8456:16;;;;:::i;:::-;:22;;;;:::i;:::-;8437:16;:41;;;;8504:4;8489:12;;:19;;;;;;;;;;;;;;;;;;8531:12;8519:9;:24;;;;8627:17;;;;;;;;;;;8575:69;;8608:16;;;;;;;;;;;8575:49;;8596:9;;8575:18;;:30;;;;:::i;:::-;:49;;;;:::i;:::-;:69;;;;:::i;:::-;8554:18;:90;;;;8340:312::o;12778:759::-;4483:4;4470:10;;:17;;;;;;;;;;;;;;;;;;12839:27:::1;12869:17;;12839:47;;12925:11;;12902:19;:34;;:50;;;;;12940:12;;;;;;;;;;;12902:50;12897:633;;;12998:11;;12975:19;:34;12970:80;;13036:11;;13014:33;;12970:80;13078:21;13102:19;13078:43;;2925:1;13157:2;:13;;;;:::i;:::-;13141;:29;13137:231;;;13220:19;13192:9;:24;13210:4;13192:24;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;13258:35;13279:13;13258:20;:35::i;:::-;13333:19;13312:17;;:40;;;;;;;:::i;:::-;;;;;;;;13137:231;13382:27;13412:21;13382:51;;13473:1;13451:19;:23;13448:71;;;13478:38;13496:19;13478:17;:38::i;:::-;13448:71;12955:575;;12897:633;12828:709;4525:5:::0;4512:10;;:18;;;;;;;;;;;;;;;;;;12778:759::o;9751:491::-;9853:4;9870:21;9894:4;9870:28;;9914:12;;;;;;;;;;;:32;;;;;9931:9;:15;9941:4;9931:15;;;;;;;;;;;;;;;;;;;;;;;;;9930:16;9914:32;:57;;;;;9951:9;:20;9961:9;9951:20;;;;;;;;;;;;;;;;;;;;;;;;;9950:21;9914:57;9909:292;;;10011:12;;9994:14;:29;9989:201;;;10047:5;10028:24;;9989:201;;;10080:5;:16;10086:9;10080:16;;;;;;;;;;;;;;;;;;;;;;;;;10079:17;:79;;;;;10141:16;;10124:14;10101:9;:20;10111:9;10101:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:56;10079:79;10074:116;;;10182:5;10163:24;;10074:116;9989:201;9909:292;10218:16;10211:23;;;9751:491;;;;;:::o;10531:828::-;10626:7;10646:17;10690:12;;;;;;;;;;;10689:13;:30;;;;10706:7;:13;10714:4;10706:13;;;;;;;;;;;;;;;;;;;;;;;;;10689:30;:52;;;;10723:7;:18;10731:9;10723:18;;;;;;;;;;;;;;;;;;;;;;;;;10689:52;10684:639;;;10772:1;10760:13;;10684:639;;;10797:5;:11;10803:4;10797:11;;;;;;;;;;;;;;;;;;;;;;;;;10792:531;;;10879:17;;;;;;;;;;;10848:48;;10860:16;;;;;;;;;;;10848:28;;:9;;:28;;;;:::i;:::-;:48;;;;:::i;:::-;10832:12;:64;10827:388;;10952:3;10939:10;;;;;;;;;;;10930:19;;:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;10918:37;;10827:388;;;11011:16;;;;;;;;;;;10999:28;;:9;;:28;;;;:::i;:::-;10983:12;:44;10978:237;;11085:3;11070:12;;;;;;;;;;;11061:21;;:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;11049:39;;10978:237;;;11131:9;;11115:12;:25;11110:105;;11196:3;11182:11;;;;;;;;;;;11173:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;11161:38;;11110:105;10978:237;10827:388;10792:531;;;11237:5;:16;11243:9;11237:16;;;;;;;;;;;;;;;;;;;;;;;;;11232:91;;;11307:3;11293:11;;;;;;;;;;;11284:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;11272:38;;11232:91;10792:531;10684:639;11342:9;11335:16;;;10531:828;;;;;:::o;6860:317::-;6980:12;6931:11;:26;6951:4;6931:26;;;;;;;;;;;;;;;:46;4141:42;6931:46;;;;;;;;;;;;;;;;:61;6926:244;;;7059:17;7010:11;:26;7030:4;7010:26;;;;;;;;;;;;;;;:46;4141:42;7010:46;;;;;;;;;;;;;;;:66;;;;4141:42;7096:62;;7113:4;7096:62;;;7140:17;7096:62;;;;;;:::i;:::-;;;;;;;;6926:244;6860:317;:::o;13545:369::-;13615:27;13630:11;13615:14;:27::i;:::-;13653:21;13691:1;13677:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13653:40;;13723:4;13704;13709:1;13704:7;;;;;;;;:::i;:::-;;;;;;;:25;;;;;;;;;;;13750:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13740:4;13745:1;13740:7;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;13787:18;;;;;;;;;;;:69;;;13857:11;13869:1;13871:4;13884;13890:15;13787:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13604:310;13545:369;:::o;13922:103::-;13984:16;;;;;;;;;;;:25;;:33;14010:6;13984:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13922:103;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:89::-;4889:7;4929:6;4922:5;4918:18;4907:29;;4853:89;;;:::o;4948:120::-;5020:23;5037:5;5020:23;:::i;:::-;5013:5;5010:34;5000:62;;5058:1;5055;5048:12;5000:62;4948:120;:::o;5074:137::-;5119:5;5157:6;5144:20;5135:29;;5173:32;5199:5;5173:32;:::i;:::-;5074:137;;;;:::o;5217:470::-;5283:6;5291;5340:2;5328:9;5319:7;5315:23;5311:32;5308:119;;;5346:79;;:::i;:::-;5308:119;5466:1;5491:52;5535:7;5526:6;5515:9;5511:22;5491:52;:::i;:::-;5481:62;;5437:116;5592:2;5618:52;5662:7;5653:6;5642:9;5638:22;5618:52;:::i;:::-;5608:62;;5563:117;5217:470;;;;;:::o;5693:116::-;5763:21;5778:5;5763:21;:::i;:::-;5756:5;5753:32;5743:60;;5799:1;5796;5789:12;5743:60;5693:116;:::o;5815:133::-;5858:5;5896:6;5883:20;5874:29;;5912:30;5936:5;5912:30;:::i;:::-;5815:133;;;;:::o;5954:607::-;6025:6;6033;6041;6090:2;6078:9;6069:7;6065:23;6061:32;6058:119;;;6096:79;;:::i;:::-;6058:119;6216:1;6241:53;6286:7;6277:6;6266:9;6262:22;6241:53;:::i;:::-;6231:63;;6187:117;6343:2;6369:50;6411:7;6402:6;6391:9;6387:22;6369:50;:::i;:::-;6359:60;;6314:115;6468:2;6494:50;6536:7;6527:6;6516:9;6512:22;6494:50;:::i;:::-;6484:60;;6439:115;5954:607;;;;;:::o;6567:329::-;6626:6;6675:2;6663:9;6654:7;6650:23;6646:32;6643:119;;;6681:79;;:::i;:::-;6643:119;6801:1;6826:53;6871:7;6862:6;6851:9;6847:22;6826:53;:::i;:::-;6816:63;;6772:117;6567:329;;;;:::o;6902:118::-;6989:24;7007:5;6989:24;:::i;:::-;6984:3;6977:37;6902:118;;:::o;7026:222::-;7119:4;7157:2;7146:9;7142:18;7134:26;;7170:71;7238:1;7227:9;7223:17;7214:6;7170:71;:::i;:::-;7026:222;;;;:::o;7254:474::-;7322:6;7330;7379:2;7367:9;7358:7;7354:23;7350:32;7347:119;;;7385:79;;:::i;:::-;7347:119;7505:1;7530:53;7575:7;7566:6;7555:9;7551:22;7530:53;:::i;:::-;7520:63;;7476:117;7632:2;7658:53;7703:7;7694:6;7683:9;7679:22;7658:53;:::i;:::-;7648:63;;7603:118;7254:474;;;;;:::o;7734:104::-;7779:7;7808:24;7826:5;7808:24;:::i;:::-;7797:35;;7734:104;;;:::o;7844:138::-;7925:32;7951:5;7925:32;:::i;:::-;7918:5;7915:43;7905:71;;7972:1;7969;7962:12;7905:71;7844:138;:::o;7988:155::-;8042:5;8080:6;8067:20;8058:29;;8096:41;8131:5;8096:41;:::i;:::-;7988:155;;;;:::o;8149:345::-;8216:6;8265:2;8253:9;8244:7;8240:23;8236:32;8233:119;;;8271:79;;:::i;:::-;8233:119;8391:1;8416:61;8469:7;8460:6;8449:9;8445:22;8416:61;:::i;:::-;8406:71;;8362:125;8149:345;;;;:::o;8500:180::-;8548:77;8545:1;8538:88;8645:4;8642:1;8635:15;8669:4;8666:1;8659:15;8686:102;8728:8;8775:5;8772:1;8768:13;8747:34;;8686:102;;;:::o;8794:848::-;8855:5;8862:4;8886:6;8877:15;;8910:5;8901:14;;8924:712;8945:1;8935:8;8932:15;8924:712;;;9040:4;9035:3;9031:14;9025:4;9022:24;9019:50;;;9049:18;;:::i;:::-;9019:50;9099:1;9089:8;9085:16;9082:451;;;9514:4;9507:5;9503:16;9494:25;;9082:451;9564:4;9558;9554:15;9546:23;;9594:32;9617:8;9594:32;:::i;:::-;9582:44;;8924:712;;;8794:848;;;;;;;:::o;9648:1073::-;9702:5;9893:8;9883:40;;9914:1;9905:10;;9916:5;;9883:40;9942:4;9932:36;;9959:1;9950:10;;9961:5;;9932:36;10028:4;10076:1;10071:27;;;;10112:1;10107:191;;;;10021:277;;10071:27;10089:1;10080:10;;10091:5;;;10107:191;10152:3;10142:8;10139:17;10136:43;;;10159:18;;:::i;:::-;10136:43;10208:8;10205:1;10201:16;10192:25;;10243:3;10236:5;10233:14;10230:40;;;10250:18;;:::i;:::-;10230:40;10283:5;;;10021:277;;10407:2;10397:8;10394:16;10388:3;10382:4;10379:13;10375:36;10357:2;10347:8;10344:16;10339:2;10333:4;10330:12;10326:35;10310:111;10307:246;;;10463:8;10457:4;10453:19;10444:28;;10498:3;10491:5;10488:14;10485:40;;;10505:18;;:::i;:::-;10485:40;10538:5;;10307:246;10578:42;10616:3;10606:8;10600:4;10597:1;10578:42;:::i;:::-;10563:57;;;;10652:4;10647:3;10643:14;10636:5;10633:25;10630:51;;;10661:18;;:::i;:::-;10630:51;10710:4;10703:5;10699:16;10690:25;;9648:1073;;;;;;:::o;10727:281::-;10785:5;10809:23;10827:4;10809:23;:::i;:::-;10801:31;;10853:25;10869:8;10853:25;:::i;:::-;10841:37;;10897:104;10934:66;10924:8;10918:4;10897:104;:::i;:::-;10888:113;;10727:281;;;;:::o;11014:410::-;11054:7;11077:20;11095:1;11077:20;:::i;:::-;11072:25;;11111:20;11129:1;11111:20;:::i;:::-;11106:25;;11166:1;11163;11159:9;11188:30;11206:11;11188:30;:::i;:::-;11177:41;;11367:1;11358:7;11354:15;11351:1;11348:22;11328:1;11321:9;11301:83;11278:139;;11397:18;;:::i;:::-;11278:139;11062:362;11014:410;;;;:::o;11430:166::-;11570:18;11566:1;11558:6;11554:14;11547:42;11430:166;:::o;11602:366::-;11744:3;11765:67;11829:2;11824:3;11765:67;:::i;:::-;11758:74;;11841:93;11930:3;11841:93;:::i;:::-;11959:2;11954:3;11950:12;11943:19;;11602:366;;;:::o;11974:419::-;12140:4;12178:2;12167:9;12163:18;12155:26;;12227:9;12221:4;12217:20;12213:1;12202:9;12198:17;12191:47;12255:131;12381:4;12255:131;:::i;:::-;12247:139;;11974:419;;;:::o;12399:194::-;12439:4;12459:20;12477:1;12459:20;:::i;:::-;12454:25;;12493:20;12511:1;12493:20;:::i;:::-;12488:25;;12537:1;12534;12530:9;12522:17;;12561:1;12555:4;12552:11;12549:37;;;12566:18;;:::i;:::-;12549:37;12399:194;;;;:::o;12599:174::-;12739:26;12735:1;12727:6;12723:14;12716:50;12599:174;:::o;12779:366::-;12921:3;12942:67;13006:2;13001:3;12942:67;:::i;:::-;12935:74;;13018:93;13107:3;13018:93;:::i;:::-;13136:2;13131:3;13127:12;13120:19;;12779:366;;;:::o;13151:419::-;13317:4;13355:2;13344:9;13340:18;13332:26;;13404:9;13398:4;13394:20;13390:1;13379:9;13375:17;13368:47;13432:131;13558:4;13432:131;:::i;:::-;13424:139;;13151:419;;;:::o;13576:180::-;13624:77;13621:1;13614:88;13721:4;13718:1;13711:15;13745:4;13742:1;13735:15;13762:185;13802:1;13819:20;13837:1;13819:20;:::i;:::-;13814:25;;13853:20;13871:1;13853:20;:::i;:::-;13848:25;;13892:1;13882:35;;13897:18;;:::i;:::-;13882:35;13939:1;13936;13932:9;13927:14;;13762:185;;;;:::o;13953:191::-;13993:3;14012:20;14030:1;14012:20;:::i;:::-;14007:25;;14046:20;14064:1;14046:20;:::i;:::-;14041:25;;14089:1;14086;14082:9;14075:16;;14110:3;14107:1;14104:10;14101:36;;;14117:18;;:::i;:::-;14101:36;13953:191;;;;:::o;14150:160::-;14290:12;14286:1;14278:6;14274:14;14267:36;14150:160;:::o;14316:366::-;14458:3;14479:67;14543:2;14538:3;14479:67;:::i;:::-;14472:74;;14555:93;14644:3;14555:93;:::i;:::-;14673:2;14668:3;14664:12;14657:19;;14316:366;;;:::o;14688:419::-;14854:4;14892:2;14881:9;14877:18;14869:26;;14941:9;14935:4;14931:20;14927:1;14916:9;14912:17;14905:47;14969:131;15095:4;14969:131;:::i;:::-;14961:139;;14688:419;;;:::o;15113:164::-;15253:16;15249:1;15241:6;15237:14;15230:40;15113:164;:::o;15283:366::-;15425:3;15446:67;15510:2;15505:3;15446:67;:::i;:::-;15439:74;;15522:93;15611:3;15522:93;:::i;:::-;15640:2;15635:3;15631:12;15624:19;;15283:366;;;:::o;15655:419::-;15821:4;15859:2;15848:9;15844:18;15836:26;;15908:9;15902:4;15898:20;15894:1;15883:9;15879:17;15872:47;15936:131;16062:4;15936:131;:::i;:::-;15928:139;;15655:419;;;:::o;16080:166::-;16220:18;16216:1;16208:6;16204:14;16197:42;16080:166;:::o;16252:366::-;16394:3;16415:67;16479:2;16474:3;16415:67;:::i;:::-;16408:74;;16491:93;16580:3;16491:93;:::i;:::-;16609:2;16604:3;16600:12;16593:19;;16252:366;;;:::o;16624:419::-;16790:4;16828:2;16817:9;16813:18;16805:26;;16877:9;16871:4;16867:20;16863:1;16852:9;16848:17;16841:47;16905:131;17031:4;16905:131;:::i;:::-;16897:139;;16624:419;;;:::o;17049:160::-;17189:12;17185:1;17177:6;17173:14;17166:36;17049:160;:::o;17215:366::-;17357:3;17378:67;17442:2;17437:3;17378:67;:::i;:::-;17371:74;;17454:93;17543:3;17454:93;:::i;:::-;17572:2;17567:3;17563:12;17556:19;;17215:366;;;:::o;17587:419::-;17753:4;17791:2;17780:9;17776:18;17768:26;;17840:9;17834:4;17830:20;17826:1;17815:9;17811:17;17804:47;17868:131;17994:4;17868:131;:::i;:::-;17860:139;;17587:419;;;:::o;18012:162::-;18152:14;18148:1;18140:6;18136:14;18129:38;18012:162;:::o;18180:366::-;18322:3;18343:67;18407:2;18402:3;18343:67;:::i;:::-;18336:74;;18419:93;18508:3;18419:93;:::i;:::-;18537:2;18532:3;18528:12;18521:19;;18180:366;;;:::o;18552:419::-;18718:4;18756:2;18745:9;18741:18;18733:26;;18805:9;18799:4;18795:20;18791:1;18780:9;18776:17;18769:47;18833:131;18959:4;18833:131;:::i;:::-;18825:139;;18552:419;;;:::o;18977:166::-;19117:18;19113:1;19105:6;19101:14;19094:42;18977:166;:::o;19149:366::-;19291:3;19312:67;19376:2;19371:3;19312:67;:::i;:::-;19305:74;;19388:93;19477:3;19388:93;:::i;:::-;19506:2;19501:3;19497:12;19490:19;;19149:366;;;:::o;19521:419::-;19687:4;19725:2;19714:9;19710:18;19702:26;;19774:9;19768:4;19764:20;19760:1;19749:9;19745:17;19738:47;19802:131;19928:4;19802:131;:::i;:::-;19794:139;;19521:419;;;:::o;19946:165::-;20086:17;20082:1;20074:6;20070:14;20063:41;19946:165;:::o;20117:366::-;20259:3;20280:67;20344:2;20339:3;20280:67;:::i;:::-;20273:74;;20356:93;20445:3;20356:93;:::i;:::-;20474:2;20469:3;20465:12;20458:19;;20117:366;;;:::o;20489:419::-;20655:4;20693:2;20682:9;20678:18;20670:26;;20742:9;20736:4;20732:20;20728:1;20717:9;20713:17;20706:47;20770:131;20896:4;20770:131;:::i;:::-;20762:139;;20489:419;;;:::o;20914:143::-;20971:5;21002:6;20996:13;20987:22;;21018:33;21045:5;21018:33;:::i;:::-;20914:143;;;;:::o;21063:351::-;21133:6;21182:2;21170:9;21161:7;21157:23;21153:32;21150:119;;;21188:79;;:::i;:::-;21150:119;21308:1;21333:64;21389:7;21380:6;21369:9;21365:22;21333:64;:::i;:::-;21323:74;;21279:128;21063:351;;;;:::o;21420:332::-;21541:4;21579:2;21568:9;21564:18;21556:26;;21592:71;21660:1;21649:9;21645:17;21636:6;21592:71;:::i;:::-;21673:72;21741:2;21730:9;21726:18;21717:6;21673:72;:::i;:::-;21420:332;;;;;:::o;21758:98::-;21809:6;21843:5;21837:12;21827:22;;21758:98;;;:::o;21862:147::-;21963:11;22000:3;21985:18;;21862:147;;;;:::o;22015:386::-;22119:3;22147:38;22179:5;22147:38;:::i;:::-;22201:88;22282:6;22277:3;22201:88;:::i;:::-;22194:95;;22298:65;22356:6;22351:3;22344:4;22337:5;22333:16;22298:65;:::i;:::-;22388:6;22383:3;22379:16;22372:23;;22123:278;22015:386;;;;:::o;22407:271::-;22537:3;22559:93;22648:3;22639:6;22559:93;:::i;:::-;22552:100;;22669:3;22662:10;;22407:271;;;;:::o;22684:166::-;22824:18;22820:1;22812:6;22808:14;22801:42;22684:166;:::o;22856:366::-;22998:3;23019:67;23083:2;23078:3;23019:67;:::i;:::-;23012:74;;23095:93;23184:3;23095:93;:::i;:::-;23213:2;23208:3;23204:12;23197:19;;22856:366;;;:::o;23228:419::-;23394:4;23432:2;23421:9;23417:18;23409:26;;23481:9;23475:4;23471:20;23467:1;23456:9;23452:17;23445:47;23509:131;23635:4;23509:131;:::i;:::-;23501:139;;23228:419;;;:::o;23653:60::-;23681:3;23702:5;23695:12;;23653:60;;;:::o;23719:142::-;23769:9;23802:53;23820:34;23829:24;23847:5;23829:24;:::i;:::-;23820:34;:::i;:::-;23802:53;:::i;:::-;23789:66;;23719:142;;;:::o;23867:126::-;23917:9;23950:37;23981:5;23950:37;:::i;:::-;23937:50;;23867:126;;;:::o;23999:134::-;24057:9;24090:37;24121:5;24090:37;:::i;:::-;24077:50;;23999:134;;;:::o;24139:147::-;24234:45;24273:5;24234:45;:::i;:::-;24229:3;24222:58;24139:147;;:::o;24292:238::-;24393:4;24431:2;24420:9;24416:18;24408:26;;24444:79;24520:1;24509:9;24505:17;24496:6;24444:79;:::i;:::-;24292:238;;;;:::o;24536:179::-;24676:31;24672:1;24664:6;24660:14;24653:55;24536:179;:::o;24721:366::-;24863:3;24884:67;24948:2;24943:3;24884:67;:::i;:::-;24877:74;;24960:93;25049:3;24960:93;:::i;:::-;25078:2;25073:3;25069:12;25062:19;;24721:366;;;:::o;25093:419::-;25259:4;25297:2;25286:9;25282:18;25274:26;;25346:9;25340:4;25336:20;25332:1;25321:9;25317:17;25310:47;25374:131;25500:4;25374:131;:::i;:::-;25366:139;;25093:419;;;:::o;25518:161::-;25658:13;25654:1;25646:6;25642:14;25635:37;25518:161;:::o;25685:366::-;25827:3;25848:67;25912:2;25907:3;25848:67;:::i;:::-;25841:74;;25924:93;26013:3;25924:93;:::i;:::-;26042:2;26037:3;26033:12;26026:19;;25685:366;;;:::o;26057:419::-;26223:4;26261:2;26250:9;26246:18;26238:26;;26310:9;26304:4;26300:20;26296:1;26285:9;26281:17;26274:47;26338:131;26464:4;26338:131;:::i;:::-;26330:139;;26057:419;;;:::o;26482:167::-;26622:19;26618:1;26610:6;26606:14;26599:43;26482:167;:::o;26655:366::-;26797:3;26818:67;26882:2;26877:3;26818:67;:::i;:::-;26811:74;;26894:93;26983:3;26894:93;:::i;:::-;27012:2;27007:3;27003:12;26996:19;;26655:366;;;:::o;27027:419::-;27193:4;27231:2;27220:9;27216:18;27208:26;;27280:9;27274:4;27270:20;27266:1;27255:9;27251:17;27244:47;27308:131;27434:4;27308:131;:::i;:::-;27300:139;;27027:419;;;:::o;27452:85::-;27497:7;27526:5;27515:16;;27452:85;;;:::o;27543:158::-;27601:9;27634:61;27652:42;27661:32;27687:5;27661:32;:::i;:::-;27652:42;:::i;:::-;27634:61;:::i;:::-;27621:74;;27543:158;;;:::o;27707:147::-;27802:45;27841:5;27802:45;:::i;:::-;27797:3;27790:58;27707:147;;:::o;27860:807::-;28109:4;28147:3;28136:9;28132:19;28124:27;;28161:71;28229:1;28218:9;28214:17;28205:6;28161:71;:::i;:::-;28242:72;28310:2;28299:9;28295:18;28286:6;28242:72;:::i;:::-;28324:80;28400:2;28389:9;28385:18;28376:6;28324:80;:::i;:::-;28414;28490:2;28479:9;28475:18;28466:6;28414:80;:::i;:::-;28504:73;28572:3;28561:9;28557:19;28548:6;28504:73;:::i;:::-;28587;28655:3;28644:9;28640:19;28631:6;28587:73;:::i;:::-;27860:807;;;;;;;;;:::o;28673:143::-;28730:5;28761:6;28755:13;28746:22;;28777:33;28804:5;28777:33;:::i;:::-;28673:143;;;;:::o;28822:663::-;28910:6;28918;28926;28975:2;28963:9;28954:7;28950:23;28946:32;28943:119;;;28981:79;;:::i;:::-;28943:119;29101:1;29126:64;29182:7;29173:6;29162:9;29158:22;29126:64;:::i;:::-;29116:74;;29072:128;29239:2;29265:64;29321:7;29312:6;29301:9;29297:22;29265:64;:::i;:::-;29255:74;;29210:129;29378:2;29404:64;29460:7;29451:6;29440:9;29436:22;29404:64;:::i;:::-;29394:74;;29349:129;28822:663;;;;;:::o;29491:180::-;29539:77;29536:1;29529:88;29636:4;29633:1;29626:15;29660:4;29657:1;29650:15;29677:180;29725:77;29722:1;29715:88;29822:4;29819:1;29812:15;29846:4;29843:1;29836:15;29863:114;29930:6;29964:5;29958:12;29948:22;;29863:114;;;:::o;29983:184::-;30082:11;30116:6;30111:3;30104:19;30156:4;30151:3;30147:14;30132:29;;29983:184;;;;:::o;30173:132::-;30240:4;30263:3;30255:11;;30293:4;30288:3;30284:14;30276:22;;30173:132;;;:::o;30311:108::-;30388:24;30406:5;30388:24;:::i;:::-;30383:3;30376:37;30311:108;;:::o;30425:179::-;30494:10;30515:46;30557:3;30549:6;30515:46;:::i;:::-;30593:4;30588:3;30584:14;30570:28;;30425:179;;;;:::o;30610:113::-;30680:4;30712;30707:3;30703:14;30695:22;;30610:113;;;:::o;30759:732::-;30878:3;30907:54;30955:5;30907:54;:::i;:::-;30977:86;31056:6;31051:3;30977:86;:::i;:::-;30970:93;;31087:56;31137:5;31087:56;:::i;:::-;31166:7;31197:1;31182:284;31207:6;31204:1;31201:13;31182:284;;;31283:6;31277:13;31310:63;31369:3;31354:13;31310:63;:::i;:::-;31303:70;;31396:60;31449:6;31396:60;:::i;:::-;31386:70;;31242:224;31229:1;31226;31222:9;31217:14;;31182:284;;;31186:14;31482:3;31475:10;;30883:608;;;30759:732;;;;:::o;31497:831::-;31760:4;31798:3;31787:9;31783:19;31775:27;;31812:71;31880:1;31869:9;31865:17;31856:6;31812:71;:::i;:::-;31893:80;31969:2;31958:9;31954:18;31945:6;31893:80;:::i;:::-;32020:9;32014:4;32010:20;32005:2;31994:9;31990:18;31983:48;32048:108;32151:4;32142:6;32048:108;:::i;:::-;32040:116;;32166:72;32234:2;32223:9;32219:18;32210:6;32166:72;:::i;:::-;32248:73;32316:3;32305:9;32301:19;32292:6;32248:73;:::i;:::-;31497:831;;;;;;;;:::o

Swarm Source

ipfs://d4e8de30a91a901e3eb6f58e853fcd3582ac00a31aa9633e7008e2bddff04c16

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.