ETH Price: $3,005.08 (+4.31%)
Gas: 2 Gwei

Contract

0x16C008403A4A4C7C57fe3ACDFedE288563789722
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve201939092024-06-29 0:57:357 days ago1719622655IN
0x16C00840...563789722
0 ETH0.000098742.13646927
Approve199086712024-05-20 4:11:3547 days ago1716178295IN
0x16C00840...563789722
0 ETH0.000124542.69472029
Approve190221382024-01-16 21:28:35171 days ago1705440515IN
0x16C00840...563789722
0 ETH0.0007743231.87447971
Approve189073292023-12-31 18:45:11187 days ago1704048311IN
0x16C00840...563789722
0 ETH0.0003290713.54604513
Approve189073242023-12-31 18:44:11187 days ago1704048251IN
0x16C00840...563789722
0 ETH0.0003435214.17592796
Approve185333502023-11-09 8:59:47239 days ago1699520387IN
0x16C00840...563789722
0 ETH0.0006813128.04559837
Approve185070952023-11-05 16:48:59243 days ago1699202939IN
0x16C00840...563789722
0 ETH0.0014870831.92737659
Approve185052172023-11-05 10:29:11243 days ago1699180151IN
0x16C00840...563789722
0 ETH0.000702815.10866123
Approve185030252023-11-05 3:06:35244 days ago1699153595IN
0x16C00840...563789722
0 ETH0.0005484311.78993611
Approve185027992023-11-05 2:21:11244 days ago1699150871IN
0x16C00840...563789722
0 ETH0.0006355913.66367076
Transfer185027372023-11-05 2:08:35244 days ago1699150115IN
0x16C00840...563789722
0 ETH0.0005837812.51175453
Transfer185009672023-11-04 20:11:23244 days ago1699128683IN
0x16C00840...563789722
0 ETH0.0005955812.76473547
Transfer185009572023-11-04 20:09:23244 days ago1699128563IN
0x16C00840...563789722
0 ETH0.0006097113.06738051
Transfer184994252023-11-04 15:00:23244 days ago1699110023IN
0x16C00840...563789722
0 ETH0.0007430515.92516186
Transfer184993882023-11-04 14:52:59244 days ago1699109579IN
0x16C00840...563789722
0 ETH0.0007745516.600393
Transfer184988412023-11-04 13:02:59244 days ago1699102979IN
0x16C00840...563789722
0 ETH0.0010926923.4186356
Transfer184988342023-11-04 13:01:35244 days ago1699102895IN
0x16C00840...563789722
0 ETH0.0009968421.3644083
Transfer184988122023-11-04 12:57:11244 days ago1699102631IN
0x16C00840...563789722
0 ETH0.0014469931.01221307
Transfer184985862023-11-04 12:10:59244 days ago1699099859IN
0x16C00840...563789722
0 ETH0.0008456218.12343672
Transfer184985502023-11-04 12:03:47244 days ago1699099427IN
0x16C00840...563789722
0 ETH0.0009447320.24762189
Approve184981502023-11-04 10:42:35244 days ago1699094555IN
0x16C00840...563789722
0 ETH0.0007084715.23048198
Transfer184977572023-11-04 9:23:35244 days ago1699089815IN
0x16C00840...563789722
0 ETH0.0009725518.90404303
Approve184973372023-11-04 7:58:47245 days ago1699084727IN
0x16C00840...563789722
0 ETH0.0005754612.37102808
Approve184973232023-11-04 7:55:47245 days ago1699084547IN
0x16C00840...563789722
0 ETH0.0005968312.83057305
Transfer184960522023-11-04 3:38:23245 days ago1699069103IN
0x16C00840...563789722
0 ETH0.0006471213.86917078
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
183986642023-10-21 12:24:35258 days ago1697891075
0x16C00840...563789722
0.38456194 ETH
183986642023-10-21 12:24:35258 days ago1697891075
0x16C00840...563789722
0.38456194 ETH
183963592023-10-21 4:39:47259 days ago1697863187
0x16C00840...563789722
0.08044223 ETH
183963592023-10-21 4:39:47259 days ago1697863187
0x16C00840...563789722
0.08044223 ETH
183963572023-10-21 4:39:23259 days ago1697863163
0x16C00840...563789722
0.09177114 ETH
183963572023-10-21 4:39:23259 days ago1697863163
0x16C00840...563789722
0.09177114 ETH
183963382023-10-21 4:35:35259 days ago1697862935
0x16C00840...563789722
0.15701543 ETH
183963382023-10-21 4:35:35259 days ago1697862935
0x16C00840...563789722
0.1212465 ETH
183960482023-10-21 3:37:11259 days ago1697859431
0x16C00840...563789722
0.03576892 ETH
183960452023-10-21 3:36:35259 days ago1697859395
0x16C00840...563789722
0.0471303 ETH
183960452023-10-21 3:36:35259 days ago1697859395
0x16C00840...563789722
0.07983955 ETH
183960452023-10-21 3:36:35259 days ago1697859395
0x16C00840...563789722
0.07983955 ETH
183960332023-10-21 3:34:11259 days ago1697859251
0x16C00840...563789722
0.10864384 ETH
183960332023-10-21 3:34:11259 days ago1697859251
0x16C00840...563789722
0.06754239 ETH
183959692023-10-21 3:21:11259 days ago1697858471
0x16C00840...563789722
0.04110144 ETH
183959602023-10-21 3:19:23259 days ago1697858363
0x16C00840...563789722
0.08571991 ETH
183959602023-10-21 3:19:23259 days ago1697858363
0x16C00840...563789722
0.08571991 ETH
183959592023-10-21 3:19:11259 days ago1697858351
0x16C00840...563789722
0.06161071 ETH
183959592023-10-21 3:19:11259 days ago1697858351
0x16C00840...563789722
0.02828864 ETH
183959502023-10-21 3:17:23259 days ago1697858243
0x16C00840...563789722
0.03332206 ETH
183959492023-10-21 3:17:11259 days ago1697858231
0x16C00840...563789722
0.05309039 ETH
183959492023-10-21 3:17:11259 days ago1697858231
0x16C00840...563789722
0.04641097 ETH
183959442023-10-21 3:16:11259 days ago1697858171
0x16C00840...563789722
0.00667941 ETH
183958852023-10-21 3:04:23259 days ago1697857463
0x16C00840...563789722
0.06367075 ETH
183958852023-10-21 3:04:23259 days ago1697857463
0x16C00840...563789722
0.06367075 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Doge

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/** 
🐶 Telegram: https://t.me/dogeweth

🐶 X: https://x.com/doge_Erc20

🐶 Website: www.dogé.com (http://www.xn--dog-dma.com/)

**/


pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

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

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=21;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=15;
    uint256 private _reduceSellTaxAt=22;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Ɖoge";
    string private constant _symbol = unicode"Ɖoge";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 12000001 * 10**_decimals;
    uint256 public _maxTaxSwap= 12000000 * 10**_decimals;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

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

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


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

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

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

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


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

    receive() external payable {}

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

Contract Security Audit

Contract ABI

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

60806040526006805460ff191660011790556014600781905560156008555f6009818155600a828155600f600b556016600c55600d93909355600e91909155620000499162000348565b62000059906301312d006200035f565b600f556200006a6009600a62000348565b6200007a906301312d006200035f565b6010556200008b6009600a62000348565b6200009a9062b71b016200035f565b601155620000ab6009600a62000348565b620000ba9062b71b006200035f565b6012556014805461ffff60a81b19169055348015620000d7575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b03191661010033021790556200013d6009600a62000348565b6200014d90633b9aca006200035f565b335f908152600160208190526040822092909255600390620001765f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001d93390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002126009600a62000348565b6200022290633b9aca006200035f565b60405190815260200160405180910390a362000379565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028d57815f190482111562000271576200027162000239565b808516156200027f57918102915b93841c939080029062000252565b509250929050565b5f82620002a55750600162000342565b81620002b357505f62000342565b8160018114620002cc5760028114620002d757620002f7565b600191505062000342565b60ff841115620002eb57620002eb62000239565b50506001821b62000342565b5060208310610133831016604e8410600b84101617156200031c575081810a62000342565b6200032883836200024d565b805f19048211156200033e576200033e62000239565b0290505b92915050565b5f6200035860ff84168362000295565b9392505050565b808202811582820484141762000342576200034262000239565b6117ca80620003875f395ff3fe608060405260043610610113575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb146102bc578063bf474bed146102db578063c876d0b9146102f0578063c9567bf914610309578063dd62ed3e1461031d575f80fd5b8063751039fc146102585780637d1db4a51461026c5780638da5cb5b146102815780638f9a55c0146102a757806395d89b411461011e575f80fd5b806323b872dd116100e357806323b872dd146101c0578063313ce567146101df57806351bc3c85146101fa57806370a0823114610210578063715018a614610244575f80fd5b806306fdde031461011e578063095ea7b31461015a5780630faee56f1461018957806318160ddd146101ac575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b506040805180820182526005815264c6896f676560d81b6020820152905161015191906113bd565b60405180910390f35b348015610165575f80fd5b5061017961017436600461141f565b610361565b6040519015158152602001610151565b348015610194575f80fd5b5061019e60125481565b604051908152602001610151565b3480156101b7575f80fd5b5061019e610377565b3480156101cb575f80fd5b506101796101da366004611449565b610397565b3480156101ea575f80fd5b5060405160098152602001610151565b348015610205575f80fd5b5061020e6103fe565b005b34801561021b575f80fd5b5061019e61022a366004611487565b6001600160a01b03165f9081526001602052604090205490565b34801561024f575f80fd5b5061020e610454565b348015610263575f80fd5b5061020e6104ce565b348015610277575f80fd5b5061019e600f5481565b34801561028c575f80fd5b505f546040516001600160a01b039091168152602001610151565b3480156102b2575f80fd5b5061019e60105481565b3480156102c7575f80fd5b506101796102d636600461141f565b610589565b3480156102e6575f80fd5b5061019e60115481565b3480156102fb575f80fd5b506006546101799060ff1681565b348015610314575f80fd5b5061020e610595565b348015610328575f80fd5b5061019e6103373660046114a2565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61036d33848461093e565b5060015b92915050565b5f6103846009600a6115cd565b61039290633b9aca006115db565b905090565b5f6103a3848484610a61565b6103f484336103ef8560405180606001604052806028815260200161176d602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611035565b61093e565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b031614610422575f80fd5b305f908152600160205260409020548015610440576104408161106d565b47801561045057610450816111dd565b5050565b5f546001600160a01b031633146104865760405162461bcd60e51b815260040161047d906115f2565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104f75760405162461bcd60e51b815260040161047d906115f2565b6105036009600a6115cd565b61051190633b9aca006115db565b600f556105206009600a6115cd565b61052e90633b9aca006115db565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105686009600a6115cd565b61057690633b9aca006115db565b60405190815260200160405180910390a1565b5f61036d338484610a61565b5f546001600160a01b031633146105be5760405162461bcd60e51b815260040161047d906115f2565b601454600160a01b900460ff16156106185760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161047d565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106619030906106536009600a6115cd565b6103ef90633b9aca006115db565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d59190611627565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610734573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190611627565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c69190611627565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d719473061080d816001600160a01b03165f9081526001602052604090205490565b5f806108205f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610886573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108ab9190611642565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610900573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610924919061166d565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109a05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161047d565b6001600160a01b038216610a015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047d565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ac55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161047d565b6001600160a01b038216610b275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161047d565b5f8111610b885760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161047d565b5f80546001600160a01b03858116911614801590610bb357505f546001600160a01b03848116911614155b15610ef857610be46064610bde600b54600e5411610bd357600754610bd7565b6009545b8590611218565b9061129d565b60065490915060ff1615610cca576013546001600160a01b03848116911614801590610c1e57506014546001600160a01b03848116911614155b15610cca57325f908152600560205260409020544311610cb85760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161047d565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610cf557506013546001600160a01b03848116911614155b8015610d1957506001600160a01b0383165f9081526003602052604090205460ff16155b15610dff57600f54821115610d705760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161047d565b60105482610d92856001600160a01b03165f9081526001602052604090205490565b610d9c919061168c565b1115610dea5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161047d565b600e8054905f610df98361169f565b91905055505b6014546001600160a01b038481169116148015610e2557506001600160a01b0384163014155b15610e5257610e4f6064610bde600c54600e5411610e4557600854610bd7565b600a548590611218565b90505b305f90815260016020526040902054601454600160a81b900460ff16158015610e8857506014546001600160a01b038581169116145b8015610e9d5750601454600160b01b900460ff165b8015610eaa575060115481115b8015610eb95750600d54600e54115b15610ef657610edb610ed684610ed1846012546112de565b6112de565b61106d565b4766b1a2bc2ec50000811115610ef457610ef4476111dd565b505b505b8015610f7057305f90815260016020526040902054610f1790826112f2565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f679085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610f929083611350565b6001600160a01b0385165f90815260016020526040902055610fd5610fb78383611350565b6001600160a01b0385165f90815260016020526040902054906112f2565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61101e8585611350565b60405190815260200160405180910390a350505050565b5f81848411156110585760405162461bcd60e51b815260040161047d91906113bd565b505f61106484866116b7565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110b3576110b36116ca565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561110a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112e9190611627565b81600181518110611141576111416116ca565b6001600160a01b039283166020918202929092010152601354611167913091168461093e565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061119f9085905f908690309042906004016116de565b5f604051808303815f87803b1580156111b6575f80fd5b505af11580156111c8573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610450573d5f803e3d5ffd5b5f825f0361122757505f610371565b5f61123283856115db565b90508261123f858361174d565b146112965760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047d565b9392505050565b5f61129683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611391565b5f8183116112ec5782611296565b50919050565b5f806112fe838561168c565b9050838110156112965760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047d565b5f61129683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611035565b5f81836113b15760405162461bcd60e51b815260040161047d91906113bd565b505f611064848661174d565b5f6020808352835180828501525f5b818110156113e8578581018301518582016040015282016113cc565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461141c575f80fd5b50565b5f8060408385031215611430575f80fd5b823561143b81611408565b946020939093013593505050565b5f805f6060848603121561145b575f80fd5b833561146681611408565b9250602084013561147681611408565b929592945050506040919091013590565b5f60208284031215611497575f80fd5b813561129681611408565b5f80604083850312156114b3575f80fd5b82356114be81611408565b915060208301356114ce81611408565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561152757815f190482111561150d5761150d6114d9565b8085161561151a57918102915b93841c93908002906114f2565b509250929050565b5f8261153d57506001610371565b8161154957505f610371565b816001811461155f576002811461156957611585565b6001915050610371565b60ff84111561157a5761157a6114d9565b50506001821b610371565b5060208310610133831016604e8410600b84101617156115a8575081810a610371565b6115b283836114ed565b805f19048211156115c5576115c56114d9565b029392505050565b5f61129660ff84168361152f565b8082028115828204841417610371576103716114d9565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611637575f80fd5b815161129681611408565b5f805f60608486031215611654575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561167d575f80fd5b81518015158114611296575f80fd5b80820180821115610371576103716114d9565b5f600182016116b0576116b06114d9565b5060010190565b81810381811115610371576103716114d9565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561172c5784516001600160a01b031683529383019391830191600101611707565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261176757634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bd8d36c0367c6cebef51b479e9e8d307041d7515ad5d522f2afd29ff152bfbcc64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610113575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb146102bc578063bf474bed146102db578063c876d0b9146102f0578063c9567bf914610309578063dd62ed3e1461031d575f80fd5b8063751039fc146102585780637d1db4a51461026c5780638da5cb5b146102815780638f9a55c0146102a757806395d89b411461011e575f80fd5b806323b872dd116100e357806323b872dd146101c0578063313ce567146101df57806351bc3c85146101fa57806370a0823114610210578063715018a614610244575f80fd5b806306fdde031461011e578063095ea7b31461015a5780630faee56f1461018957806318160ddd146101ac575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b506040805180820182526005815264c6896f676560d81b6020820152905161015191906113bd565b60405180910390f35b348015610165575f80fd5b5061017961017436600461141f565b610361565b6040519015158152602001610151565b348015610194575f80fd5b5061019e60125481565b604051908152602001610151565b3480156101b7575f80fd5b5061019e610377565b3480156101cb575f80fd5b506101796101da366004611449565b610397565b3480156101ea575f80fd5b5060405160098152602001610151565b348015610205575f80fd5b5061020e6103fe565b005b34801561021b575f80fd5b5061019e61022a366004611487565b6001600160a01b03165f9081526001602052604090205490565b34801561024f575f80fd5b5061020e610454565b348015610263575f80fd5b5061020e6104ce565b348015610277575f80fd5b5061019e600f5481565b34801561028c575f80fd5b505f546040516001600160a01b039091168152602001610151565b3480156102b2575f80fd5b5061019e60105481565b3480156102c7575f80fd5b506101796102d636600461141f565b610589565b3480156102e6575f80fd5b5061019e60115481565b3480156102fb575f80fd5b506006546101799060ff1681565b348015610314575f80fd5b5061020e610595565b348015610328575f80fd5b5061019e6103373660046114a2565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61036d33848461093e565b5060015b92915050565b5f6103846009600a6115cd565b61039290633b9aca006115db565b905090565b5f6103a3848484610a61565b6103f484336103ef8560405180606001604052806028815260200161176d602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611035565b61093e565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b031614610422575f80fd5b305f908152600160205260409020548015610440576104408161106d565b47801561045057610450816111dd565b5050565b5f546001600160a01b031633146104865760405162461bcd60e51b815260040161047d906115f2565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104f75760405162461bcd60e51b815260040161047d906115f2565b6105036009600a6115cd565b61051190633b9aca006115db565b600f556105206009600a6115cd565b61052e90633b9aca006115db565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105686009600a6115cd565b61057690633b9aca006115db565b60405190815260200160405180910390a1565b5f61036d338484610a61565b5f546001600160a01b031633146105be5760405162461bcd60e51b815260040161047d906115f2565b601454600160a01b900460ff16156106185760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161047d565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106619030906106536009600a6115cd565b6103ef90633b9aca006115db565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d59190611627565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610734573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190611627565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c69190611627565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d719473061080d816001600160a01b03165f9081526001602052604090205490565b5f806108205f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610886573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108ab9190611642565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610900573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610924919061166d565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109a05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161047d565b6001600160a01b038216610a015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047d565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ac55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161047d565b6001600160a01b038216610b275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161047d565b5f8111610b885760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161047d565b5f80546001600160a01b03858116911614801590610bb357505f546001600160a01b03848116911614155b15610ef857610be46064610bde600b54600e5411610bd357600754610bd7565b6009545b8590611218565b9061129d565b60065490915060ff1615610cca576013546001600160a01b03848116911614801590610c1e57506014546001600160a01b03848116911614155b15610cca57325f908152600560205260409020544311610cb85760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161047d565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610cf557506013546001600160a01b03848116911614155b8015610d1957506001600160a01b0383165f9081526003602052604090205460ff16155b15610dff57600f54821115610d705760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161047d565b60105482610d92856001600160a01b03165f9081526001602052604090205490565b610d9c919061168c565b1115610dea5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161047d565b600e8054905f610df98361169f565b91905055505b6014546001600160a01b038481169116148015610e2557506001600160a01b0384163014155b15610e5257610e4f6064610bde600c54600e5411610e4557600854610bd7565b600a548590611218565b90505b305f90815260016020526040902054601454600160a81b900460ff16158015610e8857506014546001600160a01b038581169116145b8015610e9d5750601454600160b01b900460ff165b8015610eaa575060115481115b8015610eb95750600d54600e54115b15610ef657610edb610ed684610ed1846012546112de565b6112de565b61106d565b4766b1a2bc2ec50000811115610ef457610ef4476111dd565b505b505b8015610f7057305f90815260016020526040902054610f1790826112f2565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f679085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610f929083611350565b6001600160a01b0385165f90815260016020526040902055610fd5610fb78383611350565b6001600160a01b0385165f90815260016020526040902054906112f2565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61101e8585611350565b60405190815260200160405180910390a350505050565b5f81848411156110585760405162461bcd60e51b815260040161047d91906113bd565b505f61106484866116b7565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110b3576110b36116ca565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561110a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112e9190611627565b81600181518110611141576111416116ca565b6001600160a01b039283166020918202929092010152601354611167913091168461093e565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061119f9085905f908690309042906004016116de565b5f604051808303815f87803b1580156111b6575f80fd5b505af11580156111c8573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610450573d5f803e3d5ffd5b5f825f0361122757505f610371565b5f61123283856115db565b90508261123f858361174d565b146112965760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047d565b9392505050565b5f61129683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611391565b5f8183116112ec5782611296565b50919050565b5f806112fe838561168c565b9050838110156112965760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047d565b5f61129683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611035565b5f81836113b15760405162461bcd60e51b815260040161047d91906113bd565b505f611064848661174d565b5f6020808352835180828501525f5b818110156113e8578581018301518582016040015282016113cc565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461141c575f80fd5b50565b5f8060408385031215611430575f80fd5b823561143b81611408565b946020939093013593505050565b5f805f6060848603121561145b575f80fd5b833561146681611408565b9250602084013561147681611408565b929592945050506040919091013590565b5f60208284031215611497575f80fd5b813561129681611408565b5f80604083850312156114b3575f80fd5b82356114be81611408565b915060208301356114ce81611408565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561152757815f190482111561150d5761150d6114d9565b8085161561151a57918102915b93841c93908002906114f2565b509250929050565b5f8261153d57506001610371565b8161154957505f610371565b816001811461155f576002811461156957611585565b6001915050610371565b60ff84111561157a5761157a6114d9565b50506001821b610371565b5060208310610133831016604e8410600b84101617156115a8575081810a610371565b6115b283836114ed565b805f19048211156115c5576115c56114d9565b029392505050565b5f61129660ff84168361152f565b8082028115828204841417610371576103716114d9565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611637575f80fd5b815161129681611408565b5f805f60608486031215611654575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561167d575f80fd5b81518015158114611296575f80fd5b80820180821115610371576103716114d9565b5f600182016116b0576116b06114d9565b5060010190565b81810381811115610371576103716114d9565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561172c5784516001600160a01b031683529383019391830191600101611707565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261176757634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bd8d36c0367c6cebef51b479e9e8d307041d7515ad5d522f2afd29ff152bfbcc64736f6c63430008140033

