ETH Price: $3,487.24 (+0.92%)

Contract

0xe1CeC35f33B7154c60354d7cD736De435aB8076A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve213992122024-12-14 7:18:2310 days ago1734160703IN
0xe1CeC35f...35aB8076A
0 ETH0.0006701714.39106426
Approve213989672024-12-14 6:29:1110 days ago1734157751IN
0xe1CeC35f...35aB8076A
0 ETH0.0004786510.27572178
Approve209168602024-10-07 23:05:5977 days ago1728342359IN
0xe1CeC35f...35aB8076A
0 ETH0.0007259115.58396245
Approve209168392024-10-07 23:01:4777 days ago1728342107IN
0xe1CeC35f...35aB8076A
0 ETH0.0020010775
Approve209168392024-10-07 23:01:4777 days ago1728342107IN
0xe1CeC35f...35aB8076A
0 ETH0.0034935775
Approve209041262024-10-06 4:28:5979 days ago1728188939IN
0xe1CeC35f...35aB8076A
0 ETH0.000194274.1976569
Approve209014552024-10-05 19:33:3580 days ago1728156815IN
0xe1CeC35f...35aB8076A
0 ETH0.000460399.89641016
Approve208243742024-09-25 1:34:4790 days ago1727228087IN
0xe1CeC35f...35aB8076A
0 ETH0.0008526218.30405473
Approve208243692024-09-25 1:33:4790 days ago1727228027IN
0xe1CeC35f...35aB8076A
0 ETH0.000763416.38869039
Approve202821552024-07-11 8:45:47166 days ago1720687547IN
0xe1CeC35f...35aB8076A
0 ETH0.000211164.53330867
Approve201026242024-06-16 6:41:23191 days ago1718520083IN
0xe1CeC35f...35aB8076A
0 ETH0.000375648.06429908
Approve200597992024-06-10 6:59:59197 days ago1718002799IN
0xe1CeC35f...35aB8076A
0 ETH0.000246835.29900558
Approve200596962024-06-10 6:39:23197 days ago1718001563IN
0xe1CeC35f...35aB8076A
0 ETH0.000182373.92023835
Approve199971602024-06-01 13:06:59206 days ago1717247219IN
0xe1CeC35f...35aB8076A
0 ETH0.0005792912.43627411
Approve199857432024-05-30 22:50:11207 days ago1717109411IN
0xe1CeC35f...35aB8076A
0 ETH0.0003617.75993874
Transfer198795312024-05-16 2:22:59222 days ago1715826179IN
0xe1CeC35f...35aB8076A
0 ETH0.000296494.33893049
Approve198729352024-05-15 4:17:11223 days ago1715746631IN
0xe1CeC35f...35aB8076A
0 ETH0.000180863.88779157
Approve198194422024-05-07 16:40:35231 days ago1715100035IN
0xe1CeC35f...35aB8076A
0 ETH0.000391288.4
Approve197459582024-04-27 10:05:47241 days ago1714212347IN
0xe1CeC35f...35aB8076A
0 ETH0.000311776.69325913
Approve197360302024-04-26 0:42:11242 days ago1714092131IN
0xe1CeC35f...35aB8076A
0 ETH0.000352267.56238294
Approve196243642024-04-10 9:33:35258 days ago1712741615IN
0xe1CeC35f...35aB8076A
0 ETH0.0006543414.06558158
Approve195484292024-03-30 18:05:23269 days ago1711821923IN
0xe1CeC35f...35aB8076A
0 ETH0.0009593420.62173607
Transfer195132852024-03-25 18:33:23274 days ago1711391603IN
0xe1CeC35f...35aB8076A
0 ETH0.0028817242.17178979
Approve194803482024-03-21 3:23:59278 days ago1710991439IN
0xe1CeC35f...35aB8076A
0 ETH0.0014109430.29017721
Approve194742212024-03-20 6:46:35279 days ago1710917195IN
0xe1CeC35f...35aB8076A
0 ETH0.001497332.14402346
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
193803272024-03-07 2:31:11292 days ago1709778671
0xe1CeC35f...35aB8076A
0.24773543 ETH
193803272024-03-07 2:31:11292 days ago1709778671
0xe1CeC35f...35aB8076A
0.24773543 ETH
193802882024-03-07 2:23:23292 days ago1709778203
0xe1CeC35f...35aB8076A
0.45095246 ETH
193802882024-03-07 2:23:23292 days ago1709778203
0xe1CeC35f...35aB8076A
0.45095246 ETH
193802852024-03-07 2:22:47292 days ago1709778167
0xe1CeC35f...35aB8076A
0.08324798 ETH
193802852024-03-07 2:22:47292 days ago1709778167
0xe1CeC35f...35aB8076A
0.08324798 ETH
193802712024-03-07 2:19:47292 days ago1709777987
0xe1CeC35f...35aB8076A
0.34933919 ETH
193802712024-03-07 2:19:47292 days ago1709777987
0xe1CeC35f...35aB8076A
0.34933919 ETH
193802672024-03-07 2:18:59292 days ago1709777939
0xe1CeC35f...35aB8076A
0.13866631 ETH
193802672024-03-07 2:18:59292 days ago1709777939
0xe1CeC35f...35aB8076A
0.13866631 ETH
193802572024-03-07 2:16:59292 days ago1709777819
0xe1CeC35f...35aB8076A
0.26573805 ETH
193802572024-03-07 2:16:59292 days ago1709777819
0xe1CeC35f...35aB8076A
0.26573805 ETH
193802492024-03-07 2:15:23292 days ago1709777723
0xe1CeC35f...35aB8076A
0.14761513 ETH
193802492024-03-07 2:15:23292 days ago1709777723
0xe1CeC35f...35aB8076A
0.14761513 ETH
193802452024-03-07 2:14:35292 days ago1709777675
0xe1CeC35f...35aB8076A
0.23204789 ETH
193802452024-03-07 2:14:35292 days ago1709777675
0xe1CeC35f...35aB8076A
0.23204789 ETH
193802262024-03-07 2:10:47292 days ago1709777447
0xe1CeC35f...35aB8076A
0.2934853 ETH
193802262024-03-07 2:10:47292 days ago1709777447
0xe1CeC35f...35aB8076A
0.2934853 ETH
193802052024-03-07 2:06:35292 days ago1709777195
0xe1CeC35f...35aB8076A
0.09893351 ETH
193802052024-03-07 2:06:35292 days ago1709777195
0xe1CeC35f...35aB8076A
0.09893351 ETH
193801722024-03-07 1:59:59292 days ago1709776799
0xe1CeC35f...35aB8076A
0.09136269 ETH
193801722024-03-07 1:59:59292 days ago1709776799
0xe1CeC35f...35aB8076A
0.09136269 ETH
193801692024-03-07 1:59:23292 days ago1709776763
0xe1CeC35f...35aB8076A
0.13076998 ETH
193801692024-03-07 1:59:23292 days ago1709776763
0xe1CeC35f...35aB8076A
0.13076998 ETH
193800012024-03-07 1:25:35292 days ago1709774735
0xe1CeC35f...35aB8076A
0.02381046 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ClosedAI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**


          /$$                                 /$$        /$$$$$$ /$$$$$$
         | $$                                | $$       /$$__  $|_  $$_/
  /$$$$$$| $$ /$$$$$$  /$$$$$$$ /$$$$$$  /$$$$$$$      | $$  \ $$ | $$  
 /$$_____| $$/$$__  $$/$$_____//$$__  $$/$$__  $$      | $$$$$$$$ | $$  
