ETH Price: $1,858.65 (-5.81%)
 

Overview

ETH Balance

1 wei

Eth Value

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

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve241511872026-01-03 2:39:2351 days ago1767407963IN
0xE68e1F30...f472D92ED
0 ETH0.000013070.54106347
Approve213986812024-12-14 5:31:59435 days ago1734154319IN
0xE68e1F30...f472D92ED
0 ETH0.000202538.38119527
Approve170175342023-04-10 11:34:111049 days ago1681126451IN
0xE68e1F30...f472D92ED
0 ETH0.0009754521
Approve170113502023-04-09 14:32:231050 days ago1681050743IN
0xE68e1F30...f472D92ED
0 ETH0.0005132221.2376198
Approve170101752023-04-09 10:32:471050 days ago1681036367IN
0xE68e1F30...f472D92ED
0 ETH0.000536522.2009725
Approve169991492023-04-07 21:05:111052 days ago1680901511IN
0xE68e1F30...f472D92ED
0 ETH0.0010295422.13609875
Approve169439402023-03-31 1:32:591060 days ago1680226379IN
0xE68e1F30...f472D92ED
0 ETH0.001046722.53399868
Approve169281062023-03-28 20:08:471062 days ago1680034127IN
0xE68e1F30...f472D92ED
0 ETH0.0010214142.26674883
Approve169240592023-03-28 6:27:231062 days ago1679984843IN
0xE68e1F30...f472D92ED
0 ETH0.0016115734.65
Approve168835612023-03-22 13:55:111068 days ago1679493311IN
0xE68e1F30...f472D92ED
0 ETH0.0004539518.78469935
Approve168810452023-03-22 5:25:591068 days ago1679462759IN
0xE68e1F30...f472D92ED
0 ETH0.0005192211.2507936
Approve168772422023-03-21 16:36:591069 days ago1679416619IN
0xE68e1F30...f472D92ED
0 ETH0.0015166132.6503962
Approve168769952023-03-21 15:46:471069 days ago1679413607IN
0xE68e1F30...f472D92ED
0 ETH0.0012889527.71354386
Approve168570582023-03-18 20:36:351072 days ago1679171795IN
0xE68e1F30...f472D92ED
0 ETH0.0006361513.69549411
Approve168525622023-03-18 5:28:111072 days ago1679117291IN
0xE68e1F30...f472D92ED
0 ETH0.0006798614.61754896
Approve168489212023-03-17 17:10:231073 days ago1679073023IN
0xE68e1F30...f472D92ED
0 ETH0.0005799824
Approve168477512023-03-17 13:12:471073 days ago1679058767IN
0xE68e1F30...f472D92ED
0 ETH0.0012056425.95576938
Approve168459852023-03-17 7:14:471073 days ago1679037287IN
0xE68e1F30...f472D92ED
0 ETH0.000877918.9
Approve168448192023-03-17 3:19:351074 days ago1679023175IN
0xE68e1F30...f472D92ED
0 ETH0.0009582420.62952744
Approve168393842023-03-16 9:00:471074 days ago1678957247IN
0xE68e1F30...f472D92ED
0 ETH0.0009754521
Approve168390072023-03-16 7:43:471074 days ago1678952627IN
0xE68e1F30...f472D92ED
0 ETH0.0007211815.50606633
Transfer168387902023-03-16 6:59:351074 days ago1678949975IN
0xE68e1F30...f472D92ED
0 ETH0.0028601655
Approve168381712023-03-16 4:55:231075 days ago1678942523IN
0xE68e1F30...f472D92ED
0 ETH0.000830217.85
Approve168377292023-03-16 3:25:351075 days ago1678937135IN
0xE68e1F30...f472D92ED
0 ETH0.0008588718.49025839
Approve168376472023-03-16 3:09:111075 days ago1678936151IN
0xE68e1F30...f472D92ED
0 ETH0.0009261519.93876988
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Add Liquidity ET...173489412023-05-27 7:34:471002 days ago1685172887
0xE68e1F30...f472D92ED
0.00016131 ETH
Transfer173489412023-05-27 7:34:471002 days ago1685172887
0xE68e1F30...f472D92ED
0.00161318 ETH
Transfer173489412023-05-27 7:34:471002 days ago1685172887
0xE68e1F30...f472D92ED
0.0017745 ETH
Add Liquidity ET...170415422023-04-13 23:14:351046 days ago1681427675
0xE68e1F30...f472D92ED
0.00027164 ETH
Transfer170415422023-04-13 23:14:351046 days ago1681427675
0xE68e1F30...f472D92ED
0.00271643 ETH
Transfer170415422023-04-13 23:14:351046 days ago1681427675
0xE68e1F30...f472D92ED
0.00298808 ETH
Add Liquidity ET...170038252023-04-08 12:58:111051 days ago1680958691
0xE68e1F30...f472D92ED
0.00004422 ETH
Transfer170038252023-04-08 12:58:111051 days ago1680958691
0xE68e1F30...f472D92ED
0.00044223 ETH
Transfer170038252023-04-08 12:58:111051 days ago1680958691
0xE68e1F30...f472D92ED
0.00048646 ETH
Add Liquidity ET...169582642023-04-02 1:50:231058 days ago1680400223
0xE68e1F30...f472D92ED
0.00008979 ETH
Transfer169582642023-04-02 1:50:231058 days ago1680400223
0xE68e1F30...f472D92ED
0.00089796 ETH
Transfer169582642023-04-02 1:50:231058 days ago1680400223
0xE68e1F30...f472D92ED
0.00098776 ETH
Add Liquidity ET...169182912023-03-27 11:02:231063 days ago1679914943
0xE68e1F30...f472D92ED
0.00003307 ETH
Transfer169182912023-03-27 11:02:231063 days ago1679914943
0xE68e1F30...f472D92ED
0.00033077 ETH
Transfer169182912023-03-27 11:02:231063 days ago1679914943
0xE68e1F30...f472D92ED
0.00036385 ETH
Add Liquidity ET...169089952023-03-26 3:42:111065 days ago1679802131
0xE68e1F30...f472D92ED
0.00006964 ETH
Transfer169089952023-03-26 3:42:111065 days ago1679802131
0xE68e1F30...f472D92ED
0.00069644 ETH
Transfer169089952023-03-26 3:42:111065 days ago1679802131
0xE68e1F30...f472D92ED
0.00076609 ETH
Add Liquidity ET...168938732023-03-24 0:43:471067 days ago1679618627
0xE68e1F30...f472D92ED
0.00014709 ETH
Transfer168938732023-03-24 0:43:471067 days ago1679618627
0xE68e1F30...f472D92ED
0.0014709 ETH
Transfer168938732023-03-24 0:43:471067 days ago1679618627
0xE68e1F30...f472D92ED
0.00161799 ETH
Add Liquidity ET...168807132023-03-22 4:19:231069 days ago1679458763
0xE68e1F30...f472D92ED
0.0001456 ETH
Transfer168807132023-03-22 4:19:231069 days ago1679458763
0xE68e1F30...f472D92ED
0.001456 ETH
Transfer168807132023-03-22 4:19:231069 days ago1679458763
0xE68e1F30...f472D92ED
0.0016016 ETH
Add Liquidity ET...168800792023-03-22 2:11:471069 days ago1679451107
0xE68e1F30...f472D92ED
0.00062628 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-03-12
*/