Deployed Bytecode Sourcemap

3623:7987:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5550:83;;;;;;;;;;-1:-1:-1;5620:5:0;;;;;;;;;;;-1:-1:-1;;;5620:5:0;;;;5550:83;;;;5620:5;5550:83;:::i;:::-;;;;;;;;6383:161;;;;;;;;;;-1:-1:-1;6383:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6383:161:0;1023:187:1;4825:52:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4825:52:0;1215:177:1;5827:95:0;;;;;;;;;;;;;:::i;6552:313::-;;;;;;;;;;-1:-1:-1;6552:313:0;;;;;:::i;:::-;;:::i;5736:83::-;;;;;;;;;;-1:-1:-1;5736:83:0;;4452:1;2000:36:1;;1988:2;1973:18;5736:83:0;1858:184:1;11259:348:0;;;;;;;;;;;;;:::i;:::-;;5930:119;;;;;;;;;;-1:-1:-1;5930:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6023:18:0;5996:7;6023:18;;;:9;:18;;;;;;;5930:119;2704:148;;;;;;;;;;;;;:::i;10237:196::-;;;;;;;;;;;;;:::i;4636:54::-;;;;;;;;;;;;;;;;2490:79;;;;;;;;;;-1:-1:-1;2528:7:0;2555:6;2490:79;;-1:-1:-1;;;;;2555:6:0;;;2445:51:1;;2433:2;2418:18;2490:79:0;2299:203:1;4697:56:0;;;;;;;;;;;;;;;;6057:167;;;;;;;;;;-1:-1:-1;6057:167:0;;;;;:::i;:::-;;:::i;4760:58::-;;;;;;;;;;;;;;;;4009:39;;;;;;;;;;-1:-1:-1;4009:39:0;;;;;;;;10543:671;;;;;;;;;;;;;:::i;6232:143::-;;;;;;;;;;-1:-1:-1;6232:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6340:18:0;;;6313:7;6340:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6232:143;6383:161;6458:4;6475:39;325:10;6498:7;6507:6;6475:8;:39::i;:::-;-1:-1:-1;6532:4:0;6383:161;;;;;:::o;5827:95::-;5880:7;4508:13;4452:1;4508:2;:13;:::i;:::-;4495:26;;:10;:26;:::i;:::-;5900:14;;5827:95;:::o;6552:313::-;6650:4;6667:36;6677:6;6685:9;6696:6;6667:9;:36::i;:::-;6714:121;6723:6;325:10;6745:89;6783:6;6745:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6745:19:0;;;;;;:11;:19;;;;;;;;325:10;6745:33;;;;;;;;;;:37;:89::i;:::-;6714:8;:121::i;:::-;-1:-1:-1;6853:4:0;6552:313;;;;;:::o;11259:348::-;11323:10;;;;;-1:-1:-1;;;;;11323:10:0;325;-1:-1:-1;;;;;11309:24:0;;11301:33;;;;;;11384:4;11345:20;6023:18;;;:9;:18;;;;;;11404:14;;11401:73;;11432:30;11449:12;11432:16;:30::i;:::-;11503:21;11538:12;;11535:65;;11564:24;11577:10;11564:12;:24::i;:::-;11290:317;;11259:348::o;2704:148::-;2617:6;;-1:-1:-1;;;;;2617:6:0;325:10;2617:22;2609:67;;;;-1:-1:-1;;;2609:67:0;;;;;;;:::i;:::-;;;;;;;;;2811:1:::1;2795:6:::0;;2774:40:::1;::::0;-1:-1:-1;;;;;2795:6:0;;::::1;::::0;2774:40:::1;::::0;2811:1;;2774:40:::1;2842:1;2825:19:::0;;-1:-1:-1;;;;;;2825:19:0::1;::::0;;2704:148::o;10237:196::-;2617:6;;-1:-1:-1;;;;;2617:6:0;325:10;2617:22;2609:67;;;;-1:-1:-1;;;2609:67:0;;;;;;;:::i;:::-;4508:13:::1;4452:1;4508:2;:13;:::i;:::-;4495:26;::::0;:10:::1;:26;:::i;:::-;10290:12;:22:::0;4508:13:::1;4452:1;4508:2;:13;:::i;:::-;4495:26;::::0;:10:::1;:26;:::i;:::-;10323:14;:22:::0;10356:20:::1;:26:::0;;-1:-1:-1;;10356:26:0::1;::::0;;10398:27:::1;4508:13;4452:1;-1:-1:-1::0;4508:13:0::1;:::i;:::-;4495:26;::::0;:10:::1;:26;:::i;:::-;10398:27;::::0;1361:25:1;;;1349:2;1334:18;10398:27:0::1;;;;;;;10237:196::o:0;6057:167::-;6135:4;6152:42;325:10;6176:9;6187:6;6152:9;:42::i;10543:671::-;2617:6;;-1:-1:-1;;;;;2617:6:0;325:10;2617:22;2609:67;;;;-1:-1:-1;;;2609:67:0;;;;;;;:::i;:::-;10607:11:::1;::::0;-1:-1:-1;;;10607:11:0;::::1;;;10606:12;10598:47;;;::::0;-1:-1:-1;;;10598:47:0;;5151:2:1;10598:47:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;10598:47:0::1;4949:347:1::0;10598:47:0::1;10656:15;:80:::0;;-1:-1:-1;;;;;;10656:80:0::1;10693:42;10656:80:::0;;::::1;::::0;;;10747:58:::1;::::0;10764:4:::1;::::0;4508:13:::1;4452:1;4508:2;:13;:::i;:::-;4495:26;::::0;:10:::1;:26;:::i;10747:58::-;10850:15;;;;;;;;;-1:-1:-1::0;;;;;10850:15:0::1;-1:-1:-1::0;;;;;10850:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10832:55:0::1;;10896:4;10903:15;;;;;;;;;-1:-1:-1::0;;;;;10903:15:0::1;-1:-1:-1::0;;;;;10903:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10832:94;::::0;-1:-1:-1;;;;;;10832:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5787:15:1;;;10832:94:0::1;::::0;::::1;5769:34:1::0;5839:15;;5819:18;;;5812:43;5704:18;;10832:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10816:13;:110:::0;;-1:-1:-1;;;;;10816:110:0;;::::1;-1:-1:-1::0;;;;;;10816:110:0;;::::1;;::::0;;10937:15:::1;::::0;::::1;:31;10976:21;11007:4;11013:24;11007:4:::0;-1:-1:-1;;;;;6023:18:0;5996:7;6023:18;;;:9;:18;;;;;;;5930:119;11013:24:::1;11038:1;11040::::0;11042:7:::1;2528::::0;2555:6;-1:-1:-1;;;;;2555:6:0;;2490:79;11042:7:::1;10937:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10937:129:0;;;-1:-1:-1;;;;;6225:15:1;;;10937:129:0::1;::::0;::::1;6207:34:1::0;6257:18;;;6250:34;;;;6300:18;;;6293:34;;;;6343:18;;;6336:34;6407:15;;;6386:19;;;6379:44;11050:15:0::1;6439:19:1::0;;;6432:35;6141:19;;10937:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11084:13:0::1;::::0;11115:15:::1;::::0;11077:71:::1;::::0;-1:-1:-1;;;11077:71:0;;-1:-1:-1;;;;;11115:15:0;;::::1;11077:71;::::0;::::1;6963:51:1::0;-1:-1:-1;;7030:18:1;;;7023:34;11084:13:0;::::1;::::0;-1:-1:-1;11077:29:0::1;::::0;6936:18:1;;11077:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11159:11:0::1;:18:::0;;-1:-1:-1;;;;11188:18:0;-1:-1:-1;;;11188:18:0;;;10543:671::o;6873:335::-;-1:-1:-1;;;;;6966:19:0;;6958:68;;;;-1:-1:-1;;;6958:68:0;;7552:2:1;6958:68:0;;;7534:21:1;7591:2;7571:18;;;7564:30;7630:34;7610:18;;;7603:62;-1:-1:-1;;;7681:18:1;;;7674:34;7725:19;;6958:68:0;7350:400:1;6958:68:0;-1:-1:-1;;;;;7045:21:0;;7037:68;;;;-1:-1:-1;;;7037:68:0;;7957:2:1;7037:68:0;;;7939:21:1;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;-1:-1:-1;;;8086:18:1;;;8079:32;8128:19;;7037:68:0;7755:398:1;7037:68:0;-1:-1:-1;;;;;7116:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7168:32;;1361:25:1;;;7168:32:0;;1334:18:1;7168:32:0;;;;;;;6873:335;;;:::o;7216:2414::-;-1:-1:-1;;;;;7304:18:0;;7296:68;;;;-1:-1:-1;;;7296:68:0;;8360:2:1;7296:68:0;;;8342:21:1;8399:2;8379:18;;;8372:30;8438:34;8418:18;;;8411:62;-1:-1:-1;;;8489:18:1;;;8482:35;8534:19;;7296:68:0;8158:401:1;7296:68:0;-1:-1:-1;;;;;7383:16:0;;7375:64;;;;-1:-1:-1;;;7375:64:0;;8766:2:1;7375:64:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:33;8938:19;;7375:64:0;8564:399:1;7375:64:0;7467:1;7458:6;:10;7450:64;;;;-1:-1:-1;;;7450:64:0;;9170:2:1;7450:64:0;;;9152:21:1;9209:2;9189:18;;;9182:30;9248:34;9228:18;;;9221:62;-1:-1:-1;;;9299:18:1;;;9292:39;9348:19;;7450:64:0;8968:405:1;7450:64:0;7525:17;2555:6;;-1:-1:-1;;;;;7559:15:0;;;2555:6;;7559:15;;;;:32;;-1:-1:-1;2528:7:0;2555:6;-1:-1:-1;;;;;7578:13:0;;;2555:6;;7578:13;;7559:32;7555:1719;;;7620:76;7692:3;7620:67;7642:15;;7632:9;;:25;7631:55;;7672:14;;7631:55;;;7659:12;;7631:55;7620:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7717:20;;7608:88;;-1:-1:-1;7717:20:0;;7713:508;;;7778:15;;-1:-1:-1;;;;;7764:30:0;;;7778:15;;7764:30;;;;:62;;-1:-1:-1;7812:13:0;;-1:-1:-1;;;;;7798:28:0;;;7812:13;;7798:28;;7764:62;7760:444;;;7918:9;7889:39;;;;:28;:39;;;;;;7962:12;-1:-1:-1;7853:250:0;;;;-1:-1:-1;;;7853:250:0;;9580:2:1;7853:250:0;;;9562:21:1;9619:2;9599:18;;;9592:30;9658:34;9638:18;;;9631:62;9729:34;9709:18;;;9702:62;-1:-1:-1;;;9780:19:1;;;9773:40;9830:19;;7853:250:0;9378:477:1;7853:250:0;8157:9;8128:39;;;;:28;:39;;;;;8170:12;8128:54;;7760:444;8249:13;;-1:-1:-1;;;;;8241:21:0;;;8249:13;;8241:21;:55;;;;-1:-1:-1;8280:15:0;;-1:-1:-1;;;;;8266:30:0;;;8280:15;;8266:30;;8241:55;:83;;;;-1:-1:-1;;;;;;8302:22:0;;;;;;:18;:22;;;;;;;;8300:24;8241:83;8237:313;;;8364:12;;8354:6;:22;;8346:60;;;;-1:-1:-1;;;8346:60:0;;10062:2:1;8346:60:0;;;10044:21:1;10101:2;10081:18;;;10074:30;10140:27;10120:18;;;10113:55;10185:18;;8346:60:0;9860:349:1;8346:60:0;8459:14;;8449:6;8433:13;8443:2;-1:-1:-1;;;;;6023:18:0;5996:7;6023:18;;;:9;:18;;;;;;;5930:119;8433:13;:22;;;;:::i;:::-;:40;;8425:79;;;;-1:-1:-1;;;8425:79:0;;10546:2:1;8425:79:0;;;10528:21:1;10585:2;10565:18;;;10558:30;10624:28;10604:18;;;10597:56;10670:18;;8425:79:0;10344:350:1;8425:79:0;8523:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8237:313;8575:13;;-1:-1:-1;;;;;8569:19:0;;;8575:13;;8569:19;:43;;;;-1:-1:-1;;;;;;8592:20:0;;8607:4;8592:20;;8569:43;8566:174;;;8645:79;8720:3;8645:70;8667:16;;8657:9;;:26;8656:58;;8699:15;;8656:58;;;8685:13;;8645:6;;:10;:70::i;:79::-;8633:91;;8566:174;8805:4;8756:28;6023:18;;;:9;:18;;;;;;8831:6;;-1:-1:-1;;;8831:6:0;;;;8830:7;:32;;;;-1:-1:-1;8849:13:0;;-1:-1:-1;;;;;8841:21:0;;;8849:13;;8841:21;8830:32;:47;;;;-1:-1:-1;8866:11:0;;-1:-1:-1;;;8866:11:0;;;;8830:47;:89;;;;;8902:17;;8881:20;:38;8830:89;:121;;;;;8933:18;;8923:9;;:28;8830:121;8826:437;;;8972:67;8989:49;8993:6;9000:37;9004:20;9025:11;;9000:3;:37::i;:::-;8989:3;:49::i;:::-;8972:16;:67::i;:::-;9087:21;9151:17;9130:38;;9127:121;;;9193:35;9206:21;9193:12;:35::i;:::-;8953:310;8826:437;7593:1681;7555:1719;9289:11;;9286:161;;9357:4;9339:24;;;;:9;:24;;;;;;:39;;9368:9;9339:28;:39::i;:::-;9332:4;9314:24;;;;:9;:24;;;;;;;:64;;;;9396:39;;-1:-1:-1;;;;;9396:39:0;;;;;;;9425:9;1361:25:1;;1349:2;1334:18;;1215:177;9396:39:0;;;;;;;;9286:161;-1:-1:-1;;;;;9473:15:0;;;;;;:9;:15;;;;;;:27;;9493:6;9473:19;:27::i;:::-;-1:-1:-1;;;;;9457:15:0;;;;;;:9;:15;;;;;:43;9525:40;9543:21;:6;9554:9;9543:10;:21::i;:::-;-1:-1:-1;;;;;9525:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9511:13:0;;;;;;;:9;:13;;;;;:54;;;;9581:41;;;9600:21;:6;9611:9;9600:10;:21::i;:::-;9581:41;;1361:25:1;;;1349:2;1334:18;9581:41:0;;;;;;;7285:2345;7216:2414;;;:::o;1382:190::-;1468:7;1504:12;1496:6;;;;1488:29;;;;-1:-1:-1;;;1488:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1528:9:0;1540:5;1544:1;1540;:5;:::i;:::-;1528:17;1382:190;-1:-1:-1;;;;;1382:190:0:o;9746:483::-;5159:6;:13;;-1:-1:-1;;;;5159:13:0;-1:-1:-1;;;5159:13:0;;;9848:16:::1;::::0;;9862:1:::1;9848:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9848:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9848:16:0::1;9824:40;;9893:4;9875;9880:1;9875:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9875:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9919:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9919:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9875:7;;9919:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9909:4;9914:1;9909:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9909:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9984:15:::1;::::0;9952:62:::1;::::0;9969:4:::1;::::0;9984:15:::1;10002:11:::0;9952:8:::1;:62::i;:::-;10025:15;::::0;:196:::1;::::0;-1:-1:-1;;;10025:196:0;;-1:-1:-1;;;;;10025:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10106:11;;10025:15:::1;::::0;10148:4;;10175::::1;::::0;10195:15:::1;::::0;10025:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5195:6:0;:14;;-1:-1:-1;;;;5195:14:0;;;-1:-1:-1;;;;9746:483:0:o;10441:92::-;10498:10;;:27;;:10;;;;-1:-1:-1;;;;;10498:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1580:246;1638:7;1662:1;1667;1662:6;1658:47;;-1:-1:-1;1692:1:0;1685:8;;1658:47;1715:9;1727:5;1731:1;1727;:5;:::i;:::-;1715:17;-1:-1:-1;1760:1:0;1751:5;1755:1;1715:17;1751:5;:::i;:::-;:10;1743:56;;;;-1:-1:-1;;;1743:56:0;;12645:2:1;1743:56:0;;;12627:21:1;12684:2;12664:18;;;12657:30;12723:34;12703:18;;;12696:62;-1:-1:-1;;;12774:18:1;;;12767:31;12815:19;;1743:56:0;12443:397:1;1743:56:0;1817:1;1580:246;-1:-1:-1;;;1580:246:0:o;1834:132::-;1892:7;1919:39;1923:1;1926;1919:39;;;;;;;;;;;;;;;;;:3;:39::i;9640:98::-;9697:7;9724:1;9722;:3;9721:9;;9729:1;9721:9;;;-1:-1:-1;9727:1:0;9640:98;-1:-1:-1;9640:98:0:o;1051:179::-;1109:7;;1141:5;1145:1;1141;:5;:::i;:::-;1129:17;;1170:1;1165;:6;;1157:46;;;;-1:-1:-1;;;1157:46:0;;13047:2:1;1157:46:0;;;13029:21:1;13086:2;13066:18;;;13059:30;13125:29;13105:18;;;13098:57;13172:18;;1157:46:0;12845:351:1;1238:136:0;1296:7;1323:43;1327:1;1330;1323:43;;;;;;;;;;;;;;;;;:3;:43::i;1974:189::-;2060:7;2095:12;2088:5;2080:28;;;;-1:-1:-1;;;2080:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2119:9:0;2131:5;2135:1;2131;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;5301:251::-;5371:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:52;;;5440:1;5437;5430:12;5392:52;5472:9;5466:16;5491:31;5516:5;5491:31;:::i;6478:306::-;6566:6;6574;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6680:9;6674:16;6664:26;;6730:2;6719:9;6715:18;6709:25;6699:35;;6774:2;6763:9;6759:18;6753:25;6743:35;;6478:306;;;;;:::o;7068:277::-;7135:6;7188:2;7176:9;7167:7;7163:23;7159:32;7156:52;;;7204:1;7201;7194:12;7156:52;7236:9;7230:16;7289:5;7282:13;7275:21;7268:5;7265:32;7255:60;;7311:1;7308;7301:12;10214:125;10279:9;;;10300:10;;;10297:36;;;10313:18;;:::i;10699:135::-;10738:3;10759:17;;;10756:43;;10779:18;;:::i;:::-;-1:-1:-1;10826:1:1;10815:13;;10699:135::o;10839:128::-;10906:9;;;10927:11;;;10924:37;;;10941:18;;:::i;11104:127::-;11165:10;11160:3;11156:20;11153:1;11146:31;11196:4;11193:1;11186:15;11220:4;11217:1;11210:15;11236:980;11498:4;11546:3;11535:9;11531:19;11577:6;11566:9;11559:25;11603:2;11641:6;11636:2;11625:9;11621:18;11614:34;11684:3;11679:2;11668:9;11664:18;11657:31;11708:6;11743;11737:13;11774:6;11766;11759:22;11812:3;11801:9;11797:19;11790:26;;11851:2;11843:6;11839:15;11825:29;;11872:1;11882:195;11896:6;11893:1;11890:13;11882:195;;;11961:13;;-1:-1:-1;;;;;11957:39:1;11945:52;;12052:15;;;;12017:12;;;;11993:1;11911:9;11882:195;;;-1:-1:-1;;;;;;;12133:32:1;;;;12128:2;12113:18;;12106:60;-1:-1:-1;;;12197:3:1;12182:19;12175:35;12094:3;11236:980;-1:-1:-1;;;11236:980:1:o;12221:217::-;12261:1;12287;12277:132;;12331:10;12326:3;12322:20;12319:1;12312:31;12366:4;12363:1;12356:15;12394:4;12391:1;12384:15;12277:132;-1:-1:-1;12423:9:1;;12221:217::o

Swarm Source

ipfs://bd8d36c0367c6cebef51b479e9e8d307041d7515ad5d522f2afd29ff152bfbcc

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.