ETH Price: $1,976.45 (+0.02%)
Gas: 0.4 Gwei
 

Overview

ETH Balance

2 wei

Eth Value

Less Than $0.01 (@ $1,976.45/ETH)

Token Holdings

More Info

Private Name Tags

TokenTracker

DAETA (DAETA) (@$0.0008)
Transaction Hash
Method
Block
From
To
Transfer220843052025-03-19 23:49:4745 hrs ago1742428187IN
DÆTA: DAETA Token
0 ETH0.000034060.5224415
Approve220772942025-03-19 0:19:112 days ago1742343551IN
DÆTA: DAETA Token
0 ETH0.000027740.6
Approve220528792025-03-15 14:28:356 days ago1742048915IN
DÆTA: DAETA Token
0 ETH0.000116872.5124592
Approve220481372025-03-14 22:35:476 days ago1741991747IN
DÆTA: DAETA Token
0 ETH0.000048371.03986407
Approve220454602025-03-14 13:37:477 days ago1741959467IN
DÆTA: DAETA Token
0 ETH0.000128512.76265112
Approve220411052025-03-13 23:02:237 days ago1741906943IN
DÆTA: DAETA Token
0 ETH0.000074852.54462377
Approve220378992025-03-13 12:18:478 days ago1741868327IN
DÆTA: DAETA Token
0 ETH0.000026851.02030848
Approve220378942025-03-13 12:17:478 days ago1741868267IN
DÆTA: DAETA Token
0 ETH0.000028630.9835713
Approve220378862025-03-13 12:16:118 days ago1741868171IN
DÆTA: DAETA Token
0 ETH0.00003051.04756385
Approve220378782025-03-13 12:14:358 days ago1741868075IN
DÆTA: DAETA Token
0 ETH0.000031531.08317459
Approve220378752025-03-13 12:13:598 days ago1741868039IN
DÆTA: DAETA Token
0 ETH0.000030261.03867022
Approve220343622025-03-13 0:27:358 days ago1741825655IN
DÆTA: DAETA Token
0 ETH0.000048261.04234268
Approve220332872025-03-12 20:51:119 days ago1741812671IN
DÆTA: DAETA Token
0 ETH0.000117222.51996858
Approve220331082025-03-12 20:15:239 days ago1741810523IN
DÆTA: DAETA Token
0 ETH0.000118522.5480094
Approve220297312025-03-12 8:56:119 days ago1741769771IN
DÆTA: DAETA Token
0 ETH0.000123082.64599659
Approve220275422025-03-12 1:35:599 days ago1741743359IN
DÆTA: DAETA Token
0 ETH0.000070361.51273456
Approve220140692025-03-10 4:25:2311 days ago1741580723IN
DÆTA: DAETA Token
0 ETH0.000120932.59988175
Approve220100762025-03-09 15:02:1112 days ago1741532531IN
DÆTA: DAETA Token
0 ETH0.000036911.2677133
Approve220100692025-03-09 15:00:4712 days ago1741532447IN
DÆTA: DAETA Token
0 ETH0.000030311.15071984
Approve220100572025-03-09 14:58:2312 days ago1741532303IN
DÆTA: DAETA Token
0 ETH0.000032431.11295596
Approve220099062025-03-09 14:28:1112 days ago1741530491IN
DÆTA: DAETA Token
0 ETH0.000228244.90660452
Approve220053422025-03-08 23:09:5912 days ago1741475399IN
DÆTA: DAETA Token
0 ETH0.000116792.51074137
Approve220030382025-03-08 15:25:2313 days ago1741447523IN
DÆTA: DAETA Token
0 ETH0.000048641.04570313
Approve220017842025-03-08 11:12:4713 days ago1741432367IN
DÆTA: DAETA Token
0 ETH0.000049681.06801636
Approve219965612025-03-07 17:42:4714 days ago1741369367IN
DÆTA: DAETA Token
0 ETH0.000055891.2
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer220967742025-03-21 17:35:113 hrs ago1742578511
DÆTA: DAETA Token
0.00571809 ETH
Transfer220967742025-03-21 17:35:113 hrs ago1742578511
DÆTA: DAETA Token
0.02573143 ETH
Transfer220967742025-03-21 17:35:113 hrs ago1742578511
DÆTA: DAETA Token
0.02573143 ETH
Transfer220967742025-03-21 17:35:113 hrs ago1742578511
DÆTA: DAETA Token
0.05718097 ETH
Transfer220764302025-03-18 21:25:473 days ago1742333147
DÆTA: DAETA Token
0.00026036 ETH
Transfer220764302025-03-18 21:25:473 days ago1742333147
DÆTA: DAETA Token
0.00117162 ETH
Transfer220764302025-03-18 21:25:473 days ago1742333147
DÆTA: DAETA Token
0.00117162 ETH
Transfer220764302025-03-18 21:25:473 days ago1742333147
DÆTA: DAETA Token
0.00260361 ETH
Transfer220454622025-03-14 13:38:117 days ago1741959491
DÆTA: DAETA Token
0.00195587 ETH
Transfer220454622025-03-14 13:38:117 days ago1741959491
DÆTA: DAETA Token
0.00880141 ETH
Transfer220454622025-03-14 13:38:117 days ago1741959491
DÆTA: DAETA Token
0.00880141 ETH
Transfer220454622025-03-14 13:38:117 days ago1741959491
DÆTA: DAETA Token
0.0195587 ETH
Transfer220323372025-03-12 17:39:599 days ago1741801199
DÆTA: DAETA Token
0.00112981 ETH
Transfer220323372025-03-12 17:39:599 days ago1741801199
DÆTA: DAETA Token
0.00508415 ETH
Transfer220323372025-03-12 17:39:599 days ago1741801199
DÆTA: DAETA Token
0.00508415 ETH
Transfer220323372025-03-12 17:39:599 days ago1741801199
DÆTA: DAETA Token
0.01129812 ETH
Transfer220268792025-03-11 23:22:479 days ago1741735367
DÆTA: DAETA Token
0.00150483 ETH
Transfer220268792025-03-11 23:22:479 days ago1741735367
DÆTA: DAETA Token
0.00677173 ETH
Transfer220268792025-03-11 23:22:479 days ago1741735367
DÆTA: DAETA Token
0.00677173 ETH
Transfer220268792025-03-11 23:22:479 days ago1741735367
DÆTA: DAETA Token
0.0150483 ETH
Transfer220108642025-03-09 17:41:1112 days ago1741542071
DÆTA: DAETA Token
0.00159576 ETH
Transfer220108642025-03-09 17:41:1112 days ago1741542071
DÆTA: DAETA Token
0.00718092 ETH
Transfer220108642025-03-09 17:41:1112 days ago1741542071
DÆTA: DAETA Token
0.00718092 ETH
Transfer220108642025-03-09 17:41:1112 days ago1741542071
DÆTA: DAETA Token
0.0159576 ETH
Transfer220038372025-03-08 18:06:4713 days ago1741457207
DÆTA: DAETA Token
0.00109154 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DAETA

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
 _____     _______ _______       
|  __ \   /   ____|__   __|/\    
| |  | | /   |__     | |  /  \   
| |  | |/ /|  __|    | | / /\ \  
| |__| / ___ |____   | |/ ____ \ 
|_____/_/  |______|  |_/_/    \_\
                                  
Distributed Cloud Storage and Modular AI-Native Data Layer.

Website: https://www.daeta.xyz
Twitter: https://x.com/DaetaStorage
Medium: https://daetastorage.medium.com
Telegram: https://t.me/DaetaStorage
Discord: https://discord.gg/DaetaStorage
GitHub: https://github.com/DaetaStorage
Documentation: https://docs.daeta.xyz
Whitepaper: https://daeta.xyz/DaetaWPv1.0.pdf
Tokenomics: https://docs.daeta.xyz/tokenomics
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