| $$     | $| $$  \ $|  $$$$$$| $$$$$$$| $$  | $$      | $$__  $$ | $$  
| $$     | $| $$  | $$\____  $| $$_____| $$  | $$      | $$  | $$ | $$  
|  $$$$$$| $|  $$$$$$//$$$$$$$|  $$$$$$|  $$$$$$$      | $$  | $$/$$$$$$
 \_______|__/\______/|_______/ \_______/\_______/      |__/  |__|______/
                                                                        
                                                                                                                           

Website:  https://closedaieth.com/
Telegram: https://t.me/ClosedAIeth
Twitter:  https://twitter.com/ClosedAI_Erc20



**/
pragma solidity 0.8.19;

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 ClosedAI 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 => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=35;
    uint256 private _reduceSellTaxAt=35;
    uint256 private _preventSwapBefore=25;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1010011010 * 10**_decimals;
    string private constant _name = unicode"ClosedAI";
    string private constant _symbol = unicode"ClosedAI";
    uint256 public _maxTxAmount =   20200220 * 10**_decimals;
    uint256 public _maxWalletSize = 20200220 * 10**_decimals;
    uint256 public _taxSwapThreshold=10100110 * 10**_decimals;
    uint256 public _maxTaxSwap=20200220 * 10**_decimals;

    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(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

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

    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()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).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((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).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 > 0) {
                    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 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 addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    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;
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    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);
        }
    }
}

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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526006805460ff1916600117905560196007819055600881905560006009818155600a8281556023600b819055600c55600d93909355600e919091556200004a9162000356565b6200005a906301343b1c6200036e565b600f556200006b6009600a62000356565b6200007b906301343b1c6200036e565b6010556200008c6009600a62000356565b6200009b90629a1d8e6200036e565b601155620000ac6009600a62000356565b620000bc906301343b1c6200036e565b6012556014805461ffff60a81b19169055348015620000da57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319166101003302179055620001416009600a62000356565b6200015190633c338b826200036e565b3360009081526001602081905260408220929092556003906200017c6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001e03390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021a6009600a62000356565b6200022a90633c338b826200036e565b60405190815260200160405180910390a362000388565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002985781600019048211156200027c576200027c62000241565b808516156200028a57918102915b93841c93908002906200025c565b509250929050565b600082620002b15750600162000350565b81620002c05750600062000350565b8160018114620002d95760028114620002e45762000304565b600191505062000350565b60ff841115620002f857620002f862000241565b50506001821b62000350565b5060208310610133831016604e8410600b841016171562000329575081810a62000350565b62000335838362000257565b80600019048211156200034c576200034c62000241565b0290505b92915050565b60006200036760ff841683620002a0565b9392505050565b808202811582820484141762000350576200035062000241565b611bce80620003986000396000f3fe6080604052600436106101445760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed14610379578063c876d0b91461038f578063c9567bf9146103a9578063d34628cc146103be578063dd62ed3e146103de578063ec1f3f631461042457600080fd5b8063751039fc146102f05780637d1db4a5146103055780638da5cb5b1461031b5780638f9a55c01461034357806395d89b4114610150578063a9059cbb1461035957600080fd5b8063313ce56711610108578063313ce5671461021957806331c2d847146102355780633bbac5791461025757806351bc3c851461029057806370a08231146102a5578063715018a6146102db57600080fd5b806306fdde0314610150578063095ea7b3146101905780630faee56f146101c057806318160ddd146101e457806323b872dd146101f957600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820182526008815267436c6f736564414960c01b602082015290516101879190611699565b60405180910390f35b34801561019c57600080fd5b506101b06101ab36600461170f565b610444565b6040519015158152602001610187565b3480156101cc57600080fd5b506101d660125481565b604051908152602001610187565b3480156101f057600080fd5b506101d661045b565b34801561020557600080fd5b506101b061021436600461173b565b61047c565b34801561022557600080fd5b5060405160098152602001610187565b34801561024157600080fd5b50610255610250366004611792565b6104e5565b005b34801561026357600080fd5b506101b0610272366004611857565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029c57600080fd5b50610255610584565b3480156102b157600080fd5b506101d66102c0366004611857565b6001600160a01b031660009081526001602052604090205490565b3480156102e757600080fd5b506102556105d8565b3480156102fc57600080fd5b5061025561064c565b34801561031157600080fd5b506101d6600f5481565b34801561032757600080fd5b506000546040516001600160a01b039091168152602001610187565b34801561034f57600080fd5b506101d660105481565b34801561036557600080fd5b506101b061037436600461170f565b610708565b34801561038557600080fd5b506101d660115481565b34801561039b57600080fd5b506006546101b09060ff1681565b3480156103b557600080fd5b50610255610715565b3480156103ca57600080fd5b506102556103d9366004611792565b610ad1565b3480156103ea57600080fd5b506101d66103f9366004611874565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561043057600080fd5b5061025561043f3660046118ad565b610b63565b6000610451338484610baf565b5060015b92915050565b60006104696009600a6119c0565b61047790633c338b826119cf565b905090565b6000610489848484610cd3565b6104db84336104d685604051806060016040528060288152602001611b71602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906112f8565b610baf565b5060019392505050565b6000546001600160a01b031633146105185760405162461bcd60e51b815260040161050f906119e6565b60405180910390fd5b60005b81518110156105805760006004600084848151811061053c5761053c611a1b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057881611a31565b91505061051b565b5050565b60065461010090046001600160a01b0316336001600160a01b0316146105a957600080fd5b3060009081526001602052604090205480156105c8576105c881611332565b47801561058057610580816114ac565b6000546001600160a01b031633146106025760405162461bcd60e51b815260040161050f906119e6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106765760405162461bcd60e51b815260040161050f906119e6565b6106826009600a6119c0565b61069090633c338b826119cf565b600f5561069f6009600a6119c0565b6106ad90633c338b826119cf565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106e76009600a6119c0565b6106f590633c338b826119cf565b60405190815260200160405180910390a1565b6000610451338484610cd3565b6000546001600160a01b0316331461073f5760405162461bcd60e51b815260040161050f906119e6565b601454600160a01b900460ff16156107995760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161050f565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107e29030906107d46009600a6119c0565b6104d690633c338b826119cf565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610835573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108599190611a4a565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108df9190611a4a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561092c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109509190611a4a565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610998816001600160a01b031660009081526001602052604090205490565b6000806109ad6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a15573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a3a9190611a67565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab79190611a95565b506014805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b03163314610afb5760405162461bcd60e51b815260040161050f906119e6565b60005b815181101561058057600160046000848481518110610b1f57610b1f611a1b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b5b81611a31565b915050610afe565b60065461010090046001600160a01b0316336001600160a01b031614610b8857600080fd5b6009548111158015610b9c5750600a548111155b610ba557600080fd5b6009819055600a55565b6001600160a01b038316610c115760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050f565b6001600160a01b038216610c725760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d375760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050f565b6001600160a01b038216610d995760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050f565b60008111610dfb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050f565b600080546001600160a01b03858116911614801590610e2857506000546001600160a01b03848116911614155b156111b5576001600160a01b03841660009081526004602052604090205460ff16158015610e6f57506001600160a01b03831660009081526004602052604090205460ff16155b610e7857600080fd5b610ea46064610e9e600b54600e5411610e9357600754610e97565b6009545b85906114ea565b90611573565b60065490915060ff1615610f8c576013546001600160a01b03848116911614801590610ede57506014546001600160a01b03848116911614155b15610f8c57326000908152600560205260409020544311610f795760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161050f565b3260009081526005602052604090204390555b6014546001600160a01b038581169116148015610fb757506013546001600160a01b03848116911614155b8015610fdc57506001600160a01b03831660009081526003602052604090205460ff16155b156110c457600f548211156110335760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161050f565b60105482611056856001600160a01b031660009081526001602052604090205490565b6110609190611ab7565b11156110ae5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161050f565b600e80549060006110be83611a31565b91905055505b6014546001600160a01b0384811691161480156110ea57506001600160a01b0384163014155b15611117576111146064610e9e600c54600e541161110a57600854610e97565b600a5485906114ea565b90505b30600090815260016020526040902054601454600160a81b900460ff1615801561114e57506014546001600160a01b038581169116145b80156111635750601454600160b01b900460ff165b8015611170575060115481115b801561117f5750600d54600e54115b156111b3576111a161119c84611197846012546115b5565b6115b5565b611332565b4780156111b1576111b1476114ac565b505b505b801561122f57306000908152600160205260409020546111d590826115ca565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112269085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546112529083611629565b6001600160a01b0385166000908152600160205260409020556112976112788383611629565b6001600160a01b038516600090815260016020526040902054906115ca565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112e18585611629565b60405190815260200160405180910390a350505050565b6000818484111561131c5760405162461bcd60e51b815260040161050f9190611699565b5060006113298486611aca565b95945050505050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061137a5761137a611a1b565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f79190611a4a565b8160018151811061140a5761140a611a1b565b6001600160a01b0392831660209182029290920101526013546114309130911684610baf565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611469908590600090869030904290600401611add565b600060405180830381600087803b15801561148357600080fd5b505af1158015611497573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610580573d6000803e3d6000fd5b6000826000036114fc57506000610455565b600061150883856119cf565b9050826115158583611b4e565b1461156c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050f565b9392505050565b600061156c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061166b565b60008183116115c4578261156c565b50919050565b6000806115d78385611ab7565b90508381101561156c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050f565b600061156c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112f8565b6000818361168c5760405162461bcd60e51b815260040161050f9190611699565b5060006113298486611b4e565b600060208083528351808285015260005b818110156116c6578581018301518582016040015282016116aa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116fc57600080fd5b50565b803561170a816116e7565b919050565b6000806040838503121561172257600080fd5b823561172d816116e7565b946020939093013593505050565b60008060006060848603121561175057600080fd5b833561175b816116e7565b9250602084013561176b816116e7565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156117a557600080fd5b823567ffffffffffffffff808211156117bd57600080fd5b818501915085601f8301126117d157600080fd5b8135818111156117e3576117e361177c565b8060051b604051601f19603f830116810181811085821117156118085761180861177c565b60405291825284820192508381018501918883111561182657600080fd5b938501935b8285101561184b5761183c856116ff565b8452938501939285019261182b565b98975050505050505050565b60006020828403121561186957600080fd5b813561156c816116e7565b6000806040838503121561188757600080fd5b8235611892816116e7565b915060208301356118a2816116e7565b809150509250929050565b6000602082840312156118bf57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119175781600019048211156118fd576118fd6118c6565b8085161561190a57918102915b93841c93908002906118e1565b509250929050565b60008261192e57506001610455565b8161193b57506000610455565b8160018114611951576002811461195b57611977565b6001915050610455565b60ff84111561196c5761196c6118c6565b50506001821b610455565b5060208310610133831016604e8410600b841016171561199a575081810a610455565b6119a483836118dc565b80600019048211156119b8576119b86118c6565b029392505050565b600061156c60ff84168361191f565b8082028115828204841417610455576104556118c6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611a4357611a436118c6565b5060010190565b600060208284031215611a5c57600080fd5b815161156c816116e7565b600080600060608486031215611a7c57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611aa757600080fd5b8151801515811461156c57600080fd5b80820180821115610455576104556118c6565b81810381811115610455576104556118c6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b2d5784516001600160a01b031683529383019391830191600101611b08565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b6b57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220de6e6133f7205298d3e301e504c63b2c77ee2605cd13a1e09d69c7cf8d0cd29864736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed14610379578063c876d0b91461038f578063c9567bf9146103a9578063d34628cc146103be578063dd62ed3e146103de578063ec1f3f631461042457600080fd5b8063751039fc146102f05780637d1db4a5146103055780638da5cb5b1461031b5780638f9a55c01461034357806395d89b4114610150578063a9059cbb1461035957600080fd5b8063313ce56711610108578063313ce5671461021957806331c2d847146102355780633bbac5791461025757806351bc3c851461029057806370a08231146102a5578063715018a6146102db57600080fd5b806306fdde0314610150578063095ea7b3146101905780630faee56f146101c057806318160ddd146101e457806323b872dd146101f957600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820182526008815267436c6f736564414960c01b602082015290516101879190611699565b60405180910390f35b34801561019c57600080fd5b506101b06101ab36600461170f565b610444565b6040519015158152602001610187565b3480156101cc57600080fd5b506101d660125481565b604051908152602001610187565b3480156101f057600080fd5b506101d661045b565b34801561020557600080fd5b506101b061021436600461173b565b61047c565b34801561022557600080fd5b5060405160098152602001610187565b34801561024157600080fd5b50610255610250366004611792565b6104e5565b005b34801561026357600080fd5b506101b0610272366004611857565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029c57600080fd5b50610255610584565b3480156102b157600080fd5b506101d66102c0366004611857565b6001600160a01b031660009081526001602052604090205490565b3480156102e757600080fd5b506102556105d8565b3480156102fc57600080fd5b5061025561064c565b34801561031157600080fd5b506101d6600f5481565b34801561032757600080fd5b506000546040516001600160a01b039091168152602001610187565b34801561034f57600080fd5b506101d660105481565b34801561036557600080fd5b506101b061037436600461170f565b610708565b34801561038557600080fd5b506101d660115481565b34801561039b57600080fd5b506006546101b09060ff1681565b3480156103b557600080fd5b50610255610715565b3480156103ca57600080fd5b506102556103d9366004611792565b610ad1565b3480156103ea57600080fd5b506101d66103f9366004611874565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561043057600080fd5b5061025561043f3660046118ad565b610b63565b6000610451338484610baf565b5060015b92915050565b60006104696009600a6119c0565b61047790633c338b826119cf565b905090565b6000610489848484610cd3565b6104db84336104d685604051806060016040528060288152602001611b71602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906112f8565b610baf565b5060019392505050565b6000546001600160a01b031633146105185760405162461bcd60e51b815260040161050f906119e6565b60405180910390fd5b60005b81518110156105805760006004600084848151811061053c5761053c611a1b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057881611a31565b91505061051b565b5050565b60065461010090046001600160a01b0316336001600160a01b0316146105a957600080fd5b3060009081526001602052604090205480156105c8576105c881611332565b47801561058057610580816114ac565b6000546001600160a01b031633146106025760405162461bcd60e51b815260040161050f906119e6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106765760405162461bcd60e51b815260040161050f906119e6565b6106826009600a6119c0565b61069090633c338b826119cf565b600f5561069f6009600a6119c0565b6106ad90633c338b826119cf565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106e76009600a6119c0565b6106f590633c338b826119cf565b60405190815260200160405180910390a1565b6000610451338484610cd3565b6000546001600160a01b0316331461073f5760405162461bcd60e51b815260040161050f906119e6565b601454600160a01b900460ff16156107995760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161050f565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107e29030906107d46009600a6119c0565b6104d690633c338b826119cf565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610835573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108599190611a4a565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108df9190611a4a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561092c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109509190611a4a565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610998816001600160a01b031660009081526001602052604090205490565b6000806109ad6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a15573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a3a9190611a67565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab79190611a95565b506014805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b03163314610afb5760405162461bcd60e51b815260040161050f906119e6565b60005b815181101561058057600160046000848481518110610b1f57610b1f611a1b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b5b81611a31565b915050610afe565b60065461010090046001600160a01b0316336001600160a01b031614610b8857600080fd5b6009548111158015610b9c5750600a548111155b610ba557600080fd5b6009819055600a55565b6001600160a01b038316610c115760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050f565b6001600160a01b038216610c725760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d375760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050f565b6001600160a01b038216610d995760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050f565b60008111610dfb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050f565b600080546001600160a01b03858116911614801590610e2857506000546001600160a01b03848116911614155b156111b5576001600160a01b03841660009081526004602052604090205460ff16158015610e6f57506001600160a01b03831660009081526004602052604090205460ff16155b610e7857600080fd5b610ea46064610e9e600b54600e5411610e9357600754610e97565b6009545b85906114ea565b90611573565b60065490915060ff1615610f8c576013546001600160a01b03848116911614801590610ede57506014546001600160a01b03848116911614155b15610f8c57326000908152600560205260409020544311610f795760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161050f565b3260009081526005602052604090204390555b6014546001600160a01b038581169116148015610fb757506013546001600160a01b03848116911614155b8015610fdc57506001600160a01b03831660009081526003602052604090205460ff16155b156110c457600f548211156110335760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161050f565b60105482611056856001600160a01b031660009081526001602052604090205490565b6110609190611ab7565b11156110ae5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161050f565b600e80549060006110be83611a31565b91905055505b6014546001600160a01b0384811691161480156110ea57506001600160a01b0384163014155b15611117576111146064610e9e600c54600e541161110a57600854610e97565b600a5485906114ea565b90505b30600090815260016020526040902054601454600160a81b900460ff1615801561114e57506014546001600160a01b038581169116145b80156111635750601454600160b01b900460ff165b8015611170575060115481115b801561117f5750600d54600e54115b156111b3576111a161119c84611197846012546115b5565b6115b5565b611332565b4780156111b1576111b1476114ac565b505b505b801561122f57306000908152600160205260409020546111d590826115ca565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112269085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546112529083611629565b6001600160a01b0385166000908152600160205260409020556112976112788383611629565b6001600160a01b038516600090815260016020526040902054906115ca565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112e18585611629565b60405190815260200160405180910390a350505050565b6000818484111561131c5760405162461bcd60e51b815260040161050f9190611699565b5060006113298486611aca565b95945050505050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061137a5761137a611a1b565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f79190611a4a565b8160018151811061140a5761140a611a1b565b6001600160a01b0392831660209182029290920101526013546114309130911684610baf565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611469908590600090869030904290600401611add565b600060405180830381600087803b15801561148357600080fd5b505af1158015611497573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610580573d6000803e3d6000fd5b6000826000036114fc57506000610455565b600061150883856119cf565b9050826115158583611b4e565b1461156c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050f565b9392505050565b600061156c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061166b565b60008183116115c4578261156c565b50919050565b6000806115d78385611ab7565b90508381101561156c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050f565b600061156c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112f8565b6000818361168c5760405162461bcd60e51b815260040161050f9190611699565b5060006113298486611b4e565b600060208083528351808285015260005b818110156116c6578581018301518582016040015282016116aa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116fc57600080fd5b50565b803561170a816116e7565b919050565b6000806040838503121561172257600080fd5b823561172d816116e7565b946020939093013593505050565b60008060006060848603121561175057600080fd5b833561175b816116e7565b9250602084013561176b816116e7565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156117a557600080fd5b823567ffffffffffffffff808211156117bd57600080fd5b818501915085601f8301126117d157600080fd5b8135818111156117e3576117e361177c565b8060051b604051601f19603f830116810181811085821117156118085761180861177c565b60405291825284820192508381018501918883111561182657600080fd5b938501935b8285101561184b5761183c856116ff565b8452938501939285019261182b565b98975050505050505050565b60006020828403121561186957600080fd5b813561156c816116e7565b6000806040838503121561188757600080fd5b8235611892816116e7565b915060208301356118a2816116e7565b809150509250929050565b6000602082840312156118bf57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119175781600019048211156118fd576118fd6118c6565b8085161561190a57918102915b93841c93908002906118e1565b509250929050565b60008261192e57506001610455565b8161193b57506000610455565b8160018114611951576002811461195b57611977565b6001915050610455565b60ff84111561196c5761196c6118c6565b50506001821b610455565b5060208310610133831016604e8410600b841016171561199a575081810a610455565b6119a483836118dc565b80600019048211156119b8576119b86118c6565b029392505050565b600061156c60ff84168361191f565b8082028115828204841417610455576104556118c6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611a4357611a436118c6565b5060010190565b600060208284031215611a5c57600080fd5b815161156c816116e7565b600080600060608486031215611a7c57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611aa757600080fd5b8151801515811461156c57600080fd5b80820180821115610455576104556118c6565b81810381811115610455576104556118c6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b2d5784516001600160a01b031683529383019391830191600101611b08565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b6b57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220de6e6133f7205298d3e301e504c63b2c77ee2605cd13a1e09d69c7cf8d0cd29864736f6c63430008130033