// SPDX-License-Identifier: MIT

/**
 * Website: https://www.dogfood.fyi
 * Twitter: https://twitter.com/dogfood_erc
 * Telegram: https://t.me/DOGFOOD_ERC
*/

pragma solidity ^0.8.0;

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}

interface IUniswapRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

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

abstract contract Ownable {
    address internal _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "you are not owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract ERC20 is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address public fundAddress;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    mapping(address => bool) public _isExcludeFromFee;
    
    uint256 private _totalSupply;

    IUniswapRouter public _uniswapRouter;

    mapping(address => bool) public isMarketPair;
    bool private inSwap;

    uint256 private constant MAX = ~uint256(0);

    uint256 public _buyFundFee = 250;
    uint256 public _buyLPFee = 50;
    uint256 public _sellFundFee = 250;
    uint256 public _sellLPFee = 50;

    address public _uniswapPair;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (){
        _name = "DOGFOOD";
        _symbol = "DOGFOOD";
        _decimals = 9;
        uint256 Supply = 100000000000;

        IUniswapRouter swapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _uniswapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        address swapPair = swapFactory.createPair(address(this), swapRouter.WETH());
        _uniswapPair = swapPair;
        isMarketPair[swapPair] = true;

        _totalSupply = Supply * 10 ** _decimals;

        address bossWallet = msg.sender;
        _balances[bossWallet] = _totalSupply;
        emit Transfer(address(0), bossWallet, _totalSupply);

        fundAddress = msg.sender;

        _isExcludeFromFee[address(this)] = true;
        _isExcludeFromFee[address(swapRouter)] = true;
        _isExcludeFromFee[msg.sender] = true;
        _isExcludeFromFee[bossWallet] = true;
    }

    function symbol() external view override returns (string memory) {
        return _symbol;
    }

    function name() external view override returns (string memory) {
        return _name;
    }

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function DesignBuy(uint256 newFundFee, uint256 newLpFee) public onlyOwner{
        require(newFundFee + newLpFee <= 4000,"too high");
        _buyFundFee = newFundFee;
        _buyLPFee = newLpFee;
    }

    function DesignSell(uint256 newFundFee, uint256 newLpFee) public onlyOwner{
        require(newFundFee + newLpFee <= 4000,"too high");
        _sellFundFee = newFundFee;
        _sellLPFee = newLpFee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        bool takeFee;
        bool sellFlag;

        if (isMarketPair[to] && !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to]) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if (contractTokenBalance > totalSupply() / 10**8) {
                uint256 taxFee = _buyFundFee + _buyLPFee + _sellFundFee + _sellLPFee;
                uint256 numTokensSellToFund = (amount * taxFee / 5000);
                numTokensSellToFund = numTokensSellToFund > contractTokenBalance ? 
                                                            contractTokenBalance:numTokensSellToFund;
                swapTokenForETH(numTokensSellToFund, taxFee);
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            takeFee = true;
        }

        if (isMarketPair[to]) { sellFlag = true; }

        _transferToken(from, to, amount, takeFee, sellFlag);
    }

    function _transferToken(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee,
        bool sellFlag
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 taxFee;

            if (sellFlag) {
                taxFee = _sellFundFee + _sellLPFee;
            } else {
                taxFee = _buyFundFee + _buyLPFee;
            }
            uint256 swapAmount = tAmount * taxFee / 10000;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] = _balances[address(this)] + swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

        _balances[recipient] = _balances[recipient] + (tAmount - feeAmount);
        emit Transfer(sender, recipient, tAmount - feeAmount);

    }

    event catchEvent(uint8);

    function swapTokenForETH(uint256 tokenAmount, uint256 taxFee) private lockTheSwap {
        taxFee += taxFee;
        uint256 lpFee = _sellLPFee + _buyLPFee;
        uint256 lpAmount = tokenAmount * lpFee / taxFee;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();
        try _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount - lpAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch { emit catchEvent(0); }

        taxFee -= lpFee;

        uint256 WETHBalance = address(this).balance;
        uint256 fundAmount = WETHBalance * (_buyFundFee + _sellFundFee) * 2 / taxFee;
        if (fundAmount > 0 && fundAddress != address(0)) {
            payable(fundAddress).transfer(fundAmount);
        }

        if (lpAmount > 0) {
            uint256 lpWeth = WETHBalance * lpFee / taxFee;
            if (lpWeth > 0) {
                try _uniswapRouter.addLiquidityETH{value:lpWeth}(
                    address(this), lpAmount,0, 0, fundAddress, block.timestamp
                ) {} catch { emit catchEvent(1); }
            }
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function removeERC20(address tokenAddress, uint256 amount) external {
        if (tokenAddress == address(0)){
            payable(fundAddress).transfer(amount);
        }else if(tokenAddress != address(this)){
            IERC20(tokenAddress).transfer(fundAddress, amount);
        }
    }

    function multiExcludeFromFees(address[] calldata addresses, bool value) public onlyOwner{
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            _isExcludeFromFee[addresses[i]] = value;
        }
    }

    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":"value","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"catchEvent","type":"event"},{"inputs":[{"internalType":"uint256","name":"newFundFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"}],"name":"DesignBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFundFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"}],"name":"DesignSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"multiExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