interface IERC20 {
    event Transfer(address indexed sender, address indexed recipient, uint256 amount);
    event Approval(address indexed owner, address indexed spender, uint256 amount);

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

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

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

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

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

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

    function transferOwnership(address newOwner) public onlyOwner {
        _updateOwnership(newOwner);
    }

    function _updateOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_contractOwner, newOwner);
        _contractOwner = newOwner;
    }

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 tokenAmount,
        uint256 minETHAmount,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint tokenDesired,
        uint tokenMin,
        uint ethMin,
        address to,
        uint deadline
    ) external payable returns (uint tokenAmount, uint ethAmount, uint liquidity);
}

contract DAETA is Context, IERC20, Ownable {
    string private constant _tokenName = "DAETA";
    string private constant _tokenSymbol = "DAETA";
    uint8 private constant _tokenDecimals = 18;
    uint256 private constant _totalSupply = 100000000 * 10**_tokenDecimals;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _excludedAccounts;

    uint256 private constant _minSwapAmount = 25000 * 10**_tokenDecimals;
    uint256 private _maxSwapAmount = 625000 * 10**_tokenDecimals;

    uint256 public maxTxAmount = 100000 * 10**_tokenDecimals;
    uint256 public maxWalletBalance = 200000 * 10**_tokenDecimals;

    uint256 private _startBlock;
    uint256 buyFee = 30;
    uint256 sellFee = 30;

    IUniswapV2Router02 private _swapRouter;
    address public liquidityPair;
    address DAETAStorage;
    address DAETALVRG;
    address DAETABoost;

    bool private _tradingIsEnabled = false;

    constructor() {
        DAETAStorage = 0x1b3B458EBDE073723a05005F3D65715BD6aaecD6;
        DAETALVRG = 0xB67A1A099557A64dCDAaDfE768204002Ca25e67a;
        DAETABoost = 0x25e01C6EE653b4aba2227c5C6FaE34402e34c027;

        _balances[msg.sender] = _totalSupply;
        _excludedAccounts[msg.sender] = 1;
        _excludedAccounts[address(this)] = 1;

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

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

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

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

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

    function getTaxeRates() external view returns (uint256 buyTax, uint256 sellTax) {
        buyTax = buyFee;
        sellTax = sellFee;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _executeTransfer(_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) {
        _setTokenAllowance(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _executeTransfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _setTokenAllowance(sender, _msgSender(), currentAllowance - amount);
            }
        }
        return true;
    }

    function _setTokenAllowance(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 activeTrading() external onlyOwner {
        require(!_tradingIsEnabled, "Trading is already enabled");
        _swapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        liquidityPair = IUniswapV2Factory(_swapRouter.factory()).createPair(address(this), _swapRouter.WETH());
        _setTokenAllowance(address(this), address(_swapRouter), _totalSupply);
        
        _swapRouter.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );

        IERC20(liquidityPair).approve(address(_swapRouter), type(uint).max);
        _tradingIsEnabled = true;
        _startBlock = block.number;
    }

    function modifyExcludedAccounts(address account, uint256 value) external onlyOwner {
        _excludedAccounts[account] = value;
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = _totalSupply;
        maxWalletBalance = _totalSupply;
    }

    function updateTaxes(uint256 newTxRate) external onlyOwner {
        require(newTxRate <= buyFee && newTxRate <= sellFee, "Tax cannot be increased");
        buyFee = newTxRate;
        sellFee = newTxRate;
    }

    function _executeTokenTransfer(address from, address to, uint256 amount, uint256 taxRate) private {
        uint256 taxAmount = (amount * taxRate) / 100;
        uint256 transferAmount = amount - taxAmount;

        _balances[from] -= amount;
        _balances[to] += transferAmount;
        _balances[address(this)] += taxAmount;

        emit Transfer(from, to, transferAmount);
    }

    function _executeTransfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "ERC20: transfer amount must be greater than zero");

        uint256 taxRate = 0;

        if (_excludedAccounts[from] == 0 && _excludedAccounts[to] == 0) {
            require(_tradingIsEnabled, "Trading is not enabled yet");
            require(amount <= maxTxAmount, "Transaction amount exceeds the maximum limit");
            
            if (to != liquidityPair && to != address(0xdead)) {
                require(balanceOf(to) + amount <= maxWalletBalance, "Recipient wallet exceeds the maximum limit");
            }

            if (block.number < _startBlock + 3) {
                taxRate = (from == liquidityPair) ? 30 : 30;
            } else {
                if (from == liquidityPair) {
                    taxRate = buyFee;
                } else if (to == liquidityPair) {
                    uint256 contractTokenBalance = balanceOf(address(this));
                    if (contractTokenBalance > _minSwapAmount) {
                        uint256 swapAmount = _maxSwapAmount;
                        if (contractTokenBalance > amount) contractTokenBalance = amount;
                        if (contractTokenBalance > swapAmount) contractTokenBalance = swapAmount;
                        _swapTokensForEth(contractTokenBalance);
                    }
                    taxRate = sellFee;
                }
            }
        }
        _executeTokenTransfer(from, to, amount, taxRate);
    }

    function withdrawEth() external onlyOwner {
        (bool success, ) = owner().call{value: address(this).balance}("");
      require(success, "ETH withdrawal failed");
    }

    function withdrawTokens() external onlyOwner {
        uint256 contractTokenBalance = balanceOf(address(this));
        require(contractTokenBalance > 0, "No tokens to withdraw");

        _executeTokenTransfer(address(this), owner(), contractTokenBalance, 0);
    }

    function manualSwapExecution(uint256 percent) external onlyOwner {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 swapAmount = (percent * contractTokenBalance) / 100;
        _swapTokensForEth(swapAmount);
    }

    function _swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _swapRouter.WETH();

        _setTokenAllowance(address(this), address(_swapRouter), tokenAmount);

        _swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 contractEthBalance = address(this).balance;
        uint256 StorageTax = (contractEthBalance * 45) / 100;
        uint256 LVRGTax = (contractEthBalance * 45) / 100;
        uint256 BoostTax = (contractEthBalance * 10) / 100;

        (bool success, ) = DAETAStorage.call{value: StorageTax}("");
        (success, ) = DAETALVRG.call{value: LVRGTax}("");
        (success, ) = DAETABoost.call{value: BoostTax}("");
        

        require(success, "Transfer failed");
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","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":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"activeTrading","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":[],"name":"getTaxeRates","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapExecution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"modifyExcludedAccounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTxRate","type":"uint256"}],"name":"updateTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a620002e9565b62000021906209896862000300565b600455620000326012600a620002e9565b6200004190620186a062000300565b600555620000526012600a620002e9565b620000619062030d4062000300565b600655601e6008819055600955600e805460ff60a01b1916905534801562000087575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b0319908116731b3b458ebde073723a05005f3d65715bd6aaecd617909155600d8054821673b67a1a099557a64dcdaadfe768204002ca25e67a179055600e80549091167325e01c6ee653b4aba2227c5c6fae34402e34c0271790556200013c6012600a620002e9565b6200014c906305f5e10062000300565b335f9081526001602081815260408084209490945560039052828220819055308252919020556200017a3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001b36012600a620002e9565b620001c3906305f5e10062000300565b60405190815260200160405180910390a36200031a565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200022e57815f1904821115620002125762000212620001da565b808516156200022057918102915b93841c9390800290620001f3565b509250929050565b5f826200024657506001620002e3565b816200025457505f620002e3565b81600181146200026d5760028114620002785762000298565b6001915050620002e3565b60ff8411156200028c576200028c620001da565b50506001821b620002e3565b5060208310610133831016604e8410600b8410161715620002bd575081810a620002e3565b620002c98383620001ee565b805f1904821115620002df57620002df620001da565b0290505b92915050565b5f620002f960ff84168362000236565b9392505050565b8082028115828204841417620002e357620002e3620001da565b61196f80620003285f395ff3fe60806040526004361061013f575f3560e01c806384516c8c116100b3578063a9059cbb1161006d578063a9059cbb14610364578063b3ac853714610383578063bbde77c114610397578063da28dac3146103ac578063dd62ed3e146103cb578063f2fde38b1461040f575f80fd5b806384516c8c146102e45780638c0b5e221461030b5780638d8f2adb146103205780638da5cb5b1461033457806395d89b411461014a578063a0ef91df14610350575f80fd5b80635a0ad007116101045780635a0ad00714610211578063613506911461023257806370a0823114610251578063715018a614610285578063751039fc14610299578063808a5457146102ad575f80fd5b806306fdde031461014a578063095ea7b31461018657806318160ddd146101b557806323b872dd146101d7578063313ce567146101f6575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506040805180820182526005815264444145544160d81b6020820152905161017d9190611587565b60405180910390f35b348015610191575f80fd5b506101a56101a03660046115e6565b61042e565b604051901515815260200161017d565b3480156101c0575f80fd5b506101c9610444565b60405190815260200161017d565b3480156101e2575f80fd5b506101a56101f1366004611610565b610464565b348015610201575f80fd5b506040516012815260200161017d565b34801561021c575f80fd5b5061023061022b36600461164e565b610519565b005b34801561023d575f80fd5b5061023061024c36600461164e565b6105ac565b34801561025c575f80fd5b506101c961026b366004611665565b6001600160a01b03165f9081526001602052604090205490565b348015610290575f80fd5b5061023061060b565b3480156102a4575f80fd5b5061023061067c565b3480156102b8575f80fd5b50600b546102cc906001600160a01b031681565b6040516001600160a01b03909116815260200161017d565b3480156102ef575f80fd5b506008546009546040805192835260208301919091520161017d565b348015610316575f80fd5b506101c960055481565b34801561032b575f80fd5b506102306106e1565b34801561033f575f80fd5b505f546001600160a01b03166102cc565b34801561035b575f80fd5b5061023061077d565b34801561036f575f80fd5b506101a561037e3660046115e6565b61083e565b34801561038e575f80fd5b5061023061084a565b3480156103a2575f80fd5b506101c960065481565b3480156103b7575f80fd5b506102306103c63660046115e6565b610bee565b3480156103d6575f80fd5b506101c96103e5366004611687565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561041a575f80fd5b50610230610429366004611665565b610c32565b5f61043a338484610c64565b5060015b92915050565b5f6104516012600a6117b2565b61045f906305f5e1006117c0565b905090565b5f610470848484610d87565b6001600160a01b0384165f9081526002602090815260408083203384529091529020545f19811461050e57828110156105015760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61050e8533858403610c64565b506001949350505050565b5f546001600160a01b031633146105425760405162461bcd60e51b81526004016104f8906117d7565b600854811115801561055657506009548111155b6105a25760405162461bcd60e51b815260206004820152601760248201527f5461782063616e6e6f7420626520696e6372656173656400000000000000000060448201526064016104f8565b6008819055600955565b5f546001600160a01b031633146105d55760405162461bcd60e51b81526004016104f8906117d7565b305f908152600160205260408120549060646105f183856117c0565b6105fb919061180c565b9050610606816110ec565b505050565b5f546001600160a01b031633146106345760405162461bcd60e51b81526004016104f8906117d7565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106a55760405162461bcd60e51b81526004016104f8906117d7565b6106b16012600a6117b2565b6106bf906305f5e1006117c0565b6005556106ce6012600a6117b2565b6106dc906305f5e1006117c0565b600655565b5f546001600160a01b0316331461070a5760405162461bcd60e51b81526004016104f8906117d7565b305f908152600160205260409020548061075e5760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b60448201526064016104f8565b61077a306107735f546001600160a01b031690565b835f6113ce565b50565b5f546001600160a01b031633146107a65760405162461bcd60e51b81526004016104f8906117d7565b5f80546040516001600160a01b039091169047908381818185875af1925050503d805f81146107f0576040519150601f19603f3d011682016040523d82523d5f602084013e6107f5565b606091505b505090508061077a5760405162461bcd60e51b8152602060048201526015602482015274115512081dda5d1a191c985dd85b0819985a5b1959605a1b60448201526064016104f8565b5f61043a338484610d87565b5f546001600160a01b031633146108735760405162461bcd60e51b81526004016104f8906117d7565b600e54600160a01b900460ff16156108cd5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016104f8565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561092f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610953919061182b565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d6919061182b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a44919061182b565b600b80546001600160a01b0319166001600160a01b03928316179055600a8054610a8c923092911690610a79906012906117b2565b610a87906305f5e1006117c0565b610c64565b600a546001600160a01b031663f305d7194730610abd816001600160a01b03165f9081526001602052604090205490565b5f80610ad05f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b36573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b5b9190611846565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610bb0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd49190611871565b50600e805460ff60a01b1916600160a01b17905543600755565b5f546001600160a01b03163314610c175760405162461bcd60e51b81526004016104f8906117d7565b6001600160a01b039091165f90815260036020526040902055565b5f546001600160a01b03163314610c5b5760405162461bcd60e51b81526004016104f8906117d7565b61077a816114c9565b6001600160a01b038316610cc65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f8565b6001600160a01b038216610d275760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f8565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610deb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f8565b5f8111610e535760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016104f8565b6001600160a01b0383165f90815260036020526040812054158015610e8d57506001600160a01b0383165f90815260036020526040902054155b156110da57600e54600160a01b900460ff16610eeb5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c65642079657400000000000060448201526064016104f8565b600554821115610f525760405162461bcd60e51b815260206004820152602c60248201527f5472616e73616374696f6e20616d6f756e74206578636565647320746865206d60448201526b185e1a5b5d5b481b1a5b5a5d60a21b60648201526084016104f8565b600b546001600160a01b03848116911614801590610f7b57506001600160a01b03831661dead14155b1561100d5760065482610fa2856001600160a01b03165f9081526001602052604090205490565b610fac9190611890565b111561100d5760405162461bcd60e51b815260206004820152602a60248201527f526563697069656e742077616c6c6574206578636565647320746865206d61786044820152691a5b5d5b481b1a5b5a5d60b21b60648201526084016104f8565b60075461101b906003611890565b43101561104b57600b546001600160a01b0385811691161461103e57601e611041565b601e5b60ff1690506110da565b600b546001600160a01b039081169085160361106a57506008546110da565b600b546001600160a01b03908116908416036110da57305f9081526001602052604090205461109b6012600a6117b2565b6110a7906161a86117c0565b8111156110d457600454838211156110bd578391505b808211156110c9578091505b6110d2826110ec565b505b50506009545b6110e6848484846113ce565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061111f5761111f6118a3565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611176573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119a919061182b565b816001815181106111ad576111ad6118a3565b6001600160a01b039283166020918202929092010152600a546111d39130911684610c64565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061120b9085905f908690309042906004016118b7565b5f604051808303815f87803b158015611222575f80fd5b505af1158015611234573d5f803e3d5ffd5b504792505f91506064905061124a83602d6117c0565b611254919061180c565b90505f606461126484602d6117c0565b61126e919061180c565b90505f606461127e85600a6117c0565b611288919061180c565b600c546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146112d7576040519150601f19603f3d011682016040523d82523d5f602084013e6112dc565b606091505b5050600d546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611329576040519150601f19603f3d011682016040523d82523d5f602084013e61132e565b606091505b5050600e546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461137b576040519150601f19603f3d011682016040523d82523d5f602084013e611380565b606091505b505080915050806113c55760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016104f8565b50505050505050565b5f60646113db83856117c0565b6113e5919061180c565b90505f6113f28285611926565b6001600160a01b0387165f9081526001602052604081208054929350869290919061141e908490611926565b90915550506001600160a01b0385165f908152600160205260408120805483929061144a908490611890565b9091555050305f908152600160205260408120805484929061146d908490611890565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114b991815260200190565b60405180910390a3505050505050565b6001600160a01b03811661152e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f8565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b818110156115b257858101830151858201604001528201611596565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461077a575f80fd5b5f80604083850312156115f7575f80fd5b8235611602816115d2565b946020939093013593505050565b5f805f60608486031215611622575f80fd5b833561162d816115d2565b9250602084013561163d816115d2565b929592945050506040919091013590565b5f6020828403121561165e575f80fd5b5035919050565b5f60208284031215611675575f80fd5b8135611680816115d2565b9392505050565b5f8060408385031215611698575f80fd5b82356116a3816115d2565b915060208301356116b3816115d2565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561170c57815f19048211156116f2576116f26116be565b808516156116ff57918102915b93841c93908002906116d7565b509250929050565b5f826117225750600161043e565b8161172e57505f61043e565b8160018114611744576002811461174e5761176a565b600191505061043e565b60ff84111561175f5761175f6116be565b50506001821b61043e565b5060208310610133831016604e8410600b841016171561178d575081810a61043e565b61179783836116d2565b805f19048211156117aa576117aa6116be565b029392505050565b5f61168060ff841683611714565b808202811582820484141761043e5761043e6116be565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8261182657634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561183b575f80fd5b8151611680816115d2565b5f805f60608486031215611858575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611881575f80fd5b81518015158114611680575f80fd5b8082018082111561043e5761043e6116be565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119055784516001600160a01b0316835293830193918301916001016118e0565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561043e5761043e6116be56fea2646970667358221220ab0af1fe0c5c71f94190dc8293b3e65e74fc90dc1ebb80f74d864dc5633654ea64736f6c63430008140033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c806384516c8c116100b3578063a9059cbb1161006d578063a9059cbb14610364578063b3ac853714610383578063bbde77c114610397578063da28dac3146103ac578063dd62ed3e146103cb578063f2fde38b1461040f575f80fd5b806384516c8c146102e45780638c0b5e221461030b5780638d8f2adb146103205780638da5cb5b1461033457806395d89b411461014a578063a0ef91df14610350575f80fd5b80635a0ad007116101045780635a0ad00714610211578063613506911461023257806370a0823114610251578063715018a614610285578063751039fc14610299578063808a5457146102ad575f80fd5b806306fdde031461014a578063095ea7b31461018657806318160ddd146101b557806323b872dd146101d7578063313ce567146101f6575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506040805180820182526005815264444145544160d81b6020820152905161017d9190611587565b60405180910390f35b348015610191575f80fd5b506101a56101a03660046115e6565b61042e565b604051901515815260200161017d565b3480156101c0575f80fd5b506101c9610444565b60405190815260200161017d565b3480156101e2575f80fd5b506101a56101f1366004611610565b610464565b348015610201575f80fd5b506040516012815260200161017d565b34801561021c575f80fd5b5061023061022b36600461164e565b610519565b005b34801561023d575f80fd5b5061023061024c36600461164e565b6105ac565b34801561025c575f80fd5b506101c961026b366004611665565b6001600160a01b03165f9081526001602052604090205490565b348015610290575f80fd5b5061023061060b565b3480156102a4575f80fd5b5061023061067c565b3480156102b8575f80fd5b50600b546102cc906001600160a01b031681565b6040516001600160a01b03909116815260200161017d565b3480156102ef575f80fd5b506008546009546040805192835260208301919091520161017d565b348015610316575f80fd5b506101c960055481565b34801561032b575f80fd5b506102306106e1565b34801561033f575f80fd5b505f546001600160a01b03166102cc565b34801561035b575f80fd5b5061023061077d565b34801561036f575f80fd5b506101a561037e3660046115e6565b61083e565b34801561038e575f80fd5b5061023061084a565b3480156103a2575f80fd5b506101c960065481565b3480156103b7575f80fd5b506102306103c63660046115e6565b610bee565b3480156103d6575f80fd5b506101c96103e5366004611687565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561041a575f80fd5b50610230610429366004611665565b610c32565b5f61043a338484610c64565b5060015b92915050565b5f6104516012600a6117b2565b61045f906305f5e1006117c0565b905090565b5f610470848484610d87565b6001600160a01b0384165f9081526002602090815260408083203384529091529020545f19811461050e57828110156105015760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61050e8533858403610c64565b506001949350505050565b5f546001600160a01b031633146105425760405162461bcd60e51b81526004016104f8906117d7565b600854811115801561055657506009548111155b6105a25760405162461bcd60e51b815260206004820152601760248201527f5461782063616e6e6f7420626520696e6372656173656400000000000000000060448201526064016104f8565b6008819055600955565b5f546001600160a01b031633146105d55760405162461bcd60e51b81526004016104f8906117d7565b305f908152600160205260408120549060646105f183856117c0565b6105fb919061180c565b9050610606816110ec565b505050565b5f546001600160a01b031633146106345760405162461bcd60e51b81526004016104f8906117d7565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106a55760405162461bcd60e51b81526004016104f8906117d7565b6106b16012600a6117b2565b6106bf906305f5e1006117c0565b6005556106ce6012600a6117b2565b6106dc906305f5e1006117c0565b600655565b5f546001600160a01b0316331461070a5760405162461bcd60e51b81526004016104f8906117d7565b305f908152600160205260409020548061075e5760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b60448201526064016104f8565b61077a306107735f546001600160a01b031690565b835f6113ce565b50565b5f546001600160a01b031633146107a65760405162461bcd60e51b81526004016104f8906117d7565b5f80546040516001600160a01b039091169047908381818185875af1925050503d805f81146107f0576040519150601f19603f3d011682016040523d82523d5f602084013e6107f5565b606091505b505090508061077a5760405162461bcd60e51b8152602060048201526015602482015274115512081dda5d1a191c985dd85b0819985a5b1959605a1b60448201526064016104f8565b5f61043a338484610d87565b5f546001600160a01b031633146108735760405162461bcd60e51b81526004016104f8906117d7565b600e54600160a01b900460ff16156108cd5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016104f8565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561092f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610953919061182b565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d6919061182b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a44919061182b565b600b80546001600160a01b0319166001600160a01b03928316179055600a8054610a8c923092911690610a79906012906117b2565b610a87906305f5e1006117c0565b610c64565b600a546001600160a01b031663f305d7194730610abd816001600160a01b03165f9081526001602052604090205490565b5f80610ad05f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b36573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b5b9190611846565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610bb0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd49190611871565b50600e805460ff60a01b1916600160a01b17905543600755565b5f546001600160a01b03163314610c175760405162461bcd60e51b81526004016104f8906117d7565b6001600160a01b039091165f90815260036020526040902055565b5f546001600160a01b03163314610c5b5760405162461bcd60e51b81526004016104f8906117d7565b61077a816114c9565b6001600160a01b038316610cc65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f8565b6001600160a01b038216610d275760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f8565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610deb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f8565b5f8111610e535760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016104f8565b6001600160a01b0383165f90815260036020526040812054158015610e8d57506001600160a01b0383165f90815260036020526040902054155b156110da57600e54600160a01b900460ff16610eeb5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c65642079657400000000000060448201526064016104f8565b600554821115610f525760405162461bcd60e51b815260206004820152602c60248201527f5472616e73616374696f6e20616d6f756e74206578636565647320746865206d60448201526b185e1a5b5d5b481b1a5b5a5d60a21b60648201526084016104f8565b600b546001600160a01b03848116911614801590610f7b57506001600160a01b03831661dead14155b1561100d5760065482610fa2856001600160a01b03165f9081526001602052604090205490565b610fac9190611890565b111561100d5760405162461bcd60e51b815260206004820152602a60248201527f526563697069656e742077616c6c6574206578636565647320746865206d61786044820152691a5b5d5b481b1a5b5a5d60b21b60648201526084016104f8565b60075461101b906003611890565b43101561104b57600b546001600160a01b0385811691161461103e57601e611041565b601e5b60ff1690506110da565b600b546001600160a01b039081169085160361106a57506008546110da565b600b546001600160a01b03908116908416036110da57305f9081526001602052604090205461109b6012600a6117b2565b6110a7906161a86117c0565b8111156110d457600454838211156110bd578391505b808211156110c9578091505b6110d2826110ec565b505b50506009545b6110e6848484846113ce565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061111f5761111f6118a3565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611176573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119a919061182b565b816001815181106111ad576111ad6118a3565b6001600160a01b039283166020918202929092010152600a546111d39130911684610c64565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061120b9085905f908690309042906004016118b7565b5f604051808303815f87803b158015611222575f80fd5b505af1158015611234573d5f803e3d5ffd5b504792505f91506064905061124a83602d6117c0565b611254919061180c565b90505f606461126484602d6117c0565b61126e919061180c565b90505f606461127e85600a6117c0565b611288919061180c565b600c546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146112d7576040519150601f19603f3d011682016040523d82523d5f602084013e6112dc565b606091505b5050600d546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611329576040519150601f19603f3d011682016040523d82523d5f602084013e61132e565b606091505b5050600e546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461137b576040519150601f19603f3d011682016040523d82523d5f602084013e611380565b606091505b505080915050806113c55760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016104f8565b50505050505050565b5f60646113db83856117c0565b6113e5919061180c565b90505f6113f28285611926565b6001600160a01b0387165f9081526001602052604081208054929350869290919061141e908490611926565b90915550506001600160a01b0385165f908152600160205260408120805483929061144a908490611890565b9091555050305f908152600160205260408120805484929061146d908490611890565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114b991815260200190565b60405180910390a3505050505050565b6001600160a01b03811661152e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f8565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b818110156115b257858101830151858201604001528201611596565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461077a575f80fd5b5f80604083850312156115f7575f80fd5b8235611602816115d2565b946020939093013593505050565b5f805f60608486031215611622575f80fd5b833561162d816115d2565b9250602084013561163d816115d2565b929592945050506040919091013590565b5f6020828403121561165e575f80fd5b5035919050565b5f60208284031215611675575f80fd5b8135611680816115d2565b9392505050565b5f8060408385031215611698575f80fd5b82356116a3816115d2565b915060208301356116b3816115d2565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561170c57815f19048211156116f2576116f26116be565b808516156116ff57918102915b93841c93908002906116d7565b509250929050565b5f826117225750600161043e565b8161172e57505f61043e565b8160018114611744576002811461174e5761176a565b600191505061043e565b60ff84111561175f5761175f6116be565b50506001821b61043e565b5060208310610133831016604e8410600b841016171561178d575081810a61043e565b61179783836116d2565b805f19048211156117aa576117aa6116be565b029392505050565b5f61168060ff841683611714565b808202811582820484141761043e5761043e6116be565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8261182657634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561183b575f80fd5b8151611680816115d2565b5f805f60608486031215611858575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611881575f80fd5b81518015158114611680575f80fd5b8082018082111561043e5761043e6116be565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119055784516001600160a01b0316835293830193918301916001016118e0565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561043e5761043e6116be56fea2646970667358221220ab0af1fe0c5c71f94190dc8293b3e65e74fc90dc1ebb80f74d864dc5633654ea64736f6c63430008140033

