ETH Price: $3,298.39 (-3.31%)
Gas: 20 Gwei

Contract

0x8DDa6CFD3170D467f825a153B8234f732D665D3e
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Manual Send188736542023-12-27 1:12:23189 days ago1703639543IN
0x8DDa6CFD...32D665D3e
0 ETH0.0004428313.46216544
Approve188736492023-12-27 1:11:23189 days ago1703639483IN
0x8DDa6CFD...32D665D3e
0 ETH0.0007540816.19010343
Approve184724302023-10-31 20:16:11245 days ago1698783371IN
0x8DDa6CFD...32D665D3e
0 ETH0.0008232233.88749259
Approve184320652023-10-26 4:39:35251 days ago1698295175IN
0x8DDa6CFD...32D665D3e
0 ETH0.0010102621.71814781
Approve184320462023-10-26 4:35:35251 days ago1698294935IN
0x8DDa6CFD...32D665D3e
0 ETH0.0009047319.57589542
Approve184315552023-10-26 2:56:59251 days ago1698289019IN
0x8DDa6CFD...32D665D3e
0 ETH0.0010963123.69022459
Approve184314812023-10-26 2:42:11251 days ago1698288131IN
0x8DDa6CFD...32D665D3e
0 ETH0.0011864125.47214985
Manual Swap184314552023-10-26 2:36:59251 days ago1698287819IN
0x8DDa6CFD...32D665D3e
0 ETH0.0031582520.48993217
Approve184314512023-10-26 2:36:11251 days ago1698287771IN
0x8DDa6CFD...32D665D3e
0 ETH0.0009632620.84219299
Approve184314422023-10-26 2:34:23251 days ago1698287663IN
0x8DDa6CFD...32D665D3e
0 ETH0.000969120.96852222
Approve184314342023-10-26 2:32:47251 days ago1698287567IN
0x8DDa6CFD...32D665D3e
0 ETH0.0010538822.8029571
Approve184314262023-10-26 2:31:11251 days ago1698287471IN
0x8DDa6CFD...32D665D3e
0 ETH0.0010113221.88213881
Approve184313982023-10-26 2:25:35251 days ago1698287135IN
0x8DDa6CFD...32D665D3e
0 ETH0.0011344924.35747943
Approve184313692023-10-26 2:19:35251 days ago1698286775IN
0x8DDa6CFD...32D665D3e
0 ETH0.00110823.81928512
Approve184313692023-10-26 2:19:35251 days ago1698286775IN
0x8DDa6CFD...32D665D3e
0 ETH0.0009739921.07433463
Approve184313602023-10-26 2:17:47251 days ago1698286667IN
0x8DDa6CFD...32D665D3e
0 ETH0.0011969425.69818189
Approve184313492023-10-26 2:15:35251 days ago1698286535IN
0x8DDa6CFD...32D665D3e
0 ETH0.0010571722.69740973
Renounce Ownersh...184313332023-10-26 2:12:23251 days ago1698286343IN
0x8DDa6CFD...32D665D3e
0 ETH0.0005765824.73137803
Remove Limits184313312023-10-26 2:11:59251 days ago1698286319IN
0x8DDa6CFD...32D665D3e
0 ETH0.0010168224.92706107
Approve184313142023-10-26 2:08:35251 days ago1698286115IN
0x8DDa6CFD...32D665D3e
0 ETH0.0014238630.7762233
Approve184313142023-10-26 2:08:35251 days ago1698286115IN
0x8DDa6CFD...32D665D3e
0 ETH0.0015680733.6662233
Approve184313142023-10-26 2:08:35251 days ago1698286115IN
0x8DDa6CFD...32D665D3e
0 ETH0.0015680733.6662233
Approve184313142023-10-26 2:08:35251 days ago1698286115IN
0x8DDa6CFD...32D665D3e
0 ETH0.0015680733.6662233
Approve184313132023-10-26 2:08:23251 days ago1698286103IN
0x8DDa6CFD...32D665D3e
0 ETH0.0015680433.66572473
Approve184313132023-10-26 2:08:23251 days ago1698286103IN
0x8DDa6CFD...32D665D3e
0 ETH0.0015680433.66572473
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
188736542023-12-27 1:12:23189 days ago1703639543
0x8DDa6CFD...32D665D3e
0.00841892 ETH
188736522023-12-27 1:11:59189 days ago1703639519
0x8DDa6CFD...32D665D3e
0.00393881 ETH
184315562023-10-26 2:57:11251 days ago1698289031
0x8DDa6CFD...32D665D3e
0.0044801 ETH
184314552023-10-26 2:36:59251 days ago1698287819
0x8DDa6CFD...32D665D3e
0.46406764 ETH
184314552023-10-26 2:36:59251 days ago1698287819
0x8DDa6CFD...32D665D3e
0.46406764 ETH
184314532023-10-26 2:36:35251 days ago1698287795
0x8DDa6CFD...32D665D3e
0.05305802 ETH
184314532023-10-26 2:36:35251 days ago1698287795
0x8DDa6CFD...32D665D3e
0.02514274 ETH
184314462023-10-26 2:35:11251 days ago1698287711
0x8DDa6CFD...32D665D3e
0.02791527 ETH
184314432023-10-26 2:34:35251 days ago1698287675
0x8DDa6CFD...32D665D3e
0.03043971 ETH
184314432023-10-26 2:34:35251 days ago1698287675
0x8DDa6CFD...32D665D3e
0.03043971 ETH
184314382023-10-26 2:33:35251 days ago1698287615
0x8DDa6CFD...32D665D3e
0.03450322 ETH
184314382023-10-26 2:33:35251 days ago1698287615
0x8DDa6CFD...32D665D3e
0.03450322 ETH
184314332023-10-26 2:32:35251 days ago1698287555
0x8DDa6CFD...32D665D3e
0.03859257 ETH
184314332023-10-26 2:32:35251 days ago1698287555
0x8DDa6CFD...32D665D3e
0.03859257 ETH
184314302023-10-26 2:31:59251 days ago1698287519
0x8DDa6CFD...32D665D3e
0.04444669 ETH
184314302023-10-26 2:31:59251 days ago1698287519
0x8DDa6CFD...32D665D3e
0.04444669 ETH
184313812023-10-26 2:21:59251 days ago1698286919
0x8DDa6CFD...32D665D3e
0.04052175 ETH
184313812023-10-26 2:21:59251 days ago1698286919
0x8DDa6CFD...32D665D3e
0.04052175 ETH
184313762023-10-26 2:20:59251 days ago1698286859
0x8DDa6CFD...32D665D3e
0.04563498 ETH
184313762023-10-26 2:20:59251 days ago1698286859
0x8DDa6CFD...32D665D3e
0.04563498 ETH
184313692023-10-26 2:19:35251 days ago1698286775
0x8DDa6CFD...32D665D3e
0.05111022 ETH
184313692023-10-26 2:19:35251 days ago1698286775
0x8DDa6CFD...32D665D3e
0.05111022 ETH
184313522023-10-26 2:16:11251 days ago1698286571
0x8DDa6CFD...32D665D3e
0.04583862 ETH
184313522023-10-26 2:16:11251 days ago1698286571
0x8DDa6CFD...32D665D3e
0.04583862 ETH
184313482023-10-26 2:15:23251 days ago1698286523
0x8DDa6CFD...32D665D3e
0.05203004 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
zzzjoe

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
/*

Sleepy Joe ($ZZZJOE)

Welcome to Sleepy Joe Coin where politics meets the power of Meme humor. 
$JOE coin smashed over 15mil in its pursuit of crypto domination and shows 
no signs of stopping. Joe Biden, on the other hand never really got started 
and has been asleep for almost 4 years of his presidency. In this digital 
realm, we bring a humorous, but very real twist to the political landscape.
 Dive into the world of nursing homes, sniffing strangers, and crypto 
 innovation, where 'Sleepy Joe' takes a front-row seat. As the entire 
 world shakes their head in a collective WTF, Join our 'Sleepy Joe Coin' 
 community and voice your honest opinion about Grandpa Joe and his 
 inability to complete a full sentence. Let Sleepy Joe Coin serve as 
 a reminder that laughing at Joe Biden and crypto go hand in hand!"
                    
This is sure to be a Sleeper Hit!😴

Website : https://sleepyjoecoin.xyz

TG Entry : https://t.me/sleepyjoeeth

Twitter : https://x.com/sleepyjoe_erc
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract zzzjoe is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 25;
    uint256 private _initialSellTax = 25;
    uint256 private _reduceBuyTaxAt = 30;

    uint256 private _initialBuyTax2Time = 5;
    uint256 private _initialSellTax2Time = 10;
    uint256 private _reduceBuyTaxAt2Time = 20;

    uint256 private _finalBuyTax = 1;
    uint256 private _finalSellTax = 1;
    uint256 private _reduceSellTaxAt = 1;

    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Sleepy Joe";
    string private constant _symbol = unicode"ZZZJOE";

    uint256 public _maxTxAmount =  2 * (_tTotal/100);
    uint256 public _maxWalletSize =  2 * (_tTotal/100);
    uint256 public _taxSwapThreshold=  2 * (_tTotal/1000);
    uint256 public _maxTaxSwap=  10 * (_tTotal/1000);

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul(_taxBuy()).div(100);

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

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_taxSell()).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 30000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

    function _taxBuy() private view returns (uint256) {
        if(_buyCount <= _reduceBuyTaxAt){
            return _initialBuyTax;
        }
        if(_buyCount > _reduceBuyTaxAt && _buyCount <= _reduceBuyTaxAt2Time){
            return _initialBuyTax2Time;
        }
         return _finalBuyTax;
    }

    function _taxSell() private view returns (uint256) {
        if(_buyCount <= _reduceBuyTaxAt){
            return _initialSellTax;
        }
        if(_buyCount > _reduceBuyTaxAt && _buyCount <= _reduceBuyTaxAt2Time){
            return _initialSellTax2Time;
        }
         return _finalBuyTax;
    }

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

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

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

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


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

    receive() external payable {}

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff19166001908117825560196006819055600755601e60088190556009928355600a8080556014600b55600c839055600d839055600e92909255600f555f6010556064916200005891620003d6565b6200006890633b9aca00620003ed565b62000074919062000407565b62000081906002620003ed565b6011556064620000946009600a620003d6565b620000a490633b9aca00620003ed565b620000b0919062000407565b620000bd906002620003ed565b6012556103e8620000d16009600a620003d6565b620000e190633b9aca00620003ed565b620000ed919062000407565b620000fa906002620003ed565b6013556103e86200010e6009600a620003d6565b6200011e90633b9aca00620003ed565b6200012a919062000407565b6200013790600a620003ed565b6014556016805461ffff60a81b1916905534801562000154575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b031916740cf488dcc98771f334c784ad704e040e552128a900179055620001cb6009600a620003d6565b620001db90633b9aca00620003ed565b335f908152600160208190526040822092909255600390620002045f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620002673390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002a06009600a620003d6565b620002b090633b9aca00620003ed565b60405190815260200160405180910390a362000427565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200031b57815f1904821115620002ff57620002ff620002c7565b808516156200030d57918102915b93841c9390800290620002e0565b509250929050565b5f826200033357506001620003d0565b816200034157505f620003d0565b81600181146200035a5760028114620003655762000385565b6001915050620003d0565b60ff841115620003795762000379620002c7565b50506001821b620003d0565b5060208310610133831016604e8410600b8410161715620003aa575081810a620003d0565b620003b68383620002db565b805f1904821115620003cc57620003cc620002c7565b0290505b92915050565b5f620003e660ff84168362000323565b9392505050565b8082028115828204841417620003d057620003d0620002c7565b5f826200042257634e487b7160e01b5f52601260045260245ffd5b500490565b61187e80620004355f395ff3fe60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed1461031c578063c876d0b914610331578063c9567bf91461034a578063dd62ed3e1461035e578063f4293890146103a2575f80fd5b80637d1db4a51461027f5780638da5cb5b146102945780638f9a55c0146102ba57806395d89b41146102cf578063a9059cbb146102fd575f80fd5b8063313ce567116100e3578063313ce567146101f257806351bc3c851461020d57806370a0823114610223578063715018a614610257578063751039fc1461026b575f80fd5b806306fdde0314610129578063095ea7b31461016d5780630faee56f1461019c57806318160ddd146101bf57806323b872dd146101d3575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600a815269536c65657079204a6f6560b01b60208201525b6040516101649190611474565b60405180910390f35b348015610178575f80fd5b5061018c6101873660046114d3565b6103b6565b6040519015158152602001610164565b3480156101a7575f80fd5b506101b160145481565b604051908152602001610164565b3480156101ca575f80fd5b506101b16103cc565b3480156101de575f80fd5b5061018c6101ed3660046114fd565b6103ec565b3480156101fd575f80fd5b5060405160098152602001610164565b348015610218575f80fd5b50610221610453565b005b34801561022e575f80fd5b506101b161023d36600461153b565b6001600160a01b03165f9081526001602052604090205490565b348015610262575f80fd5b506102216104a9565b348015610276575f80fd5b50610221610523565b34801561028a575f80fd5b506101b160115481565b34801561029f575f80fd5b505f546040516001600160a01b039091168152602001610164565b3480156102c5575f80fd5b506101b160125481565b3480156102da575f80fd5b506040805180820190915260068152655a5a5a4a4f4560d01b6020820152610157565b348015610308575f80fd5b5061018c6103173660046114d3565b6105de565b348015610327575f80fd5b506101b160135481565b34801561033c575f80fd5b5060055461018c9060ff1681565b348015610355575f80fd5b506102216105ea565b348015610369575f80fd5b506101b1610378366004611556565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103ad575f80fd5b50610221610993565b5f6103c23384846109a6565b5060015b92915050565b5f6103d96009600a611681565b6103e790633b9aca0061168f565b905090565b5f6103f8848484610ac9565b610449843361044485604051806060016040528060288152602001611821602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611079565b6109a6565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b031614610477575f80fd5b305f90815260016020526040902054801561049557610495816110b1565b4780156104a5576104a581611221565b5050565b5f546001600160a01b031633146104db5760405162461bcd60e51b81526004016104d2906116a6565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461054c5760405162461bcd60e51b81526004016104d2906116a6565b6105586009600a611681565b61056690633b9aca0061168f565b6011556105756009600a611681565b61058390633b9aca0061168f565b6012556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105bd6009600a611681565b6105cb90633b9aca0061168f565b60405190815260200160405180910390a1565b5f6103c2338484610ac9565b5f546001600160a01b031633146106135760405162461bcd60e51b81526004016104d2906116a6565b601654600160a01b900460ff161561066d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d2565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106b69030906106a86009600a611681565b61044490633b9aca0061168f565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610706573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072a91906116db565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610789573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ad91906116db565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081b91906116db565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d7194730610862816001600160a01b03165f9081526001602052604090205490565b5f806108755f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108db573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061090091906116f6565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610955573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109799190611721565b506016805462ff00ff60a01b19166201000160a01b179055565b4780156109a3576109a381611221565b50565b6001600160a01b038316610a085760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d2565b6001600160a01b038216610a695760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d2565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b2d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d2565b6001600160a01b038216610b8f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d2565b5f8111610bf05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d2565b5f80546001600160a01b03858116911614801590610c1b57505f546001600160a01b03848116911614155b15610f3c57610c3d6064610c37610c3061125c565b8590611299565b9061131e565b60055490915060ff1615610d23576015546001600160a01b03848116911614801590610c7757506016546001600160a01b03848116911614155b15610d2357325f908152600460205260409020544311610d115760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104d2565b325f9081526004602052604090204390555b6016546001600160a01b038581169116148015610d4e57506015546001600160a01b03848116911614155b8015610d7257506001600160a01b0383165f9081526003602052604090205460ff16155b15610e5857601154821115610dc95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d2565b60125482610deb856001600160a01b03165f9081526001602052604090205490565b610df59190611740565b1115610e435760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d2565b60108054905f610e5283611753565b91905055505b6016546001600160a01b038481169116148015610e7e57506001600160a01b0384163014155b15610e9657610e936064610c37610c3061135f565b90505b305f90815260016020526040902054601654600160a81b900460ff16158015610ecc57506016546001600160a01b038581169116145b8015610ee15750601654600160b01b900460ff165b8015610eee575060135481115b8015610efd5750600f54601054115b15610f3a57610f1f610f1a84610f1584601454611395565b611395565b6110b1565b47666a94d74f430000811115610f3857610f3847611221565b505b505b8015610fb457305f90815260016020526040902054610f5b90826113a9565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fab9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610fd69083611407565b6001600160a01b0385165f90815260016020526040902055611019610ffb8383611407565b6001600160a01b0385165f90815260016020526040902054906113a9565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110628585611407565b60405190815260200160405180910390a350505050565b5f818484111561109c5760405162461bcd60e51b81526004016104d29190611474565b505f6110a8848661176b565b95945050505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110f7576110f761177e565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561114e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117291906116db565b816001815181106111855761118561177e565b6001600160a01b0392831660209182029290920101526015546111ab91309116846109a6565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906111e39085905f90869030904290600401611792565b5f604051808303815f87803b1580156111fa575f80fd5b505af115801561120c573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104a5573d5f803e3d5ffd5b5f6008546010541161126f575060065490565b6008546010541180156112865750600b5460105411155b15611292575060095490565b50600c5490565b5f825f036112a857505f6103c6565b5f6112b3838561168f565b9050826112c08583611801565b146113175760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d2565b9392505050565b5f61131783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611448565b5f60085460105411611372575060075490565b6008546010541180156113895750600b5460105411155b156112925750600a5490565b5f8183116113a35782611317565b50919050565b5f806113b58385611740565b9050838110156113175760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d2565b5f61131783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611079565b5f81836114685760405162461bcd60e51b81526004016104d29190611474565b505f6110a88486611801565b5f6020808352835180828501525f5b8181101561149f57858101830151858201604001528201611483565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109a3575f80fd5b5f80604083850312156114e4575f80fd5b82356114ef816114bf565b946020939093013593505050565b5f805f6060848603121561150f575f80fd5b833561151a816114bf565b9250602084013561152a816114bf565b929592945050506040919091013590565b5f6020828403121561154b575f80fd5b8135611317816114bf565b5f8060408385031215611567575f80fd5b8235611572816114bf565b91506020830135611582816114bf565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156115db57815f19048211156115c1576115c161158d565b808516156115ce57918102915b93841c93908002906115a6565b509250929050565b5f826115f1575060016103c6565b816115fd57505f6103c6565b8160018114611613576002811461161d57611639565b60019150506103c6565b60ff84111561162e5761162e61158d565b50506001821b6103c6565b5060208310610133831016604e8410600b841016171561165c575081810a6103c6565b61166683836115a1565b805f19048211156116795761167961158d565b029392505050565b5f61131760ff8416836115e3565b80820281158282048414176103c6576103c661158d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156116eb575f80fd5b8151611317816114bf565b5f805f60608486031215611708575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611731575f80fd5b81518015158114611317575f80fd5b808201808211156103c6576103c661158d565b5f600182016117645761176461158d565b5060010190565b818103818111156103c6576103c661158d565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117e05784516001600160a01b0316835293830193918301916001016117bb565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261181b57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d902165ed548187b3d80678e3f863132951fc9a3141ccde843cb48a4468e742e64736f6c63430008140033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed1461031c578063c876d0b914610331578063c9567bf91461034a578063dd62ed3e1461035e578063f4293890146103a2575f80fd5b80637d1db4a51461027f5780638da5cb5b146102945780638f9a55c0146102ba57806395d89b41146102cf578063a9059cbb146102fd575f80fd5b8063313ce567116100e3578063313ce567146101f257806351bc3c851461020d57806370a0823114610223578063715018a614610257578063751039fc1461026b575f80fd5b806306fdde0314610129578063095ea7b31461016d5780630faee56f1461019c57806318160ddd146101bf57806323b872dd146101d3575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600a815269536c65657079204a6f6560b01b60208201525b6040516101649190611474565b60405180910390f35b348015610178575f80fd5b5061018c6101873660046114d3565b6103b6565b6040519015158152602001610164565b3480156101a7575f80fd5b506101b160145481565b604051908152602001610164565b3480156101ca575f80fd5b506101b16103cc565b3480156101de575f80fd5b5061018c6101ed3660046114fd565b6103ec565b3480156101fd575f80fd5b5060405160098152602001610164565b348015610218575f80fd5b50610221610453565b005b34801561022e575f80fd5b506101b161023d36600461153b565b6001600160a01b03165f9081526001602052604090205490565b348015610262575f80fd5b506102216104a9565b348015610276575f80fd5b50610221610523565b34801561028a575f80fd5b506101b160115481565b34801561029f575f80fd5b505f546040516001600160a01b039091168152602001610164565b3480156102c5575f80fd5b506101b160125481565b3480156102da575f80fd5b506040805180820190915260068152655a5a5a4a4f4560d01b6020820152610157565b348015610308575f80fd5b5061018c6103173660046114d3565b6105de565b348015610327575f80fd5b506101b160135481565b34801561033c575f80fd5b5060055461018c9060ff1681565b348015610355575f80fd5b506102216105ea565b348015610369575f80fd5b506101b1610378366004611556565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103ad575f80fd5b50610221610993565b5f6103c23384846109a6565b5060015b92915050565b5f6103d96009600a611681565b6103e790633b9aca0061168f565b905090565b5f6103f8848484610ac9565b610449843361044485604051806060016040528060288152602001611821602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611079565b6109a6565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b031614610477575f80fd5b305f90815260016020526040902054801561049557610495816110b1565b4780156104a5576104a581611221565b5050565b5f546001600160a01b031633146104db5760405162461bcd60e51b81526004016104d2906116a6565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461054c5760405162461bcd60e51b81526004016104d2906116a6565b6105586009600a611681565b61056690633b9aca0061168f565b6011556105756009600a611681565b61058390633b9aca0061168f565b6012556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105bd6009600a611681565b6105cb90633b9aca0061168f565b60405190815260200160405180910390a1565b5f6103c2338484610ac9565b5f546001600160a01b031633146106135760405162461bcd60e51b81526004016104d2906116a6565b601654600160a01b900460ff161561066d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d2565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106b69030906106a86009600a611681565b61044490633b9aca0061168f565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610706573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072a91906116db565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610789573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ad91906116db565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081b91906116db565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d7194730610862816001600160a01b03165f9081526001602052604090205490565b5f806108755f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108db573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061090091906116f6565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610955573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109799190611721565b506016805462ff00ff60a01b19166201000160a01b179055565b4780156109a3576109a381611221565b50565b6001600160a01b038316610a085760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d2565b6001600160a01b038216610a695760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d2565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b2d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d2565b6001600160a01b038216610b8f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d2565b5f8111610bf05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d2565b5f80546001600160a01b03858116911614801590610c1b57505f546001600160a01b03848116911614155b15610f3c57610c3d6064610c37610c3061125c565b8590611299565b9061131e565b60055490915060ff1615610d23576015546001600160a01b03848116911614801590610c7757506016546001600160a01b03848116911614155b15610d2357325f908152600460205260409020544311610d115760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104d2565b325f9081526004602052604090204390555b6016546001600160a01b038581169116148015610d4e57506015546001600160a01b03848116911614155b8015610d7257506001600160a01b0383165f9081526003602052604090205460ff16155b15610e5857601154821115610dc95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d2565b60125482610deb856001600160a01b03165f9081526001602052604090205490565b610df59190611740565b1115610e435760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d2565b60108054905f610e5283611753565b91905055505b6016546001600160a01b038481169116148015610e7e57506001600160a01b0384163014155b15610e9657610e936064610c37610c3061135f565b90505b305f90815260016020526040902054601654600160a81b900460ff16158015610ecc57506016546001600160a01b038581169116145b8015610ee15750601654600160b01b900460ff165b8015610eee575060135481115b8015610efd5750600f54601054115b15610f3a57610f1f610f1a84610f1584601454611395565b611395565b6110b1565b47666a94d74f430000811115610f3857610f3847611221565b505b505b8015610fb457305f90815260016020526040902054610f5b90826113a9565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fab9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610fd69083611407565b6001600160a01b0385165f90815260016020526040902055611019610ffb8383611407565b6001600160a01b0385165f90815260016020526040902054906113a9565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110628585611407565b60405190815260200160405180910390a350505050565b5f818484111561109c5760405162461bcd60e51b81526004016104d29190611474565b505f6110a8848661176b565b95945050505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110f7576110f761177e565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561114e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117291906116db565b816001815181106111855761118561177e565b6001600160a01b0392831660209182029290920101526015546111ab91309116846109a6565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906111e39085905f90869030904290600401611792565b5f604051808303815f87803b1580156111fa575f80fd5b505af115801561120c573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104a5573d5f803e3d5ffd5b5f6008546010541161126f575060065490565b6008546010541180156112865750600b5460105411155b15611292575060095490565b50600c5490565b5f825f036112a857505f6103c6565b5f6112b3838561168f565b9050826112c08583611801565b146113175760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d2565b9392505050565b5f61131783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611448565b5f60085460105411611372575060075490565b6008546010541180156113895750600b5460105411155b156112925750600a5490565b5f8183116113a35782611317565b50919050565b5f806113b58385611740565b9050838110156113175760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d2565b5f61131783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611079565b5f81836114685760405162461bcd60e51b81526004016104d29190611474565b505f6110a88486611801565b5f6020808352835180828501525f5b8181101561149f57858101830151858201604001528201611483565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109a3575f80fd5b5f80604083850312156114e4575f80fd5b82356114ef816114bf565b946020939093013593505050565b5f805f6060848603121561150f575f80fd5b833561151a816114bf565b9250602084013561152a816114bf565b929592945050506040919091013590565b5f6020828403121561154b575f80fd5b8135611317816114bf565b5f8060408385031215611567575f80fd5b8235611572816114bf565b91506020830135611582816114bf565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156115db57815f19048211156115c1576115c161158d565b808516156115ce57918102915b93841c93908002906115a6565b509250929050565b5f826115f1575060016103c6565b816115fd57505f6103c6565b8160018114611613576002811461161d57611639565b60019150506103c6565b60ff84111561162e5761162e61158d565b50506001821b6103c6565b5060208310610133831016604e8410600b841016171561165c575081810a6103c6565b61166683836115a1565b805f19048211156116795761167961158d565b029392505050565b5f61131760ff8416836115e3565b80820281158282048414176103c6576103c661158d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156116eb575f80fd5b8151611317816114bf565b5f805f60608486031215611708575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611731575f80fd5b81518015158114611317575f80fd5b808201808211156103c6576103c661158d565b5f600182016117645761176461158d565b5060010190565b818103818111156103c6576103c661158d565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117e05784516001600160a01b0316835293830193918301916001016117bb565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261181b57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d902165ed548187b3d80678e3f863132951fc9a3141ccde843cb48a4468e742e64736f6c63430008140033

Deployed Bytecode Sourcemap

4502:8838:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6562:83;;;;;;;;;;-1:-1:-1;6632:5:0;;;;;;;;;;;;-1:-1:-1;;;6632:5:0;;;;6562:83;;;;;;;:::i;:::-;;;;;;;;7395:161;;;;;;;;;;-1:-1:-1;7395:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7395:161:0;1023:187:1;5811:48:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5811:48:0;1215:177:1;6839:95:0;;;;;;;;;;;;;:::i;7564:313::-;;;;;;;;;;-1:-1:-1;7564:313:0;;;;;:::i;:::-;;:::i;6748:83::-;;;;;;;;;;-1:-1:-1;6748:83:0;;5447:1;2000:36:1;;1988:2;1973:18;6748:83:0;1858:184:1;12815:348:0;;;;;;;;;;;;;:::i;:::-;;6942:119;;;;;;;;;;-1:-1:-1;6942:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7035:18:0;7008:7;7035:18;;;:9;:18;;;;;;;6942:119;3583:148;;;;;;;;;;;;;:::i;11793:196::-;;;;;;;;;;;;;:::i;5639:48::-;;;;;;;;;;;;;;;;3369:79;;;;;;;;;;-1:-1:-1;3407:7:0;3434:6;3369:79;;-1:-1:-1;;;;;3434:6:0;;;2445:51:1;;2433:2;2418:18;3369:79:0;2299:203:1;5694:50:0;;;;;;;;;;;;;;;;6653:87;;;;;;;;;;-1:-1:-1;6725:7:0;;;;;;;;;;;;-1:-1:-1;;;6725:7:0;;;;6653:87;;7069:167;;;;;;;;;;-1:-1:-1;7069:167:0;;;;;:::i;:::-;;:::i;5751:53::-;;;;;;;;;;;;;;;;4845:39;;;;;;;;;;-1:-1:-1;4845:39:0;;;;;;;;12099:671;;;;;;;;;;;;;:::i;7244:143::-;;;;;;;;;;-1:-1:-1;7244:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7352:18:0;;;7325:7;7352:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7244:143;13172:165;;;;;;;;;;;;;:::i;7395:161::-;7470:4;7487:39;1204:10;7510:7;7519:6;7487:8;:39::i;:::-;-1:-1:-1;7544:4:0;7395:161;;;;;:::o;6839:95::-;6892:7;5503:13;5447:1;5503:2;:13;:::i;:::-;5490:26;;:10;:26;:::i;:::-;6912:14;;6839:95;:::o;7564:313::-;7662:4;7679:36;7689:6;7697:9;7708:6;7679:9;:36::i;:::-;7726:121;7735:6;1204:10;7757:89;7795:6;7757:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7757:19:0;;;;;;:11;:19;;;;;;;;1204:10;7757:33;;;;;;;;;;:37;:89::i;:::-;7726:8;:121::i;:::-;-1:-1:-1;7865:4:0;7564:313;;;;;:::o;12815:348::-;12879:10;;;;;-1:-1:-1;;;;;12879:10:0;1204;-1:-1:-1;;;;;12865:24:0;;12857:33;;;;;;12940:4;12901:20;7035:18;;;:9;:18;;;;;;12960:14;;12957:73;;12988:30;13005:12;12988:16;:30::i;:::-;13059:21;13094:12;;13091:65;;13120:24;13133:10;13120:12;:24::i;:::-;12846:317;;12815:348::o;3583:148::-;3496:6;;-1:-1:-1;;;;;3496:6:0;1204:10;3496:22;3488:67;;;;-1:-1:-1;;;3488:67:0;;;;;;;:::i;:::-;;;;;;;;;3690:1:::1;3674:6:::0;;3653:40:::1;::::0;-1:-1:-1;;;;;3674:6:0;;::::1;::::0;3653:40:::1;::::0;3690:1;;3653:40:::1;3721:1;3704:19:::0;;-1:-1:-1;;;;;;3704:19:0::1;::::0;;3583:148::o;11793:196::-;3496:6;;-1:-1:-1;;;;;3496:6:0;1204:10;3496:22;3488:67;;;;-1:-1:-1;;;3488:67:0;;;;;;;:::i;:::-;5503:13:::1;5447:1;5503:2;:13;:::i;:::-;5490:26;::::0;:10:::1;:26;:::i;:::-;11846:12;:22:::0;5503:13:::1;5447:1;5503:2;:13;:::i;:::-;5490:26;::::0;:10:::1;:26;:::i;:::-;11879:14;:22:::0;11912:20:::1;:26:::0;;-1:-1:-1;;11912:26:0::1;::::0;;11954:27:::1;5503:13;5447:1;5503:2;:13;:::i;:::-;5490:26;::::0;:10:::1;:26;:::i;:::-;11954:27;::::0;1361:25:1;;;1349:2;1334:18;11954:27:0::1;;;;;;;11793:196::o:0;7069:167::-;7147:4;7164:42;1204:10;7188:9;7199:6;7164:9;:42::i;12099:671::-;3496:6;;-1:-1:-1;;;;;3496:6:0;1204:10;3496:22;3488:67;;;;-1:-1:-1;;;3488:67:0;;;;;;;:::i;:::-;12163:11:::1;::::0;-1:-1:-1;;;12163:11:0;::::1;;;12162:12;12154:47;;;::::0;-1:-1:-1;;;12154:47:0;;5151:2:1;12154:47:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;12154:47:0::1;4949:347:1::0;12154:47:0::1;12212:15;:80:::0;;-1:-1:-1;;;;;;12212:80:0::1;12249:42;12212:80:::0;;::::1;::::0;;;12303:58:::1;::::0;12320:4:::1;::::0;5503:13:::1;5447:1;5503:2;:13;:::i;:::-;5490:26;::::0;:10:::1;:26;:::i;12303:58::-;12406:15;;;;;;;;;-1:-1:-1::0;;;;;12406:15:0::1;-1:-1:-1::0;;;;;12406:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12388:55:0::1;;12452:4;12459:15;;;;;;;;;-1:-1:-1::0;;;;;12459:15:0::1;-1:-1:-1::0;;;;;12459:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12388:94;::::0;-1:-1:-1;;;;;;12388:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5787:15:1;;;12388:94:0::1;::::0;::::1;5769:34:1::0;5839:15;;5819:18;;;5812:43;5704:18;;12388:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12372:13;:110:::0;;-1:-1:-1;;;;;12372:110:0;;::::1;-1:-1:-1::0;;;;;;12372:110:0;;::::1;;::::0;;12493:15:::1;::::0;::::1;:31;12532:21;12563:4;12569:24;12563:4:::0;-1:-1:-1;;;;;7035:18:0;7008:7;7035:18;;;:9;:18;;;;;;;6942:119;12569:24:::1;12594:1;12596::::0;12598:7:::1;3407::::0;3434:6;-1:-1:-1;;;;;3434:6:0;;3369:79;12598:7:::1;12493:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12493:129:0;;;-1:-1:-1;;;;;6225:15:1;;;12493:129:0::1;::::0;::::1;6207:34:1::0;6257:18;;;6250:34;;;;6300:18;;;6293:34;;;;6343:18;;;6336:34;6407:15;;;6386:19;;;6379:44;12606:15:0::1;6439:19:1::0;;;6432:35;6141:19;;12493:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12640:13:0::1;::::0;12671:15:::1;::::0;12633:71:::1;::::0;-1:-1:-1;;;12633:71:0;;-1:-1:-1;;;;;12671:15:0;;::::1;12633:71;::::0;::::1;6963:51:1::0;-1:-1:-1;;7030:18:1;;;7023:34;12640:13:0;::::1;::::0;-1:-1:-1;12633:29:0::1;::::0;6936:18:1;;12633:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12715:11:0::1;:18:::0;;-1:-1:-1;;;;12744:18:0;-1:-1:-1;;;12744:18:0;;;12099:671::o;13172:165::-;13233:21;13268:12;;13265:65;;13294:24;13307:10;13294:12;:24::i;:::-;13203:134;13172:165::o;7885:335::-;-1:-1:-1;;;;;7978:19:0;;7970:68;;;;-1:-1:-1;;;7970:68:0;;7552:2:1;7970:68:0;;;7534:21:1;7591:2;7571:18;;;7564:30;7630:34;7610:18;;;7603:62;-1:-1:-1;;;7681:18:1;;;7674:34;7725:19;;7970:68:0;7350:400:1;7970:68:0;-1:-1:-1;;;;;8057:21:0;;8049:68;;;;-1:-1:-1;;;8049:68:0;;7957:2:1;8049:68:0;;;7939:21:1;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;-1:-1:-1;;;8086:18:1;;;8079:32;8128:19;;8049:68:0;7755:398:1;8049:68:0;-1:-1:-1;;;;;8128:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8180:32;;1361:25:1;;;8180:32:0;;1334:18:1;8180:32:0;;;;;;;7885:335;;;:::o;8228:2321::-;-1:-1:-1;;;;;8316:18:0;;8308:68;;;;-1:-1:-1;;;8308:68:0;;8360:2:1;8308:68:0;;;8342:21:1;8399:2;8379:18;;;8372:30;8438:34;8418:18;;;8411:62;-1:-1:-1;;;8489:18:1;;;8482:35;8534:19;;8308:68:0;8158:401:1;8308:68:0;-1:-1:-1;;;;;8395:16:0;;8387:64;;;;-1:-1:-1;;;8387:64:0;;8766:2:1;8387:64:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:33;8938:19;;8387:64:0;8564:399:1;8387:64:0;8479:1;8470:6;:10;8462:64;;;;-1:-1:-1;;;8462:64:0;;9170:2:1;8462:64:0;;;9152:21:1;9209:2;9189:18;;;9182:30;9248:34;9228:18;;;9221:62;-1:-1:-1;;;9299:18:1;;;9292:39;9348:19;;8462:64:0;8968:405:1;8462:64:0;8537:17;3434:6;;-1:-1:-1;;;;;8571:15:0;;;3434:6;;8571:15;;;;:32;;-1:-1:-1;3407:7:0;3434:6;-1:-1:-1;;;;;8590:13:0;;;3434:6;;8590:13;;8571:32;8567:1626;;;8632:30;8658:3;8632:21;8643:9;:7;:9::i;:::-;8632:6;;:10;:21::i;:::-;:25;;:30::i;:::-;8683:20;;8620:42;;-1:-1:-1;8683:20:0;;8679:509;;;8744:15;;-1:-1:-1;;;;;8730:30:0;;;8744:15;;8730:30;;;;:62;;-1:-1:-1;8778:13:0;;-1:-1:-1;;;;;8764:28:0;;;8778:13;;8764:28;;8730:62;8726:445;;;8885:9;8856:39;;;;:28;:39;;;;;;8929:12;-1:-1:-1;8820:250:0;;;;-1:-1:-1;;;8820:250:0;;9580:2:1;8820:250:0;;;9562:21:1;9619:2;9599:18;;;9592:30;9658:34;9638:18;;;9631:62;9729:34;9709:18;;;9702:62;-1:-1:-1;;;9780:19:1;;;9773:40;9830:19;;8820:250:0;9378:477:1;8820:250:0;9124:9;9095:39;;;;:28;:39;;;;;9137:12;9095:54;;8726:445;9216:13;;-1:-1:-1;;;;;9208:21:0;;;9216:13;;9208:21;:55;;;;-1:-1:-1;9247:15:0;;-1:-1:-1;;;;;9233:30:0;;;9247:15;;9233:30;;9208:55;:83;;;;-1:-1:-1;;;;;;9269:22:0;;;;;;:18;:22;;;;;;;;9267:24;9208:83;9204:313;;;9331:12;;9321:6;:22;;9313:60;;;;-1:-1:-1;;;9313:60:0;;10062:2:1;9313:60:0;;;10044:21:1;10101:2;10081:18;;;10074:30;10140:27;10120:18;;;10113:55;10185:18;;9313:60:0;9860:349:1;9313:60:0;9426:14;;9416:6;9400:13;9410:2;-1:-1:-1;;;;;7035:18:0;7008:7;7035:18;;;:9;:18;;;;;;;6942:119;9400:13;:22;;;;:::i;:::-;:40;;9392:79;;;;-1:-1:-1;;;9392:79:0;;10546:2:1;9392:79:0;;;10528:21:1;10585:2;10565:18;;;10558:30;10624:28;10604:18;;;10597:56;10670:18;;9392:79:0;10344:350:1;9392:79:0;9490:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9204:313;9542:13;;-1:-1:-1;;;;;9536:19:0;;;9542:13;;9536:19;:43;;;;-1:-1:-1;;;;;;9559:20:0;;9574:4;9559:20;;9536:43;9533:126;;;9612:31;9639:3;9612:22;9623:10;:8;:10::i;9612:31::-;9600:43;;9533:126;9724:4;9675:28;7035:18;;;:9;:18;;;;;;9750:6;;-1:-1:-1;;;9750:6:0;;;;9749:7;:32;;;;-1:-1:-1;9768:13:0;;-1:-1:-1;;;;;9760:21:0;;;9768:13;;9760:21;9749:32;:47;;;;-1:-1:-1;9785:11:0;;-1:-1:-1;;;9785:11:0;;;;9749:47;:89;;;;;9821:17;;9800:20;:38;9749:89;:121;;;;;9852:18;;9842:9;;:28;9749:121;9745:437;;;9891:67;9908:49;9912:6;9919:37;9923:20;9944:11;;9919:3;:37::i;:::-;9908:3;:49::i;:::-;9891:16;:67::i;:::-;10006:21;10070:17;10049:38;;10046:121;;;10112:35;10125:21;10112:12;:35::i;:::-;9872:310;9745:437;8605:1588;8567:1626;10208:11;;10205:161;;10276:4;10258:24;;;;:9;:24;;;;;;:39;;10287:9;10258:28;:39::i;:::-;10251:4;10233:24;;;;:9;:24;;;;;;;:64;;;;10315:39;;-1:-1:-1;;;;;10315:39:0;;;;;;;10344:9;1361:25:1;;1349:2;1334:18;;1215:177;10315:39:0;;;;;;;;10205:161;-1:-1:-1;;;;;10392:15:0;;;;;;:9;:15;;;;;;:27;;10412:6;10392:19;:27::i;:::-;-1:-1:-1;;;;;10376:15:0;;;;;;:9;:15;;;;;:43;10444:40;10462:21;:6;10473:9;10462:10;:21::i;:::-;-1:-1:-1;;;;;10444:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10430:13:0;;;;;;;:9;:13;;;;;:54;;;;10500:41;;;10519:21;:6;10530:9;10519:10;:21::i;:::-;10500:41;;1361:25:1;;;1349:2;1334:18;10500:41:0;;;;;;;8297:2252;8228:2321;;;:::o;2261:190::-;2347:7;2383:12;2375:6;;;;2367:29;;;;-1:-1:-1;;;2367:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2407:9:0;2419:5;2423:1;2419;:5;:::i;:::-;2407:17;2261:190;-1:-1:-1;;;;;2261:190:0:o;11302:483::-;6141:6;:13;;-1:-1:-1;;;;6141:13:0;-1:-1:-1;;;6141:13:0;;;11404:16:::1;::::0;;11418:1:::1;11404:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11404:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11404:16:0::1;11380:40;;11449:4;11431;11436:1;11431:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11431:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11475:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11475:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11431:7;;11475:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11465:4;11470:1;11465:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11465:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11540:15:::1;::::0;11508:62:::1;::::0;11525:4:::1;::::0;11540:15:::1;11558:11:::0;11508:8:::1;:62::i;:::-;11581:15;::::0;:196:::1;::::0;-1:-1:-1;;;11581:196:0;;-1:-1:-1;;;;;11581:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11662:11;;11581:15:::1;::::0;11704:4;;11731::::1;::::0;11751:15:::1;::::0;11581:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6177:6:0;:14;;-1:-1:-1;;;;6177:14:0;;;-1:-1:-1;;;;11302:483:0:o;11997:92::-;12054:10;;:27;;:10;;;;-1:-1:-1;;;;;12054:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;10557:310;10598:7;10634:15;;10621:9;;:28;10618:80;;-1:-1:-1;10672:14:0;;;10557:310::o;10618:80::-;10723:15;;10711:9;;:27;:64;;;;;10755:20;;10742:9;;:33;;10711:64;10708:121;;;-1:-1:-1;10798:19:0;;;10557:310::o;10708:121::-;-1:-1:-1;10847:12:0;;;10557:310::o;2459:246::-;2517:7;2541:1;2546;2541:6;2537:47;;-1:-1:-1;2571:1:0;2564:8;;2537:47;2594:9;2606:5;2610:1;2606;:5;:::i;:::-;2594:17;-1:-1:-1;2639:1:0;2630:5;2634:1;2594:17;2630:5;:::i;:::-;:10;2622:56;;;;-1:-1:-1;;;2622:56:0;;12645:2:1;2622:56:0;;;12627:21:1;12684:2;12664:18;;;12657:30;12723:34;12703:18;;;12696:62;-1:-1:-1;;;12774:18:1;;;12767:31;12815:19;;2622:56:0;12443:397:1;2622:56:0;2696:1;2459:246;-1:-1:-1;;;2459:246:0:o;2713:132::-;2771:7;2798:39;2802:1;2805;2798:39;;;;;;;;;;;;;;;;;:3;:39::i;10875:313::-;10917:7;10953:15;;10940:9;;:28;10937:81;;-1:-1:-1;10991:15:0;;;10875:313::o;10937:81::-;11043:15;;11031:9;;:27;:64;;;;;11075:20;;11062:9;;:33;;11031:64;11028:122;;;-1:-1:-1;11118:20:0;;;10875:313::o;11196:98::-;11253:7;11280:1;11278;:3;11277:9;;11285:1;11277:9;;;-1:-1:-1;11283:1:0;11196:98;-1:-1:-1;11196:98:0:o;1930:179::-;1988:7;;2020:5;2024:1;2020;:5;:::i;:::-;2008:17;;2049:1;2044;:6;;2036:46;;;;-1:-1:-1;;;2036:46:0;;13047:2:1;2036:46:0;;;13029:21:1;13086:2;13066:18;;;13059:30;13125:29;13105:18;;;13098:57;13172:18;;2036:46:0;12845:351:1;2117:136:0;2175:7;2202:43;2206:1;2209;2202:43;;;;;;;;;;;;;;;;;:3;:43::i;2853:189::-;2939:7;2974:12;2967:5;2959:28;;;;-1:-1:-1;;;2959:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2998:9:0;3010:5;3014:1;3010;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;5301:251::-;5371:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:52;;;5440:1;5437;5430:12;5392:52;5472:9;5466:16;5491:31;5516:5;5491:31;:::i;6478:306::-;6566:6;6574;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6680:9;6674:16;6664:26;;6730:2;6719:9;6715:18;6709:25;6699:35;;6774:2;6763:9;6759:18;6753:25;6743:35;;6478:306;;;;;:::o;7068:277::-;7135:6;7188:2;7176:9;7167:7;7163:23;7159:32;7156:52;;;7204:1;7201;7194:12;7156:52;7236:9;7230:16;7289:5;7282:13;7275:21;7268:5;7265:32;7255:60;;7311:1;7308;7301:12;10214:125;10279:9;;;10300:10;;;10297:36;;;10313:18;;:::i;10699:135::-;10738:3;10759:17;;;10756:43;;10779:18;;:::i;:::-;-1:-1:-1;10826:1:1;10815:13;;10699:135::o;10839:128::-;10906:9;;;10927:11;;;10924:37;;;10941:18;;:::i;11104:127::-;11165:10;11160:3;11156:20;11153:1;11146:31;11196:4;11193:1;11186:15;11220:4;11217:1;11210:15;11236:980;11498:4;11546:3;11535:9;11531:19;11577:6;11566:9;11559:25;11603:2;11641:6;11636:2;11625:9;11621:18;11614:34;11684:3;11679:2;11668:9;11664:18;11657:31;11708:6;11743;11737:13;11774:6;11766;11759:22;11812:3;11801:9;11797:19;11790:26;;11851:2;11843:6;11839:15;11825:29;;11872:1;11882:195;11896:6;11893:1;11890:13;11882:195;;;11961:13;;-1:-1:-1;;;;;11957:39:1;11945:52;;12052:15;;;;12017:12;;;;11993:1;11911:9;11882:195;;;-1:-1:-1;;;;;;;12133:32:1;;;;12128:2;12113:18;;12106:60;-1:-1:-1;;;12197:3:1;12182:19;12175:35;12094:3;11236:980;-1:-1:-1;;;11236:980:1:o;12221:217::-;12261:1;12287;12277:132;;12331:10;12326:3;12322:20;12319:1;12312:31;12366:4;12363:1;12356:15;12394:4;12391:1;12384:15;12277:132;-1:-1:-1;12423:9:1;;12221:217::o

Swarm Source

ipfs://d902165ed548187b3d80678e3f863132951fc9a3141ccde843cb48a4468e742e

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.