608060405260fa600c556032600d5560fa600e556032600f553480156200002557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350604080518082019091526007808252661113d1d193d3d160ca1b60209092019182526200009791600491620003c2565b50604080518082019091526007808252661113d1d193d3d160ca1b6020909201918252620000c891600591620003c2565b506006805460ff1916600990811790915580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915530600090815260026020908152604080832084845282528083206000199055805163c45a015560e01b8152905164174876e800949392849263c45a01559260048083019392829003018186803b1580156200015a57600080fd5b505afa1580156200016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000195919062000468565b90506000816001600160a01b031663c9c6539630856001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001e357600080fd5b505afa158015620001f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021e919062000468565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200026757600080fd5b505af11580156200027c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a2919062000468565b601080546001600160a01b0319166001600160a01b0383169081179091556000908152600a60208190526040909120805460ff19166001179055600654919250620002f19160ff1690620004e1565b620002fd9085620005a2565b600881905533600081815260016020908152604080832085905551938452919283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600380546001600160a01b0319163390811790915530600090815260076020526040808220805460ff1990811660019081179092556001600160a01b03988916845282842080548216831790559383528183208054851682179055939096168152949094208054909416179092555062000617915050565b828054620003d090620005c4565b90600052602060002090601f016020900481019282620003f457600085556200043f565b82601f106200040f57805160ff19168380011785556200043f565b828001600101855582156200043f579182015b828111156200043f57825182559160200191906001019062000422565b506200044d92915062000451565b5090565b5b808211156200044d576000815560010162000452565b6000602082840312156200047a578081fd5b81516001600160a01b038116811462000491578182fd5b9392505050565b600181815b80851115620004d9578160001904821115620004bd57620004bd62000601565b80851615620004cb57918102915b93841c93908002906200049d565b509250929050565b60006200049160ff841683600082620004fd575060016200059c565b816200050c575060006200059c565b8160018114620005255760028114620005305762000550565b60019150506200059c565b60ff84111562000544576200054462000601565b50506001821b6200059c565b5060208310610133831016604e8410600b841016171562000575575081810a6200059c565b62000581838362000498565b806000190482111562000598576200059862000601565b0290505b92915050565b6000816000190483118215151615620005bf57620005bf62000601565b500290565b600181811c90821680620005d957607f821691505b60208210811415620005fb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6115be80620006276000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063b9fbc49d1161008a578063dd62ed3e11610064578063dd62ed3e14610442578063e5615dd114610488578063e82bef29146104a8578063f2fde38b146104c857600080fd5b8063b9fbc49d146103f6578063bceaaf1e1461040c578063ce0192f91461042c57600080fd5b8063715018a6146103585780638637b0691461036d5780638da5cb5b1461038d57806395d89b41146103ab578063a9059cbb146103c0578063adc7955d146103e057600080fd5b80633bfe62ca116101235780633bfe62ca146102625780633db02103146102785780633ecad2711461029a5780634bf28fd0146102ca57806365b61b771461030257806370a082311461032257600080fd5b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101d157806323b872dd146101f0578063313ce5671461021057806336b2e0271461023257600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018b6104e8565b604051610198919061139a565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004611284565b61057a565b6040519015158152602001610198565b3480156101dd57600080fd5b506008545b604051908152602001610198565b3480156101fc57600080fd5b506101c161020b366004611244565b610590565b34801561021c57600080fd5b5060065460405160ff9091168152602001610198565b34801561023e57600080fd5b506101c161024d3660046111cd565b60076020526000908152604090205460ff1681565b34801561026e57600080fd5b506101e2600e5481565b34801561028457600080fd5b5061029861029336600461134c565b610627565b005b3480156102a657600080fd5b506101c16102b53660046111cd565b600a6020526000908152604090205460ff1681565b3480156102d657600080fd5b506010546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610198565b34801561030e57600080fd5b506009546102ea906001600160a01b031681565b34801561032e57600080fd5b506101e261033d3660046111cd565b6001600160a01b031660009081526001602052604090205490565b34801561036457600080fd5b506102986106ab565b34801561037957600080fd5b50610298610388366004611284565b61071f565b34801561039957600080fd5b506000546001600160a01b03166102ea565b3480156103b757600080fd5b5061018b610806565b3480156103cc57600080fd5b506101c16103db366004611284565b610815565b3480156103ec57600080fd5b506101e2600f5481565b34801561040257600080fd5b506101e2600d5481565b34801561041857600080fd5b506102986104273660046112af565b610822565b34801561043857600080fd5b506101e2600c5481565b34801561044e57600080fd5b506101e261045d36600461120c565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561049457600080fd5b506102986104a336600461134c565b6108dc565b3480156104b457600080fd5b506003546102ea906001600160a01b031681565b3480156104d457600080fd5b506102986104e33660046111cd565b610957565b6060600480546104f7906114f6565b80601f0160208091040260200160405190810160405280929190818152602001828054610523906114f6565b80156105705780601f1061054557610100808354040283529160200191610570565b820191906000526020600020905b81548152906001019060200180831161055357829003601f168201915b5050505050905090565b6000610587338484610a1d565b50600192915050565b600061059d848484610a7e565b6001600160a01b03841660009081526002602090815260408083203384529091529020546000191461061d576001600160a01b03841660009081526002602090815260408083203384529091529020546105f89083906114df565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b0316331461065a5760405162461bcd60e51b8152600401610651906113ed565b60405180910390fd5b610fa06106678284611488565b11156106a05760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610651565b600e91909155600f55565b6000546001600160a01b031633146106d55760405162461bcd60e51b8152600401610651906113ed565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03821661076c576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610767573d6000803e3d6000fd5b505050565b6001600160a01b03821630146108025760035460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b1580156107ca57600080fd5b505af11580156107de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107679190611330565b5050565b6060600580546104f7906114f6565b6000610587338484610a7e565b6000546001600160a01b0316331461084c5760405162461bcd60e51b8152600401610651906113ed565b60c9821061085957600080fd5b60005b828110156108d657816007600086868581811061088957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061089e91906111cd565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556108cf81611531565b905061085c565b50505050565b6000546001600160a01b031633146109065760405162461bcd60e51b8152600401610651906113ed565b610fa06109138284611488565b111561094c5760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610651565b600c91909155600d55565b6000546001600160a01b031633146109815760405162461bcd60e51b8152600401610651906113ed565b6001600160a01b0381166109c25760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610651565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526001602052604090205481811015610ada5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610651565b6001600160a01b0383166000908152600a6020526040812054819060ff168015610b075750600b5460ff16155b8015610b2c57506001600160a01b03861660009081526007602052604090205460ff16155b8015610b5157506001600160a01b03851660009081526007602052604090205460ff16155b15610be85730600090815260016020526040902054600854610b78906305f5e100906114a0565b811115610be6576000600f54600e54600d54600c54610b979190611488565b610ba19190611488565b610bab9190611488565b90506000611388610bbc83896114c0565b610bc691906114a0565b9050828111610bd55780610bd7565b825b9050610be38183610c7d565b50505b505b6001600160a01b03861660009081526007602052604090205460ff16158015610c2a57506001600160a01b03851660009081526007602052604090205460ff16155b8015610c395750600b5460ff16155b15610c4357600191505b6001600160a01b0385166000908152600a602052604090205460ff1615610c68575060015b610c75868686858561101f565b505050505050565b600b805460ff19166001179055610c948180611488565b90506000600d54600f54610ca89190611488565b9050600082610cb783866114c0565b610cc191906114a0565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610d0957634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610d5d57600080fd5b505afa158015610d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9591906111f0565b81600181518110610db657634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526009541663791ac947610ddf84886114df565b60008430426040518663ffffffff1660e01b8152600401610e04959493929190611418565b600060405180830381600087803b158015610e1e57600080fd5b505af1925050508015610e2f575060015b610e6857604051600081527fbdf1a66ac2980d0df84c6c5344b4d62f3f4578219817cf4bcb8d8a983bbe6f169060200160405180910390a15b610e7283856114df565b93506000479050600085600e54600c54610e8c9190611488565b610e9690846114c0565b610ea19060026114c0565b610eab91906114a0565b9050600081118015610ec757506003546001600160a01b031615155b15610f08576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f06573d6000803e3d6000fd5b505b831561100c57600086610f1b87856114c0565b610f2591906114a0565b9050801561100a5760095460035460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b158015610f9857600080fd5b505af193505050508015610fc9575060408051601f3d908101601f19168201909252610fc69181019061136d565b60015b61100657604051600181527fbdf1a66ac2980d0df84c6c5344b4d62f3f4578219817cf4bcb8d8a983bbe6f169060200160405180910390a161100a565b5050505b505b5050600b805460ff191690555050505050565b6001600160a01b0385166000908152600160205260409020546110439084906114df565b6001600160a01b038616600090815260016020526040812091909155821561113d576000821561108457600f54600e5461107d9190611488565b9050611097565b600d54600c546110949190611488565b90505b60006127106110a683886114c0565b6110b091906114a0565b9050801561113a576110c28184611488565b306000908152600160205260409020549093506110e0908290611488565b30600081815260016020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111319085815260200190565b60405180910390a35b50505b61114781856114df565b6001600160a01b03861660009081526001602052604090205461116a9190611488565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111b484886114df565b60405190815260200160405180910390a3505050505050565b6000602082840312156111de578081fd5b81356111e981611562565b9392505050565b600060208284031215611201578081fd5b81516111e981611562565b6000806040838503121561121e578081fd5b823561122981611562565b9150602083013561123981611562565b809150509250929050565b600080600060608486031215611258578081fd5b833561126381611562565b9250602084013561127381611562565b929592945050506040919091013590565b60008060408385031215611296578182fd5b82356112a181611562565b946020939093013593505050565b6000806000604084860312156112c3578283fd5b833567ffffffffffffffff808211156112da578485fd5b818601915086601f8301126112ed578485fd5b8135818111156112fb578586fd5b8760208260051b850101111561130f578586fd5b602092830195509350508401356113258161157a565b809150509250925092565b600060208284031215611341578081fd5b81516111e98161157a565b6000806040838503121561135e578182fd5b50508035926020909101359150565b600080600060608486031215611381578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156113c6578581018301518582016040015282016113aa565b818111156113d75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156114675784516001600160a01b031683529383019391830191600101611442565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561149b5761149b61154c565b500190565b6000826114bb57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156114da576114da61154c565b500290565b6000828210156114f1576114f161154c565b500390565b600181811c9082168061150a57607f821691505b6020821081141561152b57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156115455761154561154c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461157757600080fd5b50565b801515811461157757600080fdfea26469706673582212200bcea136748d6106f7421a4ef682c307d9d6d9b855866bb2a2033819718f47c264736f6c63430008040033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063b9fbc49d1161008a578063dd62ed3e11610064578063dd62ed3e14610442578063e5615dd114610488578063e82bef29146104a8578063f2fde38b146104c857600080fd5b8063b9fbc49d146103f6578063bceaaf1e1461040c578063ce0192f91461042c57600080fd5b8063715018a6146103585780638637b0691461036d5780638da5cb5b1461038d57806395d89b41146103ab578063a9059cbb146103c0578063adc7955d146103e057600080fd5b80633bfe62ca116101235780633bfe62ca146102625780633db02103146102785780633ecad2711461029a5780634bf28fd0146102ca57806365b61b771461030257806370a082311461032257600080fd5b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101d157806323b872dd146101f0578063313ce5671461021057806336b2e0271461023257600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018b6104e8565b604051610198919061139a565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004611284565b61057a565b6040519015158152602001610198565b3480156101dd57600080fd5b506008545b604051908152602001610198565b3480156101fc57600080fd5b506101c161020b366004611244565b610590565b34801561021c57600080fd5b5060065460405160ff9091168152602001610198565b34801561023e57600080fd5b506101c161024d3660046111cd565b60076020526000908152604090205460ff1681565b34801561026e57600080fd5b506101e2600e5481565b34801561028457600080fd5b5061029861029336600461134c565b610627565b005b3480156102a657600080fd5b506101c16102b53660046111cd565b600a6020526000908152604090205460ff1681565b3480156102d657600080fd5b506010546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610198565b34801561030e57600080fd5b506009546102ea906001600160a01b031681565b34801561032e57600080fd5b506101e261033d3660046111cd565b6001600160a01b031660009081526001602052604090205490565b34801561036457600080fd5b506102986106ab565b34801561037957600080fd5b50610298610388366004611284565b61071f565b34801561039957600080fd5b506000546001600160a01b03166102ea565b3480156103b757600080fd5b5061018b610806565b3480156103cc57600080fd5b506101c16103db366004611284565b610815565b3480156103ec57600080fd5b506101e2600f5481565b34801561040257600080fd5b506101e2600d5481565b34801561041857600080fd5b506102986104273660046112af565b610822565b34801561043857600080fd5b506101e2600c5481565b34801561044e57600080fd5b506101e261045d36600461120c565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561049457600080fd5b506102986104a336600461134c565b6108dc565b3480156104b457600080fd5b506003546102ea906001600160a01b031681565b3480156104d457600080fd5b506102986104e33660046111cd565b610957565b6060600480546104f7906114f6565b80601f0160208091040260200160405190810160405280929190818152602001828054610523906114f6565b80156105705780601f1061054557610100808354040283529160200191610570565b820191906000526020600020905b81548152906001019060200180831161055357829003601f168201915b5050505050905090565b6000610587338484610a1d565b50600192915050565b600061059d848484610a7e565b6001600160a01b03841660009081526002602090815260408083203384529091529020546000191461061d576001600160a01b03841660009081526002602090815260408083203384529091529020546105f89083906114df565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b0316331461065a5760405162461bcd60e51b8152600401610651906113ed565b60405180910390fd5b610fa06106678284611488565b11156106a05760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610651565b600e91909155600f55565b6000546001600160a01b031633146106d55760405162461bcd60e51b8152600401610651906113ed565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03821661076c576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610767573d6000803e3d6000fd5b505050565b6001600160a01b03821630146108025760035460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b1580156107ca57600080fd5b505af11580156107de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107679190611330565b5050565b6060600580546104f7906114f6565b6000610587338484610a7e565b6000546001600160a01b0316331461084c5760405162461bcd60e51b8152600401610651906113ed565b60c9821061085957600080fd5b60005b828110156108d657816007600086868581811061088957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061089e91906111cd565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556108cf81611531565b905061085c565b50505050565b6000546001600160a01b031633146109065760405162461bcd60e51b8152600401610651906113ed565b610fa06109138284611488565b111561094c5760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610651565b600c91909155600d55565b6000546001600160a01b031633146109815760405162461bcd60e51b8152600401610651906113ed565b6001600160a01b0381166109c25760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610651565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526001602052604090205481811015610ada5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610651565b6001600160a01b0383166000908152600a6020526040812054819060ff168015610b075750600b5460ff16155b8015610b2c57506001600160a01b03861660009081526007602052604090205460ff16155b8015610b5157506001600160a01b03851660009081526007602052604090205460ff16155b15610be85730600090815260016020526040902054600854610b78906305f5e100906114a0565b811115610be6576000600f54600e54600d54600c54610b979190611488565b610ba19190611488565b610bab9190611488565b90506000611388610bbc83896114c0565b610bc691906114a0565b9050828111610bd55780610bd7565b825b9050610be38183610c7d565b50505b505b6001600160a01b03861660009081526007602052604090205460ff16158015610c2a57506001600160a01b03851660009081526007602052604090205460ff16155b8015610c395750600b5460ff16155b15610c4357600191505b6001600160a01b0385166000908152600a602052604090205460ff1615610c68575060015b610c75868686858561101f565b505050505050565b600b805460ff19166001179055610c948180611488565b90506000600d54600f54610ca89190611488565b9050600082610cb783866114c0565b610cc191906114a0565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610d0957634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610d5d57600080fd5b505afa158015610d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9591906111f0565b81600181518110610db657634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526009541663791ac947610ddf84886114df565b60008430426040518663ffffffff1660e01b8152600401610e04959493929190611418565b600060405180830381600087803b158015610e1e57600080fd5b505af1925050508015610e2f575060015b610e6857604051600081527fbdf1a66ac2980d0df84c6c5344b4d62f3f4578219817cf4bcb8d8a983bbe6f169060200160405180910390a15b610e7283856114df565b93506000479050600085600e54600c54610e8c9190611488565b610e9690846114c0565b610ea19060026114c0565b610eab91906114a0565b9050600081118015610ec757506003546001600160a01b031615155b15610f08576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f06573d6000803e3d6000fd5b505b831561100c57600086610f1b87856114c0565b610f2591906114a0565b9050801561100a5760095460035460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b158015610f9857600080fd5b505af193505050508015610fc9575060408051601f3d908101601f19168201909252610fc69181019061136d565b60015b61100657604051600181527fbdf1a66ac2980d0df84c6c5344b4d62f3f4578219817cf4bcb8d8a983bbe6f169060200160405180910390a161100a565b5050505b505b5050600b805460ff191690555050505050565b6001600160a01b0385166000908152600160205260409020546110439084906114df565b6001600160a01b038616600090815260016020526040812091909155821561113d576000821561108457600f54600e5461107d9190611488565b9050611097565b600d54600c546110949190611488565b90505b60006127106110a683886114c0565b6110b091906114a0565b9050801561113a576110c28184611488565b306000908152600160205260409020549093506110e0908290611488565b30600081815260016020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111319085815260200190565b60405180910390a35b50505b61114781856114df565b6001600160a01b03861660009081526001602052604090205461116a9190611488565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111b484886114df565b60405190815260200160405180910390a3505050505050565b6000602082840312156111de578081fd5b81356111e981611562565b9392505050565b600060208284031215611201578081fd5b81516111e981611562565b6000806040838503121561121e578081fd5b823561122981611562565b9150602083013561123981611562565b809150509250929050565b600080600060608486031215611258578081fd5b833561126381611562565b9250602084013561127381611562565b929592945050506040919091013590565b60008060408385031215611296578182fd5b82356112a181611562565b946020939093013593505050565b6000806000604084860312156112c3578283fd5b833567ffffffffffffffff808211156112da578485fd5b818601915086601f8301126112ed578485fd5b8135818111156112fb578586fd5b8760208260051b850101111561130f578586fd5b602092830195509350508401356113258161157a565b809150509250925092565b600060208284031215611341578081fd5b81516111e98161157a565b6000806040838503121561135e578182fd5b50508035926020909101359150565b600080600060608486031215611381578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156113c6578581018301518582016040015282016113aa565b818111156113d75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156114675784516001600160a01b031683529383019391830191600101611442565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561149b5761149b61154c565b500190565b6000826114bb57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156114da576114da61154c565b500290565b6000828210156114f1576114f161154c565b500390565b600181811c9082168061150a57607f821691505b6020821081141561152b57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156115455761154561154c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461157757600080fd5b50565b801515811461157757600080fdfea26469706673582212200bcea136748d6106f7421a4ef682c307d9d6d9b855866bb2a2033819718f47c264736f6c63430008040033