Deployed Bytecode Sourcemap

3433:8650:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4909:88;;;;;;;;;;-1:-1:-1;4979:10:0;;;;;;;;;;;-1:-1:-1;;;4979:10:0;;;;4909:88;;;;4979:10;4909:88;:::i;:::-;;;;;;;;5919:171;;;;;;;;;;-1:-1:-1;5919:171:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5919:171:0;1023:187:1;5201:100:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;5201:100:0;1215:177:1;6098:546:0;;;;;;;;;;-1:-1:-1;6098:546:0;;;;;:::i;:::-;;:::i;5105:88::-;;;;;;;;;;-1:-1:-1;5105:88:0;;3627:2;2000:36:1;;1988:2;1973:18;5105:88:0;1858:184:1;8087:216:0;;;;;;;;;;-1:-1:-1;8087:216:0;;;;;:::i;:::-;;:::i;:::-;;10815:249;;;;;;;;;;-1:-1:-1;10815:249:0;;;;;:::i;:::-;;:::i;5459:119::-;;;;;;;;;;-1:-1:-1;5459:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5552:18:0;5525:7;5552:18;;;:9;:18;;;;;;;5459:119;2502:164;;;;;;;;;;;;;:::i;7949:130::-;;;;;;;;;;;;;:::i;4314:28::-;;;;;;;;;;-1:-1:-1;4314:28:0;;;;-1:-1:-1;;;;;4314:28:0;;;;;;-1:-1:-1;;;;;2648:32:1;;;2630:51;;2618:2;2603:18;4314:28:0;2484:203:1;5309:142:0;;;;;;;;;;-1:-1:-1;5409:6:0;;5436:7;;5309:142;;;2866:25:1;;;2922:2;2907:18;;2900:34;;;;2839:18;5309:142:0;2692:248:1;4047:56:0;;;;;;;;;;;;;;;;10536:271;;;;;;;;;;;;;:::i;1906:87::-;;;;;;;;;;-1:-1:-1;1944:7:0;1971:14;-1:-1:-1;;;;;1971:14:0;1906:87;;10352:176;;;;;;;;;;;;;:::i;5586:174::-;;;;;;;;;;-1:-1:-1;5586:174:0;;;;;:::i;:::-;;:::i;7005:792::-;;;;;;;;;;;;;:::i;4110:61::-;;;;;;;;;;;;;;;;7805:136;;;;;;;;;;-1:-1:-1;7805:136:0;;;;;:::i;:::-;;:::i;5768:143::-;;;;;;;;;;-1:-1:-1;5768:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5876:18:0;;;5849:7;5876:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5768:143;2136:107;;;;;;;;;;-1:-1:-1;2136:107:0;;;;;:::i;:::-;;:::i;5919:171::-;5994:4;6011:49;1548:10;6044:7;6053:6;6011:18;:49::i;:::-;-1:-1:-1;6078:4:0;5919:171;;;;;:::o;5201:100::-;5254:7;3688:18;3627:2;3688;:18;:::i;:::-;3676:30;;:9;:30;:::i;:::-;5274:19;;5201:100;:::o;6098:546::-;6196:4;6213:43;6230:6;6238:9;6249:6;6213:16;:43::i;:::-;-1:-1:-1;;;;;6296:19:0;;6269:24;6296:19;;;:11;:19;;;;;;;;1548:10;6296:33;;;;;;;;-1:-1:-1;;6344:37:0;;6340:275;;6426:6;6406:16;:26;;6398:79;;;;-1:-1:-1;;;6398:79:0;;5228:2:1;6398:79:0;;;5210:21:1;5267:2;5247:18;;;5240:30;5306:34;5286:18;;;5279:62;-1:-1:-1;;;5357:18:1;;;5350:38;5405:19;;6398:79:0;;;;;;;;;6521:67;6540:6;1548:10;6581:6;6562:16;:25;6521:18;:67::i;:::-;-1:-1:-1;6632:4:0;;6098:546;-1:-1:-1;;;;6098:546:0:o;8087:216::-;2041:14;;-1:-1:-1;;;;;2041:14:0;1548:10;2041:30;2033:75;;;;-1:-1:-1;;;2033:75:0;;;;;;;:::i;:::-;8178:6:::1;;8165:9;:19;;:43;;;;;8201:7;;8188:9;:20;;8165:43;8157:79;;;::::0;-1:-1:-1;;;8157:79:0;;5998:2:1;8157:79:0::1;::::0;::::1;5980:21:1::0;6037:2;6017:18;;;6010:30;6076:25;6056:18;;;6049:53;6119:18;;8157:79:0::1;5796:347:1::0;8157:79:0::1;8247:6;:18:::0;;;8276:7:::1;:19:::0;8087:216::o;10815:249::-;2041:14;;-1:-1:-1;;;;;2041:14:0;1548:10;2041:30;2033:75;;;;-1:-1:-1;;;2033:75:0;;;;;;;:::i;:::-;10940:4:::1;10891:28;5552:18:::0;;;:9;:18;;;;;;;11013:3:::1;10979:30;5552:18:::0;10979:7;:30:::1;:::i;:::-;10978:38;;;;:::i;:::-;10957:59;;11027:29;11045:10;11027:17;:29::i;:::-;10880:184;;10815:249:::0;:::o;2502:164::-;2041:14;;-1:-1:-1;;;;;2041:14:0;1548:10;2041:30;2033:75;;;;-1:-1:-1;;;2033:75:0;;;;;;;:::i;:::-;2617:1:::1;2593:14:::0;;2572:48:::1;::::0;-1:-1:-1;;;;;2593:14:0;;::::1;::::0;2572:48:::1;::::0;2617:1;;2572:48:::1;2656:1;2631:27:::0;;-1:-1:-1;;;;;;2631:27:0::1;::::0;;2502:164::o;7949:130::-;2041:14;;-1:-1:-1;;;;;2041:14:0;1548:10;2041:30;2033:75;;;;-1:-1:-1;;;2033:75:0;;;;;;;:::i;:::-;3688:18:::1;3627:2;3688;:18;:::i;:::-;3676:30;::::0;:9:::1;:30;:::i;:::-;8003:11;:26:::0;3688:18:::1;3627:2;3688;:18;:::i;:::-;3676:30;::::0;:9:::1;:30;:::i;:::-;8040:16;:31:::0;7949:130::o;10536:271::-;2041:14;;-1:-1:-1;;;;;2041:14:0;1548:10;2041:30;2033:75;;;;-1:-1:-1;;;2033:75:0;;;;;;;:::i;:::-;10641:4:::1;10592:28;5552:18:::0;;;:9;:18;;;;;;10666:24;10658:58:::1;;;::::0;-1:-1:-1;;;10658:58:0;;6572:2:1;10658:58:0::1;::::0;::::1;6554:21:1::0;6611:2;6591:18;;;6584:30;-1:-1:-1;;;6630:18:1;;;6623:51;6691:18;;10658:58:0::1;6370:345:1::0;10658:58:0::1;10729:70;10759:4;10766:7;1944::::0;1971:14;-1:-1:-1;;;;;1971:14:0;;1906:87;10766:7:::1;10775:20;10797:1;10729:21;:70::i;:::-;10581:226;10536:271::o:0;10352:176::-;2041:14;;-1:-1:-1;;;;;2041:14:0;1548:10;2041:30;2033:75;;;;-1:-1:-1;;;2033:75:0;;;;;;;:::i;:::-;10406:12:::1;1971:14:::0;;10424:46:::1;::::0;-1:-1:-1;;;;;1971:14:0;;;;10444:21:::1;::::0;10406:12;10424:46;10406:12;10424:46;10444:21;1971:14;10424:46:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10405:65;;;10487:7;10479:41;;;::::0;-1:-1:-1;;;10479:41:0;;7132:2:1;10479:41:0::1;::::0;::::1;7114:21:1::0;7171:2;7151:18;;;7144:30;-1:-1:-1;;;7190:18:1;;;7183:51;7251:18;;10479:41:0::1;6930:345:1::0;5586:174:0;5664:4;5681:49;1548:10;5712:9;5723:6;5681:16;:49::i;7005:792::-;2041:14;;-1:-1:-1;;;;;2041:14:0;1548:10;2041:30;2033:75;;;;-1:-1:-1;;;2033:75:0;;;;;;;:::i;:::-;7069:17:::1;::::0;-1:-1:-1;;;7069:17:0;::::1;;;7068:18;7060:57;;;::::0;-1:-1:-1;;;7060:57:0;;7482:2:1;7060:57:0::1;::::0;::::1;7464:21:1::0;7521:2;7501:18;;;7494:30;7560:28;7540:18;;;7533:56;7606:18;;7060:57:0::1;7280:350:1::0;7060:57:0::1;7128:11;:76:::0;;-1:-1:-1;;;;;;7128:76:0::1;7161:42;7128:76:::0;;::::1;::::0;;;7249:21:::1;::::0;;-1:-1:-1;;;7249:21:0;;;;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;7161:42;7249:21:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7231:51:0::1;;7291:4;7298:11;;;;;;;;;-1:-1:-1::0;;;;;7298:11:0::1;-1:-1:-1::0;;;;;7298:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7231:86;::::0;-1:-1:-1;;;;;;7231:86:0::1;::::0;;;;;;-1:-1:-1;;;;;8121:15:1;;;7231:86:0::1;::::0;::::1;8103:34:1::0;8173:15;;8153:18;;;8146:43;8038:18;;7231:86:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7215:13;:102:::0;;-1:-1:-1;;;;;;7215:102:0::1;-1:-1:-1::0;;;;;7215:102:0;;::::1;;::::0;;7370:11:::1;::::0;;7328:69:::1;::::0;7355:4:::1;::::0;7370:11;::::1;::::0;3688:18:::1;::::0;3627:2:::1;::::0;3688:18:::1;:::i;:::-;3676:30;::::0;:9:::1;:30;:::i;:::-;7328:18;:69::i;:::-;7418:11;::::0;-1:-1:-1;;;;;7418:11:0::1;:27;7453:21;7498:4;7518:24;7498:4:::0;-1:-1:-1;;;;;5552:18:0;5525:7;5552:18;;;:9;:18;;;;;;;5459:119;7518:24:::1;7557:1;7573::::0;7589:7:::1;1944::::0;1971:14;-1:-1:-1;;;;;1971:14:0;;1906:87;7589:7:::1;7418:219;::::0;::::1;::::0;;;-1:-1:-1;;;;;;7418:219:0;;;-1:-1:-1;;;;;8559:15:1;;;7418:219:0::1;::::0;::::1;8541:34:1::0;8591:18;;;8584:34;;;;8634:18;;;8627:34;;;;8677:18;;;8670:34;8741:15;;;8720:19;;;8713:44;7611:15:0::1;8773:19:1::0;;;8766:35;8475:19;;7418:219:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;7657:13:0::1;::::0;7688:11:::1;::::0;7650:67:::1;::::0;-1:-1:-1;;;7650:67:0;;-1:-1:-1;;;;;7688:11:0;;::::1;7650:67;::::0;::::1;9297:51:1::0;-1:-1:-1;;9364:18:1;;;9357:34;7657:13:0;::::1;::::0;-1:-1:-1;7650:29:0::1;::::0;9270:18:1;;7650:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7728:17:0::1;:24:::0;;-1:-1:-1;;;;7728:24:0::1;-1:-1:-1::0;;;7728:24:0::1;::::0;;7777:12:::1;7763:11;:26:::0;7005:792::o;7805:136::-;2041:14;;-1:-1:-1;;;;;2041:14:0;1548:10;2041:30;2033:75;;;;-1:-1:-1;;;2033:75:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7899:26:0;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;7805:136::o;2136:107::-;2041:14;;-1:-1:-1;;;;;2041:14:0;1548:10;2041:30;2033:75;;;;-1:-1:-1;;;2033:75:0;;;;;;;:::i;:::-;2209:26:::1;2226:8;2209:16;:26::i;6652:345::-:0;-1:-1:-1;;;;;6755:19:0;;6747:68;;;;-1:-1:-1;;;6747:68:0;;9886:2:1;6747:68:0;;;9868:21:1;9925:2;9905:18;;;9898:30;9964:34;9944:18;;;9937:62;-1:-1:-1;;;10015:18:1;;;10008:34;10059:19;;6747:68:0;9684:400:1;6747:68:0;-1:-1:-1;;;;;6834:21:0;;6826:68;;;;-1:-1:-1;;;6826:68:0;;10291:2:1;6826:68:0;;;10273:21:1;10330:2;10310:18;;;10303:30;10369:34;10349:18;;;10342:62;-1:-1:-1;;;10420:18:1;;;10413:32;10462:19;;6826:68:0;10089:398:1;6826:68:0;-1:-1:-1;;;;;6905:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6957:32;;1361:25:1;;;6957:32:0;;1334:18:1;6957:32:0;;;;;;;6652:345;;;:::o;8714:1630::-;-1:-1:-1;;;;;8809:18:0;;8801:68;;;;-1:-1:-1;;;8801:68:0;;10694:2:1;8801:68:0;;;10676:21:1;10733:2;10713:18;;;10706:30;10772:34;10752:18;;;10745:62;-1:-1:-1;;;10823:18:1;;;10816:35;10868:19;;8801:68:0;10492:401:1;8801:68:0;8897:1;8888:6;:10;8880:71;;;;-1:-1:-1;;;8880:71:0;;11100:2:1;8880:71:0;;;11082:21:1;11139:2;11119:18;;;11112:30;11178:34;11158:18;;;11151:62;-1:-1:-1;;;11229:18:1;;;11222:46;11285:19;;8880:71:0;10898:412:1;8880:71:0;-1:-1:-1;;;;;9000:23:0;;8964:15;9000:23;;;:17;:23;;;;;;:28;:58;;;;-1:-1:-1;;;;;;9032:21:0;;;;;;:17;:21;;;;;;:26;9000:58;8996:1282;;;9083:17;;-1:-1:-1;;;9083:17:0;;;;9075:56;;;;-1:-1:-1;;;9075:56:0;;11517:2:1;9075:56:0;;;11499:21:1;11556:2;11536:18;;;11529:30;11595:28;11575:18;;;11568:56;11641:18;;9075:56:0;11315:350:1;9075:56:0;9164:11;;9154:6;:21;;9146:78;;;;-1:-1:-1;;;9146:78:0;;11872:2:1;9146:78:0;;;11854:21:1;11911:2;11891:18;;;11884:30;11950:34;11930:18;;;11923:62;-1:-1:-1;;;12001:18:1;;;11994:42;12053:19;;9146:78:0;11670:408:1;9146:78:0;9263:13;;-1:-1:-1;;;;;9257:19:0;;;9263:13;;9257:19;;;;:44;;-1:-1:-1;;;;;;9280:21:0;;9294:6;9280:21;;9257:44;9253:182;;;9356:16;;9346:6;9330:13;9340:2;-1:-1:-1;;;;;5552:18:0;5525:7;5552:18;;;:9;:18;;;;;;;5459:119;9330:13;:22;;;;:::i;:::-;:42;;9322:97;;;;-1:-1:-1;;;9322:97:0;;12415:2:1;9322:97:0;;;12397:21:1;12454:2;12434:18;;;12427:30;12493:34;12473:18;;;12466:62;-1:-1:-1;;;12544:18:1;;;12537:40;12594:19;;9322:97:0;12213:406:1;9322:97:0;9470:11;;:15;;9484:1;9470:15;:::i;:::-;9455:12;:30;9451:816;;;9525:13;;-1:-1:-1;;;;;9517:21:0;;;9525:13;;9517:21;9516:33;;9547:2;9516:33;;;9542:2;9516:33;9506:43;;;;9451:816;;;9602:13;;-1:-1:-1;;;;;9602:13:0;;;9594:21;;;;9590:662;;-1:-1:-1;9650:6:0;;9590:662;;;9692:13;;-1:-1:-1;;;;;9692:13:0;;;9686:19;;;;9682:570;;9779:4;9730:28;5552:18;;;:9;:18;;;;;;3953;3627:2;3953;:18;:::i;:::-;3945:26;;:5;:26;:::i;:::-;9812:20;:37;9808:385;;;9899:14;;9944:29;;;9940:64;;;9998:6;9975:29;;9940:64;10058:10;10035:20;:33;10031:72;;;10093:10;10070:33;;10031:72;10130:39;10148:20;10130:17;:39::i;:::-;9851:342;9808:385;-1:-1:-1;;10225:7:0;;9682:570;10288:48;10310:4;10316:2;10320:6;10328:7;10288:21;:48::i;:::-;8790:1554;8714:1630;;;:::o;11072:971::-;11163:16;;;11177:1;11163:16;;;;;;;;11139:21;;11163:16;;;;;;;;;;-1:-1:-1;11163:16:0;11139:40;;11208:4;11190;11195:1;11190:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11190:23:0;;;:7;;;;;;;;;;:23;;;;11234:11;;:18;;;-1:-1:-1;;;11234:18:0;;;;:11;;;;;:16;;:18;;;;;11190:7;;11234:18;;;;;:11;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11224:4;11229:1;11224:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11224:28:0;;;:7;;;;;;;;;:28;11307:11;;11265:68;;11292:4;;11307:11;11321;11265:18;:68::i;:::-;11346:11;;:192;;-1:-1:-1;;;11346:192:0;;-1:-1:-1;;;;;11346:11:0;;;;:62;;:192;;11423:11;;11346;;11465:4;;11492;;11512:15;;11346:192;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11580:21:0;;-1:-1:-1;11551:26:0;;-1:-1:-1;11661:3:0;;-1:-1:-1;11634:23:0;11580:21;11655:2;11634:23;:::i;:::-;11633:31;;;;:::i;:::-;11612:52;-1:-1:-1;11675:15:0;11721:3;11694:23;:18;11715:2;11694:23;:::i;:::-;11693:31;;;;:::i;:::-;11675:49;-1:-1:-1;11735:16:0;11782:3;11755:23;:18;11776:2;11755:23;:::i;:::-;11754:31;;;;:::i;:::-;11817:12;;:40;;11735:50;;-1:-1:-1;11799:12:0;;-1:-1:-1;;;;;11817:12:0;;;;11842:10;;11799:12;11817:40;11799:12;11817:40;11842:10;11817:12;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11882:9:0;;:34;;11798:59;;-1:-1:-1;;;;;;11882:9:0;;11904:7;;11882:34;;;;11904:7;11882:9;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11941:10:0;;:36;;11868:48;;-1:-1:-1;;;;;;11941:10:0;;11964:8;;11941:36;;;;11964:8;11941:10;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11927:50;;;;;12008:7;12000:35;;;;-1:-1:-1;;;12000:35:0;;14075:2:1;12000:35:0;;;14057:21:1;14114:2;14094:18;;;14087:30;-1:-1:-1;;;14133:18:1;;;14126:45;14188:18;;12000:35:0;13873:339:1;12000:35:0;11128:915;;;;;;11072:971;:::o;8311:395::-;8420:17;8461:3;8441:16;8450:7;8441:6;:16;:::i;:::-;8440:24;;;;:::i;:::-;8420:44;-1:-1:-1;8475:22:0;8500:18;8420:44;8500:6;:18;:::i;:::-;-1:-1:-1;;;;;8531:15:0;;;;;;:9;:15;;;;;:25;;8475:43;;-1:-1:-1;8550:6:0;;8531:15;;;:25;;8550:6;;8531:25;:::i;:::-;;;;-1:-1:-1;;;;;;;8567:13:0;;;;;;:9;:13;;;;;:31;;8584:14;;8567:13;:31;;8584:14;;8567:31;:::i;:::-;;;;-1:-1:-1;;8627:4:0;8609:24;;;;:9;:24;;;;;:37;;8637:9;;8609:24;:37;;8637:9;;8609:37;:::i;:::-;;;;;;;;8679:2;-1:-1:-1;;;;;8664:34:0;8673:4;-1:-1:-1;;;;;8664:34:0;;8683:14;8664:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;8664:34:0;;;;;;;;8409:297;;8311:395;;;;:::o;2251:243::-;-1:-1:-1;;;;;2323:22:0;;2315:73;;;;-1:-1:-1;;;2315:73:0;;14552:2:1;2315:73:0;;;14534:21:1;14591:2;14571:18;;;14564:30;14630:34;14610:18;;;14603:62;-1:-1:-1;;;14681:18:1;;;14674:36;14727:19;;2315:73:0;14350:402:1;2315:73:0;2425:14;;;2404:46;;-1:-1:-1;;;;;2404:46:0;;;;2425:14;;;2404:46;;;2461:14;:25;;-1:-1:-1;;;;;;2461:25:0;-1:-1:-1;;;;;2461:25:0;;;;;;;;;;2251:243::o;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:180::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;-1:-1:-1;2198:23:1;;2047:180;-1:-1:-1;2047:180:1:o;2232:247::-;2291:6;2344:2;2332:9;2323:7;2319:23;2315:32;2312:52;;;2360:1;2357;2350:12;2312:52;2399:9;2386:23;2418:31;2443:5;2418:31;:::i;:::-;2468:5;2232:247;-1:-1:-1;;;2232:247:1:o;2945:388::-;3013:6;3021;3074:2;3062:9;3053:7;3049:23;3045:32;3042:52;;;3090:1;3087;3080:12;3042:52;3129:9;3116:23;3148:31;3173:5;3148:31;:::i;:::-;3198:5;-1:-1:-1;3255:2:1;3240:18;;3227:32;3268:33;3227:32;3268:33;:::i;:::-;3320:7;3310:17;;;2945:388;;;;;:::o;3338:127::-;3399:10;3394:3;3390:20;3387:1;3380:31;3430:4;3427:1;3420:15;3454:4;3451:1;3444:15;3470:422;3559:1;3602:5;3559:1;3616:270;3637:7;3627:8;3624:21;3616:270;;;3696:4;3692:1;3688:6;3684:17;3678:4;3675:27;3672:53;;;3705:18;;:::i;:::-;3755:7;3745:8;3741:22;3738:55;;;3775:16;;;;3738:55;3854:22;;;;3814:15;;;;3616:270;;;3620:3;3470:422;;;;;:::o;3897:806::-;3946:5;3976:8;3966:80;;-1:-1:-1;4017:1:1;4031:5;;3966:80;4065:4;4055:76;;-1:-1:-1;4102:1:1;4116:5;;4055:76;4147:4;4165:1;4160:59;;;;4233:1;4228:130;;;;4140:218;;4160:59;4190:1;4181:10;;4204:5;;;4228:130;4265:3;4255:8;4252:17;4249:43;;;4272:18;;:::i;:::-;-1:-1:-1;;4328:1:1;4314:16;;4343:5;;4140:218;;4442:2;4432:8;4429:16;4423:3;4417:4;4414:13;4410:36;4404:2;4394:8;4391:16;4386:2;4380:4;4377:12;4373:35;4370:77;4367:159;;;-1:-1:-1;4479:19:1;;;4511:5;;4367:159;4558:34;4583:8;4577:4;4558:34;:::i;:::-;4628:6;4624:1;4620:6;4616:19;4607:7;4604:32;4601:58;;;4639:18;;:::i;:::-;4677:20;;3897:806;-1:-1:-1;;;3897:806:1:o;4708:140::-;4766:5;4795:47;4836:4;4826:8;4822:19;4816:4;4795:47;:::i;4853:168::-;4926:9;;;4957;;4974:15;;;4968:22;;4954:37;4944:71;;4995:18;;:::i;5435:356::-;5637:2;5619:21;;;5656:18;;;5649:30;5715:34;5710:2;5695:18;;5688:62;5782:2;5767:18;;5435:356::o;6148:217::-;6188:1;6214;6204:132;;6258:10;6253:3;6249:20;6246:1;6239:31;6293:4;6290:1;6283:15;6321:4;6318:1;6311:15;6204:132;-1:-1:-1;6350:9:1;;6148:217::o;7635:251::-;7705:6;7758:2;7746:9;7737:7;7733:23;7729:32;7726:52;;;7774:1;7771;7764:12;7726:52;7806:9;7800:16;7825:31;7850:5;7825:31;:::i;8812:306::-;8900:6;8908;8916;8969:2;8957:9;8948:7;8944:23;8940:32;8937:52;;;8985:1;8982;8975:12;8937:52;9014:9;9008:16;8998:26;;9064:2;9053:9;9049:18;9043:25;9033:35;;9108:2;9097:9;9093:18;9087:25;9077:35;;8812:306;;;;;:::o;9402:277::-;9469:6;9522:2;9510:9;9501:7;9497:23;9493:32;9490:52;;;9538:1;9535;9528:12;9490:52;9570:9;9564:16;9623:5;9616:13;9609:21;9602:5;9599:32;9589:60;;9645:1;9642;9635:12;12083:125;12148:9;;;12169:10;;;12166:36;;;12182:18;;:::i;12756:127::-;12817:10;12812:3;12808:20;12805:1;12798:31;12848:4;12845:1;12838:15;12872:4;12869:1;12862:15;12888:980;13150:4;13198:3;13187:9;13183:19;13229:6;13218:9;13211:25;13255:2;13293:6;13288:2;13277:9;13273:18;13266:34;13336:3;13331:2;13320:9;13316:18;13309:31;13360:6;13395;13389:13;13426:6;13418;13411:22;13464:3;13453:9;13449:19;13442:26;;13503:2;13495:6;13491:15;13477:29;;13524:1;13534:195;13548:6;13545:1;13542:13;13534:195;;;13613:13;;-1:-1:-1;;;;;13609:39:1;13597:52;;13704:15;;;;13669:12;;;;13645:1;13563:9;13534:195;;;-1:-1:-1;;;;;;;13785:32:1;;;;13780:2;13765:18;;13758:60;-1:-1:-1;;;13849:3:1;13834:19;13827:35;13746:3;12888:980;-1:-1:-1;;;12888:980:1:o;14217:128::-;14284:9;;;14305:11;;;14302:37;;;14319:18;;:::i

Swarm Source

ipfs://ab0af1fe0c5c71f94190dc8293b3e65e74fc90dc1ebb80f74d864dc5633654ea

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

DÆTA is a shift in cloud storage technology, offering a decentralized alternative to traditional centralized solutions. At its core, DÆTA is a robust, blockchain-based storage platform that leverages a network of distributed nodes to provide secure, private and efficient data storage.

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.