Deployed Bytecode Sourcemap

4402:8692:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6339:83;;;;;;;;;;-1:-1:-1;6409:5:0;;;;;;;;;;;-1:-1:-1;;;6409:5:0;;;;6339:83;;;;6409:5;6339:83;:::i;:::-;;;;;;;;7172:161;;;;;;;;;;-1:-1:-1;7172:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7172:161:0;1162:187:1;5615:51:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;5615:51:0;1354:177:1;6616:95:0;;;;;;;;;;;;;:::i;7341:313::-;;;;;;;;;;-1:-1:-1;7341:313:0;;;;;:::i;:::-;;:::i;6525:83::-;;;;;;;;;;-1:-1:-1;6525:83:0;;5235:1;2139:36:1;;2127:2;2112:18;6525:83:0;1997:184:1;11534:162:0;;;;;;;;;;-1:-1:-1;11534:162:0;;;;;:::i;:::-;;:::i;:::-;;11704:83;;;;;;;;;;-1:-1:-1;11704:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;11772:7:0;11751:4;11772:7;;;:4;:7;;;;;;;;;11704:83;12743:348;;;;;;;;;;;;;:::i;6719:119::-;;;;;;;;;;-1:-1:-1;6719:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6812:18:0;6785:7;6812:18;;;:9;:18;;;;;;;6719:119;3483:148;;;;;;;;;;;;;:::i;11058:196::-;;;;;;;;;;;;;:::i;5425:56::-;;;;;;;;;;;;;;;;3269:79;;;;;;;;;;-1:-1:-1;3307:7:0;3334:6;3269:79;;-1:-1:-1;;;;;3334:6:0;;;3842:51:1;;3830:2;3815:18;3269:79:0;3696:203:1;5488:56:0;;;;;;;;;;;;;;;;6846:167;;;;;;;;;;-1:-1:-1;6846:167:0;;;;;:::i;:::-;;:::i;5551:57::-;;;;;;;;;;;;;;;;4792:39;;;;;;;;;;-1:-1:-1;4792:39:0;;;;;;;;11795:671;;;;;;;;;;;;;:::i;11362:164::-;;;;;;;;;;-1:-1:-1;11362:164:0;;;;;:::i;:::-;;:::i;7021:143::-;;;;;;;;;;-1:-1:-1;7021:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7129:18:0;;;7102:7;7129:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7021:143;12480:218;;;;;;;;;;-1:-1:-1;12480:218:0;;;;;:::i;:::-;;:::i;7172:161::-;7247:4;7264:39;1104:10;7287:7;7296:6;7264:8;:39::i;:::-;-1:-1:-1;7321:4:0;7172:161;;;;;:::o;6616:95::-;6669:7;5291:13;5235:1;5291:2;:13;:::i;:::-;5278:26;;:10;:26;:::i;:::-;6689:14;;6616:95;:::o;7341:313::-;7439:4;7456:36;7466:6;7474:9;7485:6;7456:9;:36::i;:::-;7503:121;7512:6;1104:10;7534:89;7572:6;7534:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7534:19:0;;;;;;:11;:19;;;;;;;;1104:10;7534:33;;;;;;;;;;:37;:89::i;:::-;7503:8;:121::i;:::-;-1:-1:-1;7642:4:0;7341:313;;;;;:::o;11534:162::-;3396:6;;-1:-1:-1;;;;;3396:6:0;1104:10;3396:22;3388:67;;;;-1:-1:-1;;;3388:67:0;;;;;;;:::i;:::-;;;;;;;;;11607:6:::1;11602:87;11623:6;:13;11619:1;:17;11602:87;;;11674:5;11656:4;:15;11661:6;11668:1;11661:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11656:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11656:15:0;:23;;-1:-1:-1;;11656:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11638:3;::::1;::::0;::::1;:::i;:::-;;;;11602:87;;;;11534:162:::0;:::o;12743:348::-;12807:10;;;;;-1:-1:-1;;;;;12807:10:0;1104;-1:-1:-1;;;;;12793:24:0;;12785:33;;;;;;12868:4;12829:20;6812:18;;;:9;:18;;;;;;12888:14;;12885:73;;12916:30;12933:12;12916:16;:30::i;:::-;12987:21;13022:12;;13019:65;;13048:24;13061:10;13048:12;:24::i;3483:148::-;3396:6;;-1:-1:-1;;;;;3396:6:0;1104:10;3396:22;3388:67;;;;-1:-1:-1;;;3388:67:0;;;;;;;:::i;:::-;3590:1:::1;3574:6:::0;;3553:40:::1;::::0;-1:-1:-1;;;;;3574:6:0;;::::1;::::0;3553:40:::1;::::0;3590:1;;3553:40:::1;3621:1;3604:19:::0;;-1:-1:-1;;;;;;3604:19:0::1;::::0;;3483:148::o;11058:196::-;3396:6;;-1:-1:-1;;;;;3396:6:0;1104:10;3396:22;3388:67;;;;-1:-1:-1;;;3388:67:0;;;;;;;:::i;:::-;5291:13:::1;5235:1;5291:2;:13;:::i;:::-;5278:26;::::0;:10:::1;:26;:::i;:::-;11111:12;:22:::0;5291:13:::1;5235:1;5291:2;:13;:::i;:::-;5278:26;::::0;:10:::1;:26;:::i;:::-;11144:14;:22:::0;11177:20:::1;:26:::0;;-1:-1:-1;;11177:26:0::1;::::0;;11219:27:::1;5291:13;5235:1;-1:-1:-1::0;5291:13:0::1;:::i;:::-;5278:26;::::0;:10:::1;:26;:::i;:::-;11219:27;::::0;1500:25:1;;;1488:2;1473:18;11219:27:0::1;;;;;;;11058:196::o:0;6846:167::-;6924:4;6941:42;1104:10;6965:9;6976:6;6941:9;:42::i;11795:671::-;3396:6;;-1:-1:-1;;;;;3396:6:0;1104:10;3396:22;3388:67;;;;-1:-1:-1;;;3388:67:0;;;;;;;:::i;:::-;11859:11:::1;::::0;-1:-1:-1;;;11859:11:0;::::1;;;11858:12;11850:47;;;::::0;-1:-1:-1;;;11850:47:0;;7005:2:1;11850:47:0::1;::::0;::::1;6987:21:1::0;7044:2;7024:18;;;7017:30;7083:25;7063:18;;;7056:53;7126:18;;11850:47:0::1;6803:347:1::0;11850:47:0::1;11908:15;:80:::0;;-1:-1:-1;;;;;;11908:80:0::1;11945:42;11908:80:::0;;::::1;::::0;;;11999:58:::1;::::0;12016:4:::1;::::0;5291:13:::1;5235:1;5291:2;:13;:::i;:::-;5278:26;::::0;:10:::1;:26;:::i;11999:58::-;12102:15;;;;;;;;;-1:-1:-1::0;;;;;12102:15:0::1;-1:-1:-1::0;;;;;12102:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12084:55:0::1;;12148:4;12155:15;;;;;;;;;-1:-1:-1::0;;;;;12155:15:0::1;-1:-1:-1::0;;;;;12155:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12084:94;::::0;-1:-1:-1;;;;;;12084:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7641:15:1;;;12084:94:0::1;::::0;::::1;7623:34:1::0;7693:15;;7673:18;;;7666:43;7558:18;;12084:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12068:13;:110:::0;;-1:-1:-1;;;;;12068:110:0;;::::1;-1:-1:-1::0;;;;;;12068:110:0;;::::1;;::::0;;12189:15:::1;::::0;::::1;:31;12228:21;12259:4;12265:24;12259:4:::0;-1:-1:-1;;;;;6812:18:0;6785:7;6812:18;;;:9;:18;;;;;;;6719:119;12265:24:::1;12290:1;12292::::0;12294:7:::1;3307::::0;3334:6;-1:-1:-1;;;;;3334:6:0;;3269:79;12294:7:::1;12189:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12189:129:0;;;-1:-1:-1;;;;;8079:15:1;;;12189:129:0::1;::::0;::::1;8061:34:1::0;8111:18;;;8104:34;;;;8154:18;;;8147:34;;;;8197:18;;;8190:34;8261:15;;;8240:19;;;8233:44;12302:15:0::1;8293:19:1::0;;;8286:35;7995:19;;12189:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12336:13:0::1;::::0;12367:15:::1;::::0;12329:71:::1;::::0;-1:-1:-1;;;12329:71:0;;-1:-1:-1;;;;;12367:15:0;;::::1;12329:71;::::0;::::1;8817:51:1::0;-1:-1:-1;;8884:18:1;;;8877:34;12336:13:0;::::1;::::0;-1:-1:-1;12329:29:0::1;::::0;8790:18:1;;12329:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12411:11:0::1;:18:::0;;-1:-1:-1;;;;12440:18:0;-1:-1:-1;;;12440:18:0;;;11795:671::o;11362:164::-;3396:6;;-1:-1:-1;;;;;3396:6:0;1104:10;3396:22;3388:67;;;;-1:-1:-1;;;3388:67:0;;;;;;;:::i;:::-;11436:6:::1;11431:88;11452:5;:12;11448:1;:16;11431:88;;;11503:4;11486;:14;11491:5;11497:1;11491:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11486:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11486:14:0;:21;;-1:-1:-1;;11486:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11466:3;::::1;::::0;::::1;:::i;:::-;;;;11431:88;;12480:218:::0;12555:10;;;;;-1:-1:-1;;;;;12555:10:0;1104;-1:-1:-1;;;;;12541:24:0;;12533:33;;;;;;12592:12;;12583:7;:21;;:47;;;;;12617:13;;12608:7;:22;;12583:47;12575:56;;;;;;12640:12;:20;;;12669:13;:21;12480:218::o;7662:335::-;-1:-1:-1;;;;;7755:19:0;;7747:68;;;;-1:-1:-1;;;7747:68:0;;9406:2:1;7747:68:0;;;9388:21:1;9445:2;9425:18;;;9418:30;9484:34;9464:18;;;9457:62;-1:-1:-1;;;9535:18:1;;;9528:34;9579:19;;7747:68:0;9204:400:1;7747:68:0;-1:-1:-1;;;;;7834:21:0;;7826:68;;;;-1:-1:-1;;;7826:68:0;;9811:2:1;7826:68:0;;;9793:21:1;9850:2;9830:18;;;9823:30;9889:34;9869:18;;;9862:62;-1:-1:-1;;;9940:18:1;;;9933:32;9982:19;;7826:68:0;9609:398:1;7826:68:0;-1:-1:-1;;;;;7905:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7957:32;;1500:25:1;;;7957:32:0;;1473:18:1;7957:32:0;;;;;;;7662:335;;;:::o;8005:2446::-;-1:-1:-1;;;;;8093:18:0;;8085:68;;;;-1:-1:-1;;;8085:68:0;;10214:2:1;8085:68:0;;;10196:21:1;10253:2;10233:18;;;10226:30;10292:34;10272:18;;;10265:62;-1:-1:-1;;;10343:18:1;;;10336:35;10388:19;;8085:68:0;10012:401:1;8085:68:0;-1:-1:-1;;;;;8172:16:0;;8164:64;;;;-1:-1:-1;;;8164:64:0;;10620:2:1;8164:64:0;;;10602:21:1;10659:2;10639:18;;;10632:30;10698:34;10678:18;;;10671:62;-1:-1:-1;;;10749:18:1;;;10742:33;10792:19;;8164:64:0;10418:399:1;8164:64:0;8256:1;8247:6;:10;8239:64;;;;-1:-1:-1;;;8239:64:0;;11024:2:1;8239:64:0;;;11006:21:1;11063:2;11043:18;;;11036:30;11102:34;11082:18;;;11075:62;-1:-1:-1;;;11153:18:1;;;11146:39;11202:19;;8239:64:0;10822:405:1;8239:64:0;8314:17;3334:6;;-1:-1:-1;;;;;8348:15:0;;;3334:6;;8348:15;;;;:32;;-1:-1:-1;3307:7:0;3334:6;-1:-1:-1;;;;;8367:13:0;;;3334:6;;8367:13;;8348:32;8344:1751;;;-1:-1:-1;;;;;8406:10:0;;;;;;:4;:10;;;;;;;;8405:11;:24;;;;-1:-1:-1;;;;;;8421:8:0;;;;;;:4;:8;;;;;;;;8420:9;8405:24;8397:33;;;;;;8457:76;8529:3;8457:67;8479:15;;8469:9;;:25;8468:55;;8509:14;;8468:55;;;8496:12;;8468:55;8457:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8554:20;;8445:88;;-1:-1:-1;8554:20:0;;8550:508;;;8615:15;;-1:-1:-1;;;;;8601:30:0;;;8615:15;;8601:30;;;;:62;;-1:-1:-1;8649:13:0;;-1:-1:-1;;;;;8635:28:0;;;8649:13;;8635:28;;8601:62;8597:444;;;8755:9;8726:39;;;;:28;:39;;;;;;8799:12;-1:-1:-1;8690:250:0;;;;-1:-1:-1;;;8690:250:0;;11434:2:1;8690:250:0;;;11416:21:1;11473:2;11453:18;;;11446:30;11512:34;11492:18;;;11485:62;11583:34;11563:18;;;11556:62;-1:-1:-1;;;11634:19:1;;;11627:40;11684:19;;8690:250:0;11232:477:1;8690:250:0;8994:9;8965:39;;;;:28;:39;;;;;9007:12;8965:54;;8597:444;9086:13;;-1:-1:-1;;;;;9078:21:0;;;9086:13;;9078:21;:55;;;;-1:-1:-1;9117:15:0;;-1:-1:-1;;;;;9103:30:0;;;9117:15;;9103:30;;9078:55;:83;;;;-1:-1:-1;;;;;;9139:22:0;;;;;;:18;:22;;;;;;;;9137:24;9078:83;9074:313;;;9201:12;;9191:6;:22;;9183:60;;;;-1:-1:-1;;;9183:60:0;;11916:2:1;9183:60:0;;;11898:21:1;11955:2;11935:18;;;11928:30;11994:27;11974:18;;;11967:55;12039:18;;9183:60:0;11714:349:1;9183:60:0;9296:14;;9286:6;9270:13;9280:2;-1:-1:-1;;;;;6812:18:0;6785:7;6812:18;;;:9;:18;;;;;;;6719:119;9270:13;:22;;;;:::i;:::-;:40;;9262:79;;;;-1:-1:-1;;;9262:79:0;;12400:2:1;9262:79:0;;;12382:21:1;12439:2;12419:18;;;12412:30;12478:28;12458:18;;;12451:56;12524:18;;9262:79:0;12198:350:1;9262:79:0;9360:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9074:313;9412:13;;-1:-1:-1;;;;;9406:19:0;;;9412:13;;9406:19;:43;;;;-1:-1:-1;;;;;;9429:20:0;;9444:4;9429:20;;9406:43;9403:174;;;9482:79;9557:3;9482:70;9504:16;;9494:9;;:26;9493:58;;9536:15;;9493:58;;;9522:13;;9482:6;;:10;:70::i;:79::-;9470:91;;9403:174;9642:4;9593:28;6812:18;;;:9;:18;;;;;;9668:6;;-1:-1:-1;;;9668:6:0;;;;9667:7;:32;;;;-1:-1:-1;9686:13:0;;-1:-1:-1;;;;;9678:21:0;;;9686:13;;9678:21;9667:32;:47;;;;-1:-1:-1;9703:11:0;;-1:-1:-1;;;9703:11:0;;;;9667:47;:89;;;;;9739:17;;9718:20;:38;9667:89;:121;;;;;9770:18;;9760:9;;:28;9667:121;9663:421;;;9809:67;9826:49;9830:6;9837:37;9841:20;9862:11;;9837:3;:37::i;:::-;9826:3;:49::i;:::-;9809:16;:67::i;:::-;9924:21;9967:22;;9964:105;;10014:35;10027:21;10014:12;:35::i;:::-;9790:294;9663:421;8382:1713;8344:1751;10110:11;;10107:161;;10178:4;10160:24;;;;:9;:24;;;;;;:39;;10189:9;10160:28;:39::i;:::-;10153:4;10135:24;;;;:9;:24;;;;;;;:64;;;;10217:39;;-1:-1:-1;;;;;10217:39:0;;;;;;;10246:9;1500:25:1;;1488:2;1473:18;;1354:177;10217:39:0;;;;;;;;10107:161;-1:-1:-1;;;;;10294:15:0;;;;;;:9;:15;;;;;;:27;;10314:6;10294:19;:27::i;:::-;-1:-1:-1;;;;;10278:15:0;;;;;;:9;:15;;;;;:43;10346:40;10364:21;:6;10375:9;10364:10;:21::i;:::-;-1:-1:-1;;;;;10346:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10332:13:0;;;;;;;:9;:13;;;;;:54;;;;10402:41;;;10421:21;:6;10432:9;10421:10;:21::i;:::-;10402:41;;1500:25:1;;;1488:2;1473:18;10402:41:0;;;;;;;8074:2377;8005:2446;;;:::o;2161:190::-;2247:7;2283:12;2275:6;;;;2267:29;;;;-1:-1:-1;;;2267:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2307:9:0;2319:5;2323:1;2319;:5;:::i;:::-;2307:17;2161:190;-1:-1:-1;;;;;2161:190:0:o;10567:483::-;5948:6;:13;;-1:-1:-1;;;;5948:13:0;-1:-1:-1;;;5948:13:0;;;10669:16:::1;::::0;;10683:1:::1;10669:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10669:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10669:16:0::1;10645:40;;10714:4;10696;10701:1;10696:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10696:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10740:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10740:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10696:7;;10740:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10730:4;10735:1;10730:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10730:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10805:15:::1;::::0;10773:62:::1;::::0;10790:4:::1;::::0;10805:15:::1;10823:11:::0;10773:8:::1;:62::i;:::-;10846:15;::::0;:196:::1;::::0;-1:-1:-1;;;10846:196:0;;-1:-1:-1;;;;;10846:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10927:11;;10846:15:::1;::::0;10969:4;;10996::::1;::::0;11016:15:::1;::::0;10846:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5984:6:0;:14;;-1:-1:-1;;;;5984:14:0;;;-1:-1:-1;;;;10567:483:0:o;11262:92::-;11319:10;;:27;;:10;;;;-1:-1:-1;;;;;11319:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;2359:246;2417:7;2441:1;2446;2441:6;2437:47;;-1:-1:-1;2471:1:0;2464:8;;2437:47;2494:9;2506:5;2510:1;2506;:5;:::i;:::-;2494:17;-1:-1:-1;2539:1:0;2530:5;2534:1;2494:17;2530:5;:::i;:::-;:10;2522:56;;;;-1:-1:-1;;;2522:56:0;;14095:2:1;2522:56:0;;;14077:21:1;14134:2;14114:18;;;14107:30;14173:34;14153:18;;;14146:62;-1:-1:-1;;;14224:18:1;;;14217:31;14265:19;;2522:56:0;13893:397:1;2522:56:0;2596:1;2359:246;-1:-1:-1;;;2359:246:0:o;2613:132::-;2671:7;2698:39;2702:1;2705;2698:39;;;;;;;;;;;;;;;;;:3;:39::i;10461:98::-;10518:7;10545:1;10543;:3;10542:9;;10550:1;10542:9;;;-1:-1:-1;10548:1:0;10461:98;-1:-1:-1;10461:98:0:o;1830:179::-;1888:7;;1920:5;1924:1;1920;:5;:::i;:::-;1908:17;;1949:1;1944;:6;;1936:46;;;;-1:-1:-1;;;1936:46:0;;14497:2:1;1936:46:0;;;14479:21:1;14536:2;14516:18;;;14509:30;14575:29;14555:18;;;14548:57;14622:18;;1936:46:0;14295:351:1;2017:136:0;2075:7;2102:43;2106:1;2109;2102:43;;;;;;;;;;;;;;;;;:3;:43::i;2753:189::-;2839:7;2874:12;2867:5;2859:28;;;;-1:-1:-1;;;2859:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2898:9:0;2910:5;2914:1;2910;: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;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:180::-;4356:6;4409:2;4397:9;4388:7;4384:23;4380:32;4377:52;;;4425:1;4422;4415:12;4377:52;-1:-1:-1;4448:23:1;;4297:180;-1:-1:-1;4297:180:1:o;4482:127::-;4543:10;4538:3;4534:20;4531:1;4524:31;4574:4;4571:1;4564:15;4598:4;4595:1;4588:15;4614:422;4703:1;4746:5;4703:1;4760:270;4781:7;4771:8;4768:21;4760:270;;;4840:4;4836:1;4832:6;4828:17;4822:4;4819:27;4816:53;;;4849:18;;:::i;:::-;4899:7;4889:8;4885:22;4882:55;;;4919:16;;;;4882:55;4998:22;;;;4958:15;;;;4760:270;;;4764:3;4614:422;;;;;:::o;5041:806::-;5090:5;5120:8;5110:80;;-1:-1:-1;5161:1:1;5175:5;;5110:80;5209:4;5199:76;;-1:-1:-1;5246:1:1;5260:5;;5199:76;5291:4;5309:1;5304:59;;;;5377:1;5372:130;;;;5284:218;;5304:59;5334:1;5325:10;;5348:5;;;5372:130;5409:3;5399:8;5396:17;5393:43;;;5416:18;;:::i;:::-;-1:-1:-1;;5472:1:1;5458:16;;5487:5;;5284:218;;5586:2;5576:8;5573:16;5567:3;5561:4;5558:13;5554:36;5548:2;5538:8;5535:16;5530:2;5524:4;5521:12;5517:35;5514:77;5511:159;;;-1:-1:-1;5623:19:1;;;5655:5;;5511:159;5702:34;5727:8;5721:4;5702:34;:::i;:::-;5772:6;5768:1;5764:6;5760:19;5751:7;5748:32;5745:58;;;5783:18;;:::i;:::-;5821:20;;5041:806;-1:-1:-1;;;5041:806:1:o;5852:140::-;5910:5;5939:47;5980:4;5970:8;5966:19;5960:4;5939:47;:::i;5997:168::-;6070:9;;;6101;;6118:15;;;6112:22;;6098:37;6088:71;;6139:18;;:::i;6170:356::-;6372:2;6354:21;;;6391:18;;;6384:30;6450:34;6445:2;6430:18;;6423:62;6517:2;6502:18;;6170:356::o;6531:127::-;6592:10;6587:3;6583:20;6580:1;6573:31;6623:4;6620:1;6613:15;6647:4;6644:1;6637:15;6663:135;6702:3;6723:17;;;6720:43;;6743:18;;:::i;:::-;-1:-1:-1;6790:1:1;6779:13;;6663:135::o;7155:251::-;7225:6;7278:2;7266:9;7257:7;7253:23;7249:32;7246:52;;;7294:1;7291;7284:12;7246:52;7326:9;7320:16;7345:31;7370:5;7345:31;:::i;8332:306::-;8420:6;8428;8436;8489:2;8477:9;8468:7;8464:23;8460:32;8457:52;;;8505:1;8502;8495:12;8457:52;8534:9;8528:16;8518:26;;8584:2;8573:9;8569:18;8563:25;8553:35;;8628:2;8617:9;8613:18;8607:25;8597:35;;8332:306;;;;;:::o;8922:277::-;8989:6;9042:2;9030:9;9021:7;9017:23;9013:32;9010:52;;;9058:1;9055;9048:12;9010:52;9090:9;9084:16;9143:5;9136:13;9129:21;9122:5;9119:32;9109:60;;9165:1;9162;9155:12;12068:125;12133:9;;;12154:10;;;12151:36;;;12167:18;;:::i;12553:128::-;12620:9;;;12641:11;;;12638:37;;;12655:18;;:::i;12686:980::-;12948:4;12996:3;12985:9;12981:19;13027:6;13016:9;13009:25;13053:2;13091:6;13086:2;13075:9;13071:18;13064:34;13134:3;13129:2;13118:9;13114:18;13107:31;13158:6;13193;13187:13;13224:6;13216;13209:22;13262:3;13251:9;13247:19;13240:26;;13301:2;13293:6;13289:15;13275:29;;13322:1;13332:195;13346:6;13343:1;13340:13;13332:195;;;13411:13;;-1:-1:-1;;;;;13407:39:1;13395:52;;13502:15;;;;13467:12;;;;13443:1;13361:9;13332:195;;;-1:-1:-1;;;;;;;13583:32:1;;;;13578:2;13563:18;;13556:60;-1:-1:-1;;;13647:3:1;13632:19;13625:35;13544:3;12686:980;-1:-1:-1;;;12686:980:1:o;13671:217::-;13711:1;13737;13727:132;;13781:10;13776:3;13772:20;13769:1;13762:31;13816:4;13813:1;13806:15;13844:4;13841:1;13834:15;13727:132;-1:-1:-1;13873:9:1;;13671:217::o

Swarm Source

ipfs://de6e6133f7205298d3e301e504c63b2c77ee2605cd13a1e09d69c7cf8d0cd298

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.