Deployed Bytecode Sourcemap

2702:8182:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4701:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5464:159;;;;;;;;;;-1:-1:-1;5464:159:0;;;;;:::i;:::-;;:::i;:::-;;;4659:14:1;;4652:22;4634:41;;4622:2;4607:18;5464:159:0;4589:92:1;4905:100:0;;;;;;;;;;-1:-1:-1;4985:12:0;;4905:100;;;7431:25:1;;;7419:2;7404:18;4905:100:0;7386:76:1;5631:336:0;;;;;;;;;;-1:-1:-1;5631:336:0;;;;;:::i;:::-;;:::i;4803:94::-;;;;;;;;;;-1:-1:-1;4880:9:0;;4803:94;;4880:9;;;;5068:36:1;;5056:2;5041:18;4803:94:0;5023:87:1;2994:49:0;;;;;;;;;;-1:-1:-1;2994:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3343:33;;;;;;;;;;;;;;;;6190:210;;;;;;;;;;-1:-1:-1;6190:210:0;;;;;:::i;:::-;;:::i;:::-;;3138:44;;;;;;;;;;-1:-1:-1;3138:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3422:27;;;;;;;;;;-1:-1:-1;3422:27:0;;;;-1:-1:-1;;;;;3422:27:0;;;;;;-1:-1:-1;;;;;3559:32:1;;;3541:51;;3529:2;3514:18;3422:27:0;3496:102:1;3093:36:0;;;;;;;;;;-1:-1:-1;3093:36:0;;;;-1:-1:-1;;;;;3093:36:0;;;5013:119;;;;;;;;;;-1:-1:-1;5013:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5106:18:0;5079:7;5106:18;;;:9;:18;;;;;;;5013:119;2325:148;;;;;;;;;;;;;:::i;10283:296::-;;;;;;;;;;-1:-1:-1;10283:296:0;;;;;:::i;:::-;;:::i;2128:79::-;;;;;;;;;;-1:-1:-1;2166:7:0;2193:6;-1:-1:-1;;;;;2193:6:0;2128:79;;4595:98;;;;;;;;;;;;;:::i;5140:165::-;;;;;;;;;;-1:-1:-1;5140:165:0;;;;;:::i;:::-;;:::i;3383:30::-;;;;;;;;;;;;;;;;3307:29;;;;;;;;;;;;;;;;10587:257;;;;;;;;;;-1:-1:-1;10587:257:0;;;;;:::i;:::-;;:::i;3268:32::-;;;;;;;;;;;;;;;;5313:143;;;;;;;;;;-1:-1:-1;5313:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5421:18:0;;;5394:7;5421:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5313:143;5975:207;;;;;;;;;;-1:-1:-1;5975:207:0;;;;;:::i;:::-;;:::i;2871:26::-;;;;;;;;;;-1:-1:-1;2871:26:0;;;;-1:-1:-1;;;;;2871:26:0;;;2481:214;;;;;;;;;;-1:-1:-1;2481:214:0;;;;;:::i;:::-;;:::i;4701:94::-;4749:13;4782:5;4775:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4701:94;:::o;5464:159::-;5539:4;5556:37;5565:10;5577:7;5586:6;5556:8;:37::i;:::-;-1:-1:-1;5611:4:0;5464:159;;;;:::o;5631:336::-;5729:4;5746:36;5756:6;5764:9;5775:6;5746:9;:36::i;:::-;-1:-1:-1;;;;;5797:19:0;;3257:1;5797:19;;;:11;:19;;;;;;;;5817:10;5797:31;;;;;;;;-1:-1:-1;;5797:38:0;5793:145;;-1:-1:-1;;;;;5886:19:0;;;;;;:11;:19;;;;;;;;5906:10;5886:31;;;;;;;;:40;;5920:6;;5886:40;:::i;:::-;-1:-1:-1;;;;;5852:19:0;;;;;;:11;:19;;;;;;;;5872:10;5852:31;;;;;;;:74;5793:145;-1:-1:-1;5955:4:0;5631:336;;;;;:::o;6190:210::-;2255:6;;-1:-1:-1;;;;;2255:6:0;2265:10;2255:20;2247:50;;;;-1:-1:-1;;;2247:50:0;;;;;;;:::i;:::-;;;;;;;;;6308:4:::1;6283:21;6296:8:::0;6283:10;:21:::1;:::i;:::-;:29;;6275:49;;;::::0;-1:-1:-1;;;6275:49:0;;6469:2:1;6275:49:0::1;::::0;::::1;6451:21:1::0;6508:1;6488:18;;;6481:29;-1:-1:-1;;;6526:18:1;;;6519:38;6574:18;;6275:49:0::1;6441:157:1::0;6275:49:0::1;6335:12;:25:::0;;;;6371:10:::1;:21:::0;6190:210::o;2325:148::-;2255:6;;-1:-1:-1;;;;;2255:6:0;2265:10;2255:20;2247:50;;;;-1:-1:-1;;;2247:50:0;;;;;;;:::i;:::-;2432:1:::1;2416:6:::0;;2395:40:::1;::::0;-1:-1:-1;;;;;2416:6:0;;::::1;::::0;2395:40:::1;::::0;2432:1;;2395:40:::1;2463:1;2446:19:::0;;-1:-1:-1;;;;;;2446:19:0::1;::::0;;2325:148::o;10283:296::-;-1:-1:-1;;;;;10366:26:0;;10362:210;;10416:11;;10408:37;;-1:-1:-1;;;;;10416:11:0;;;;10408:37;;;;;10438:6;;10416:11;10408:37;10416:11;10408:37;10438:6;10416:11;10408:37;;;;;;;;;;;;;;;;;;;;;10283:296;;:::o;10362:210::-;-1:-1:-1;;;;;10465:29:0;;10489:4;10465:29;10462:110;;10540:11;;10510:50;;-1:-1:-1;;;10510:50:0;;-1:-1:-1;;;;;10540:11:0;;;10510:50;;;3777:51:1;3844:18;;;3837:34;;;10510:29:0;;;;;;3750:18:1;;10510:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10462:110::-;10283:296;;:::o;4595:98::-;4645:13;4678:7;4671:14;;;;;:::i;5140:165::-;5218:4;5235:40;5245:10;5257:9;5268:6;5235:9;:40::i;10587:257::-;2255:6;;-1:-1:-1;;;;;2255:6:0;2265:10;2255:20;2247:50;;;;-1:-1:-1;;;2247:50:0;;;;;;;:::i;:::-;10713:3:::1;10694:22:::0;::::1;10686:31;;;::::0;::::1;;10733:9;10728:109;10744:20:::0;;::::1;10728:109;;;10820:5;10786:17;:31;10804:9;;10814:1;10804:12;;;;;-1:-1:-1::0;;;10804:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10786:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10786:31:0;:39;;-1:-1:-1;;10786:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10766:3:::1;::::0;::::1;:::i;:::-;;;10728:109;;;;10587:257:::0;;;:::o;5975:207::-;2255:6;;-1:-1:-1;;;;;2255:6:0;2265:10;2255:20;2247:50;;;;-1:-1:-1;;;2247:50:0;;;;;;;:::i;:::-;6092:4:::1;6067:21;6080:8:::0;6067:10;:21:::1;:::i;:::-;:29;;6059:49;;;::::0;-1:-1:-1;;;6059:49:0;;6469:2:1;6059:49:0::1;::::0;::::1;6451:21:1::0;6508:1;6488:18;;;6481:29;-1:-1:-1;;;6526:18:1;;;6519:38;6574:18;;6059:49:0::1;6441:157:1::0;6059:49:0::1;6119:11;:24:::0;;;;6154:9:::1;:20:::0;5975:207::o;2481:214::-;2255:6;;-1:-1:-1;;;;;2255:6:0;2265:10;2255:20;2247:50;;;;-1:-1:-1;;;2247:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2570:22:0;::::1;2562:43;;;::::0;-1:-1:-1;;;2562:43:0;;6805:2:1;2562:43:0::1;::::0;::::1;6787:21:1::0;6844:1;6824:18;;;6817:29;-1:-1:-1;;;6862:18:1;;;6855:38;6910:18;;2562:43:0::1;6777:157:1::0;2562:43:0::1;2642:6;::::0;;2621:38:::1;::::0;-1:-1:-1;;;;;2621:38:0;;::::1;::::0;2642:6;::::1;::::0;2621:38:::1;::::0;::::1;2670:6;:17:::0;;-1:-1:-1;;;;;;2670:17:0::1;-1:-1:-1::0;;;;;2670:17:0;;;::::1;::::0;;;::::1;::::0;;2481:214::o;6408:177::-;-1:-1:-1;;;;;6493:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6545:32;;7431:25:1;;;6545:32:0;;7404:18:1;6545:32:0;;;;;;;6408:177;;;:::o;6593:1171::-;-1:-1:-1;;;;;5106:18:0;;6707:15;5106:18;;;:9;:18;;;;;;6759:17;;;;6751:46;;;;-1:-1:-1;;;6751:46:0;;6124:2:1;6751:46:0;;;6106:21:1;6163:2;6143:18;;;6136:30;-1:-1:-1;;;6182:18:1;;;6175:46;6238:18;;6751:46:0;6096:166:1;6751:46:0;-1:-1:-1;;;;;6863:16:0;;6810:12;6863:16;;;:12;:16;;;;;;6810:12;;6863:16;;:27;;;;-1:-1:-1;6884:6:0;;;;6883:7;6863:27;:55;;;;-1:-1:-1;;;;;;6895:23:0;;;;;;:17;:23;;;;;;;;6894:24;6863:55;:81;;;;-1:-1:-1;;;;;;6923:21:0;;;;;;:17;:21;;;;;;;;6922:22;6863:81;6859:660;;;7010:4;6961:28;5106:18;;;:9;:18;;;;;;4985:12;;7058:21;;7074:5;;7058:21;:::i;:::-;7035:20;:44;7031:477;;;7100:14;7158:10;;7143:12;;7131:9;;7117:11;;:23;;;;:::i;:::-;:38;;;;:::i;:::-;:51;;;;:::i;:::-;7100:68;-1:-1:-1;7187:27:0;7236:4;7218:15;7100:68;7218:6;:15;:::i;:::-;:22;;;;:::i;:::-;7187:54;;7304:20;7282:19;:42;:147;;7410:19;7282:147;;;7389:20;7282:147;7260:169;;7448:44;7464:19;7485:6;7448:15;:44::i;:::-;7031:477;;;6859:660;;-1:-1:-1;;;;;7536:23:0;;;;;;:17;:23;;;;;;;;7535:24;:50;;;;-1:-1:-1;;;;;;7564:21:0;;;;;;:17;:21;;;;;;;;7563:22;7535:50;:61;;;;-1:-1:-1;7590:6:0;;;;7589:7;7535:61;7531:108;;;7623:4;7613:14;;7531:108;-1:-1:-1;;;;;7655:16:0;;;;;;:12;:16;;;;;;;;7651:42;;;-1:-1:-1;7686:4:0;7651:42;7705:51;7720:4;7726:2;7730:6;7738:7;7747:8;7705:14;:51::i;:::-;6593:1171;;;;;;:::o;8757:1251::-;3490:6;:13;;-1:-1:-1;;3490:13:0;3499:4;3490:13;;;8850:16:::1;8860:6:::0;;8850:16:::1;:::i;:::-;;;8877:13;8906:9;;8893:10;;:22;;;;:::i;:::-;8877:38:::0;-1:-1:-1;8926:16:0::1;8967:6:::0;8945:19:::1;8877:38:::0;8945:11;:19:::1;:::i;:::-;:28;;;;:::i;:::-;9010:16;::::0;;9024:1:::1;9010:16:::0;;;;;::::1;::::0;;8926:47;;-1:-1:-1;8986:21:0::1;::::0;9010:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9010:16:0::1;8986:40;;9055:4;9037;9042:1;9037:7;;;;;;-1:-1:-1::0;;;9037:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9037:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9081:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;9081:21:0;;;;:14;;;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;9037:7;;9081:21;;;;;:14;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9071:4;9076:1;9071:7;;;;;;-1:-1:-1::0;;;9071:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9071:31:0;;::::1;:7;::::0;;::::1;::::0;;;;;:31;9117:14:::1;::::0;::::1;:65;9197:22;9211:8:::0;9197:11;:22:::1;:::i;:::-;9234:1;9250:4;9277;9297:15;9117:206;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;9113:243;;9340:13;::::0;9351:1:::1;5068:36:1::0;;9340:13:0::1;::::0;5056:2:1;5041:18;9340:13:0::1;;;;;;;9113:243;9368:15;9378:5:::0;9368:15;::::1;:::i;:::-;;;9396:19;9418:21;9396:43;;9450:18;9520:6;9500:12;;9486:11;;:26;;;;:::i;:::-;9471:42;::::0;:11;:42:::1;:::i;:::-;:46;::::0;9516:1:::1;9471:46;:::i;:::-;:55;;;;:::i;:::-;9450:76;;9554:1;9541:10;:14;:43;;;;-1:-1:-1::0;9559:11:0::1;::::0;-1:-1:-1;;;;;9559:11:0::1;:25:::0;::::1;9541:43;9537:117;;;9609:11;::::0;9601:41:::1;::::0;-1:-1:-1;;;;;9609:11:0;;::::1;::::0;9601:41;::::1;;;::::0;9631:10;;9609:11:::1;9601:41:::0;9609:11;9601:41;9631:10;9609:11;9601:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9537:117;9670:12:::0;;9666:335:::1;;9699:14;9738:6:::0;9716:19:::1;9730:5:::0;9716:11;:19:::1;:::i;:::-;:28;;;;:::i;:::-;9699:45:::0;-1:-1:-1;9763:10:0;;9759:231:::1;;9798:14;::::0;9895:11:::1;::::0;9798:144:::1;::::0;-1:-1:-1;;;9798:144:0;;9873:4:::1;9798:144;::::0;::::1;4223:34:1::0;4273:18;;;4266:34;;;9798:14:0::1;4316:18:1::0;;;4309:34;;;4359:18;;;4352:34;-1:-1:-1;;;;;9895:11:0;;::::1;4402:19:1::0;;;4395:44;9908:15:0::1;4455:19:1::0;;;4448:35;9798:14:0;::::1;::::0;:30:::1;::::0;9835:6;;4157:19:1;;9798:144:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;-1:-1:-1::0;9798:144:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;9798:144:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;9794:181;;9959:13;::::0;9970:1:::1;5068:36:1::0;;9959:13:0::1;::::0;5056:2:1;5041:18;9959:13:0::1;;;;;;;9794:181;;;;;;;9666:335;;-1:-1:-1::0;;3526:6:0;:14;;-1:-1:-1;;3526:14:0;;;-1:-1:-1;;;;;8757:1251:0:o;7772:945::-;-1:-1:-1;;;;;7968:17:0;;;;;;:9;:17;;;;;;:27;;7988:7;;7968:27;:::i;:::-;-1:-1:-1;;;;;7948:17:0;;;;;;:9;:17;;;;;:47;;;;8036:528;;;;8064:14;8099:8;8095:156;;;8152:10;;8137:12;;:25;;;;:::i;:::-;8128:34;;8095:156;;;8226:9;;8212:11;;:23;;;;:::i;:::-;8203:32;;8095:156;8265:18;8305:5;8286:16;8296:6;8286:7;:16;:::i;:::-;:24;;;;:::i;:::-;8265:45;-1:-1:-1;8329:14:0;;8325:228;;8364:23;8377:10;8364:23;;:::i;:::-;8451:4;8433:24;;;;:9;:24;;;;;;8364:23;;-1:-1:-1;8433:37:0;;8460:10;;8433:37;:::i;:::-;8424:4;8406:24;;;;:9;:24;;;;;;;:64;;;;8494:43;;-1:-1:-1;;;;;8494:43:0;;;;;;;8526:10;7431:25:1;;7419:2;7404:18;;7386:76;8494:43:0;;;;;;;;8325:228;8036:528;;;8623:19;8633:9;8623:7;:19;:::i;:::-;-1:-1:-1;;;;;8599:20:0;;;;;;:9;:20;;;;;;:44;;;;:::i;:::-;-1:-1:-1;;;;;8576:20:0;;;;;;;:9;:20;;;;;:67;;;;8659:48;;;8687:19;8697:9;8687:7;:19;:::i;:::-;8659:48;;7431:25:1;;;7419:2;7404:18;8659:48:0;;;;;;;7772:945;;;;;;:::o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:1:o;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:1:o;1746:800::-;1838:6;1846;1854;1907:2;1895:9;1886:7;1882:23;1878:32;1875:2;;;1928:6;1920;1913:22;1875:2;1973:9;1960:23;2002:18;2043:2;2035:6;2032:14;2029:2;;;2064:6;2056;2049:22;2029:2;2107:6;2096:9;2092:22;2082:32;;2152:7;2145:4;2141:2;2137:13;2133:27;2123:2;;2179:6;2171;2164:22;2123:2;2224;2211:16;2250:2;2242:6;2239:14;2236:2;;;2271:6;2263;2256:22;2236:2;2331:7;2324:4;2314:6;2311:1;2307:14;2303:2;2299:23;2295:34;2292:47;2289:2;;;2357:6;2349;2342:22;2289:2;2393:4;2385:13;;;;-1:-1:-1;2417:6:1;-1:-1:-1;;2458:20:1;;2445:34;2488:28;2445:34;2488:28;:::i;:::-;2535:5;2525:15;;;1865:681;;;;;:::o;2551:255::-;2618:6;2671:2;2659:9;2650:7;2646:23;2642:32;2639:2;;;2692:6;2684;2677:22;2639:2;2729:9;2723:16;2748:28;2770:5;2748:28;:::i;2811:258::-;2879:6;2887;2940:2;2928:9;2919:7;2915:23;2911:32;2908:2;;;2961:6;2953;2946:22;2908:2;-1:-1:-1;;2989:23:1;;;3059:2;3044:18;;;3031:32;;-1:-1:-1;2898:171:1:o;3074:316::-;3162:6;3170;3178;3231:2;3219:9;3210:7;3206:23;3202:32;3199:2;;;3252:6;3244;3237:22;3199:2;3286:9;3280:16;3270:26;;3336:2;3325:9;3321:18;3315:25;3305:35;;3380:2;3369:9;3365:18;3359:25;3349:35;;3189:201;;;;;:::o;5314:603::-;5426:4;5455:2;5484;5473:9;5466:21;5516:6;5510:13;5559:6;5554:2;5543:9;5539:18;5532:34;5584:4;5597:140;5611:6;5608:1;5605:13;5597:140;;;5706:14;;;5702:23;;5696:30;5672:17;;;5691:2;5668:26;5661:66;5626:10;;5597:140;;;5755:6;5752:1;5749:13;5746:2;;;5825:4;5820:2;5811:6;5800:9;5796:22;5792:31;5785:45;5746:2;-1:-1:-1;5901:2:1;5880:15;-1:-1:-1;;5876:29:1;5861:45;;;;5908:2;5857:54;;5435:482;-1:-1:-1;;;5435:482:1:o;6939:341::-;7141:2;7123:21;;;7180:2;7160:18;;;7153:30;-1:-1:-1;;;7214:2:1;7199:18;;7192:47;7271:2;7256:18;;7113:167::o;7467:983::-;7729:4;7777:3;7766:9;7762:19;7808:6;7797:9;7790:25;7834:2;7872:6;7867:2;7856:9;7852:18;7845:34;7915:3;7910:2;7899:9;7895:18;7888:31;7939:6;7974;7968:13;8005:6;7997;7990:22;8043:3;8032:9;8028:19;8021:26;;8082:2;8074:6;8070:15;8056:29;;8103:4;8116:195;8130:6;8127:1;8124:13;8116:195;;;8195:13;;-1:-1:-1;;;;;8191:39:1;8179:52;;8286:15;;;;8251:12;;;;8227:1;8145:9;8116:195;;;-1:-1:-1;;;;;;;8367:32:1;;;;8362:2;8347:18;;8340:60;-1:-1:-1;;;8431:3:1;8416:19;8409:35;8328:3;7738:712;-1:-1:-1;;;7738:712:1:o;8644:128::-;8684:3;8715:1;8711:6;8708:1;8705:13;8702:2;;;8721:18;;:::i;:::-;-1:-1:-1;8757:9:1;;8692:80::o;8777:217::-;8817:1;8843;8833:2;;-1:-1:-1;;;8868:31:1;;8922:4;8919:1;8912:15;8950:4;8875:1;8940:15;8833:2;-1:-1:-1;8979:9:1;;8823:171::o;8999:168::-;9039:7;9105:1;9101;9097:6;9093:14;9090:1;9087:21;9082:1;9075:9;9068:17;9064:45;9061:2;;;9112:18;;:::i;:::-;-1:-1:-1;9152:9:1;;9051:116::o;9172:125::-;9212:4;9240:1;9237;9234:8;9231:2;;;9245:18;;:::i;:::-;-1:-1:-1;9282:9:1;;9221:76::o;9302:380::-;9381:1;9377:12;;;;9424;;;9445:2;;9499:4;9491:6;9487:17;9477:27;;9445:2;9552;9544:6;9541:14;9521:18;9518:38;9515:2;;;9598:10;9593:3;9589:20;9586:1;9579:31;9633:4;9630:1;9623:15;9661:4;9658:1;9651:15;9515:2;;9357:325;;;:::o;9687:135::-;9726:3;-1:-1:-1;;9747:17:1;;9744:2;;;9767:18;;:::i;:::-;-1:-1:-1;9814:1:1;9803:13;;9734:88::o;9827:127::-;9888:10;9883:3;9879:20;9876:1;9869:31;9919:4;9916:1;9909:15;9943:4;9940:1;9933:15;9959:131;-1:-1:-1;;;;;10034:31:1;;10024:42;;10014:2;;10080:1;10077;10070:12;10014:2;10004:86;:::o;10095:118::-;10181:5;10174:13;10167:21;10160:5;10157:32;10147:2;;10203:1;10200;10193:12

Swarm Source

ipfs://0bcea136748d6106f7421a4ef682c307d9d6d9b855866bb2a2033819718f47c2

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.