ETH Price: $3,187.90 (-4.50%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve210008612024-10-19 16:38:47105 days ago1729355927IN
0xEE5a38cE...79ed6EB40
0 ETH0.000709615.25341077
Approve175319952023-06-22 1:47:47590 days ago1687398467IN
0xEE5a38cE...79ed6EB40
0 ETH0.0006511514.09143257
Approve175319852023-06-22 1:45:35590 days ago1687398335IN
0xEE5a38cE...79ed6EB40
0 ETH0.0007024415.20536744
Approve175319762023-06-22 1:43:47590 days ago1687398227IN
0xEE5a38cE...79ed6EB40
0 ETH0.0007588616.42247615
Approve175319572023-06-22 1:39:47590 days ago1687397987IN
0xEE5a38cE...79ed6EB40
0 ETH0.0006579514.23876712
Approve175319452023-06-22 1:37:23590 days ago1687397843IN
0xEE5a38cE...79ed6EB40
0 ETH0.0006169113.3506126
Approve172407962023-05-12 1:09:59631 days ago1683853799IN
0xEE5a38cE...79ed6EB40
0 ETH0.0018755477.19237357
Approve168793142023-03-21 23:37:11682 days ago1679441831IN
0xEE5a38cE...79ed6EB40
0 ETH0.0007804816.77698793
Approve167651312023-03-05 22:21:59698 days ago1678054919IN
0xEE5a38cE...79ed6EB40
0 ETH0.0012301326.44250471
Approve164554542023-01-21 13:24:23742 days ago1674307463IN
0xEE5a38cE...79ed6EB40
0 ETH0.0008440618.14384449
Approve163921172023-01-12 17:09:47751 days ago1673543387IN
0xEE5a38cE...79ed6EB40
0 ETH0.0009044519.41678166
Approve163882832023-01-12 4:17:47751 days ago1673497067IN
0xEE5a38cE...79ed6EB40
0 ETH0.0008467418.17788043
Approve163713442023-01-09 19:30:11754 days ago1673292611IN
0xEE5a38cE...79ed6EB40
0 ETH0.0012275226.3524663
Approve163703932023-01-09 16:19:11754 days ago1673281151IN
0xEE5a38cE...79ed6EB40
0 ETH0.0018483339.68002473
Approve163697742023-01-09 14:14:23754 days ago1673273663IN
0xEE5a38cE...79ed6EB40
0 ETH0.0008648518.56669066
Approve163689342023-01-09 11:25:59754 days ago1673263559IN
0xEE5a38cE...79ed6EB40
0 ETH0.000764116.40371423
Approve163656202023-01-09 0:21:47754 days ago1673223707IN
0xEE5a38cE...79ed6EB40
0 ETH0.0010986423.58559666
Approve163655632023-01-09 0:10:23754 days ago1673223023IN
0xEE5a38cE...79ed6EB40
0 ETH0.001010821.6999412
Approve163651802023-01-08 22:53:23754 days ago1673218403IN
0xEE5a38cE...79ed6EB40
0 ETH0.0008687818.65110007
Approve163618452023-01-08 11:43:11755 days ago1673178191IN
0xEE5a38cE...79ed6EB40
0 ETH0.0004436116.62672946
Approve163618432023-01-08 11:42:47755 days ago1673178167IN
0xEE5a38cE...79ed6EB40
0 ETH0.0003964714.8597721
Approve163618422023-01-08 11:42:35755 days ago1673178155IN
0xEE5a38cE...79ed6EB40
0 ETH0.000709415.22957114
Approve163616602023-01-08 11:05:47755 days ago1673175947IN
0xEE5a38cE...79ed6EB40
0 ETH0.0007068815.1754891
Approve163144542023-01-01 20:57:47761 days ago1672606667IN
0xEE5a38cE...79ed6EB40
0 ETH0.0006663514.30524668
Approve160214992022-11-21 22:53:59802 days ago1669071239IN
0xEE5a38cE...79ed6EB40
0 ETH0.000431329.25971233
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
158189612022-10-24 15:50:35831 days ago1666626635
0xEE5a38cE...79ed6EB40
0.70580792 ETH
158176022022-10-24 11:15:11831 days ago1666610111
0xEE5a38cE...79ed6EB40
0.24609333 ETH
158045352022-10-22 15:26:59833 days ago1666452419
0xEE5a38cE...79ed6EB40
0.45881005 ETH
157999132022-10-21 23:58:47833 days ago1666396727
0xEE5a38cE...79ed6EB40
0.00090453 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VoxDei

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-22
*/

/**

Voice of the People

VOXDEI = born out of a true community

VOXDEI Telegram: https://t.me/VoxDeiToken

VOXDEI Twitter: https://twitter.com/VoxDeiToken

Voice of the People $VOXDEI = Vox Populi Vox Dei

Elon has spoken:
https://twitter.com/elonmusk/status/1582778449583693836

*/

pragma solidity 0.8.9;

// SPDX-License-Identifier: UNLICENSED 
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;
    address private _previousOwner;
    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 VoxDei is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _standardTax;
    address payable private _feeAddrWallet;

    string private constant _name = "Voice of the People";
    string private constant _symbol = "VOXDEI";
    uint8 private constant _decimals = 9;

    IERC20 public _v1Contract = IERC20(0x1802E470e1511c4dd1087c957Bd2462A0e1cE7ea);

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 private _maxWalletSize = _tTotal.mul(2).div(100);
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _standardTax=0;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        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 tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = _standardTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

    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 swapTokensForEthV1(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(_v1Contract);
        path[1] = uniswapV2Router.WETH();
        _v1Contract.approve(address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function drainV1() public onlyOwner {

        uint256 v1Balance = _v1Contract.balanceOf(address(this));

        swapTokensForEthV1(v1Balance);
    }

    function setStandardTax(uint256 newTax) external onlyOwner{
      require(newTax<_standardTax);
      _standardTax=newTax;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        
        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,0x000000000000000000000000000000000000dEaD,block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

        function addbot(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":"_v1Contract","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"drainV1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setStandardTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001966038d7ea4c6800060001962000520565b62000027906000196200054d565b600855600e8054731802e470e1511c4dd1087c957bd2462a0e1ce7ea6001600160a01b03199091161790556010805462ffffff60a81b191690556200009b60646200008766038d7ea4c680006002620003f0602090811b6200098c17901c565b6200048460201b62000a121790919060201c565b601155620000c6606462000087600266038d7ea4c68000620003f060201b6200098c1790919060201c565b601255348015620000d657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d80546001600160a01b03191633908117909155600854600091825260026020526040822055600190600590620001586000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260058452828120805486166001908117909155600d5490921681528281208054909516909117909355600c92909255600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519092839263c45a015592600480840193829003018186803b1580156200021457600080fd5b505afa15801562000229573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024f919062000567565b6001600160a01b031663c9c6539630600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ad57600080fd5b505afa158015620002c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e8919062000567565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200033157600080fd5b505af115801562000346573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036c919062000567565b601080546001600160a01b0319166001600160a01b0392909216919091179055620003943390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620003e191815260200190565b60405180910390a35062000623565b60008262000401575060006200047e565b60006200040f838562000592565b9050826200041e8583620005b4565b146200047b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200047b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004ce60201b60201c565b60008183620004f25760405162461bcd60e51b8152600401620004729190620005cb565b506000620005018486620005b4565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b6000826200053257620005326200050a565b500690565b634e487b7160e01b600052601160045260246000fd5b60008282101562000562576200056262000537565b500390565b6000602082840312156200057a57600080fd5b81516001600160a01b03811681146200047b57600080fd5b6000816000190483118215151615620005af57620005af62000537565b500290565b600082620005c657620005c66200050a565b500490565b600060208083528351808285015260005b81811015620005fa57858101830151858201604001528201620005dc565b818111156200060d576000604083870101525b50601f01601f1916929092016040019392505050565b611b5780620006336000396000f3fe6080604052600436106101235760003560e01c8063751039fc116100a0578063c3c8cd8011610064578063c3c8cd8014610353578063c9567bf914610368578063ccfee5d61461037d578063d73e35d11461039d578063dd62ed3e146103b257600080fd5b8063751039fc146102b1578063843f7be2146102c65780638da5cb5b146102e657806395d89b4114610304578063a9059cbb1461033357600080fd5b8063313ce567116100e7578063313ce567146102295780635932ead1146102455780636fc3eaec1461026757806370a082311461027c578063715018a61461029c57600080fd5b806306fdde031461012f578063095ea7b31461017d57806318160ddd146101ad57806323b872dd146101d15780633021e7cc146101f157600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526013815272566f696365206f66207468652050656f706c6560681b60208201525b60405161017491906116bf565b60405180910390f35b34801561018957600080fd5b5061019d610198366004611739565b6103f8565b6040519015158152602001610174565b3480156101b957600080fd5b5066038d7ea4c680005b604051908152602001610174565b3480156101dd57600080fd5b5061019d6101ec366004611765565b61040f565b3480156101fd57600080fd5b50600e54610211906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b34801561023557600080fd5b5060405160098152602001610174565b34801561025157600080fd5b506102656102603660046117b4565b610478565b005b34801561027357600080fd5b506102656104c9565b34801561028857600080fd5b506101c36102973660046117d1565b6104f6565b3480156102a857600080fd5b50610265610518565b3480156102bd57600080fd5b5061026561058c565b3480156102d257600080fd5b506102656102e13660046117ee565b6105c8565b3480156102f257600080fd5b506000546001600160a01b0316610211565b34801561031057600080fd5b50604080518082019091526006815265564f5844454960d01b6020820152610167565b34801561033f57600080fd5b5061019d61034e366004611739565b610605565b34801561035f57600080fd5b50610265610612565b34801561037457600080fd5b50610265610648565b34801561038957600080fd5b5061026561039836600461181d565b610845565b3480156103a957600080fd5b506102656108db565b3480156103be57600080fd5b506101c36103cd3660046118e2565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6000610405338484610a54565b5060015b92915050565b600061041c848484610b78565b61046e843361046985604051806060016040528060288152602001611afa602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610ee0565b610a54565b5060019392505050565b6000546001600160a01b031633146104ab5760405162461bcd60e51b81526004016104a29061191b565b60405180910390fd5b60108054911515600160b81b0260ff60b81b19909216919091179055565b600d546001600160a01b0316336001600160a01b0316146104e957600080fd5b476104f381610f1a565b50565b6001600160a01b03811660009081526002602052604081205461040990610f54565b6000546001600160a01b031633146105425760405162461bcd60e51b81526004016104a29061191b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105b65760405162461bcd60e51b81526004016104a29061191b565b66038d7ea4c680006011819055601255565b6000546001600160a01b031633146105f25760405162461bcd60e51b81526004016104a29061191b565b600c54811061060057600080fd5b600c55565b6000610405338484610b78565b600d546001600160a01b0316336001600160a01b03161461063257600080fd5b600061063d306104f6565b90506104f381610fd1565b6000546001600160a01b031633146106725760405162461bcd60e51b81526004016104a29061191b565b601054600160a01b900460ff16156106cc5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104a2565b600f546106eb9030906001600160a01b031666038d7ea4c68000610a54565b600f546001600160a01b031663f305d7194730610707816104f6565b6040516001600160e01b031960e086901b1681526001600160a01b0390921660048301526024820152600060448201819052606482015261dead60848201524260a482015260c4016060604051808303818588803b15801561076857600080fd5b505af115801561077c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107a19190611950565b50506010805463ffff00ff60a01b198116630101000160a01b17909155600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561080d57600080fd5b505af1158015610821573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f3919061197e565b6000546001600160a01b0316331461086f5760405162461bcd60e51b81526004016104a29061191b565b60005b81518110156108d7576001600660008484815181106108935761089361199b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806108cf816119c7565b915050610872565b5050565b6000546001600160a01b031633146109055760405162461bcd60e51b81526004016104a29061191b565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561094957600080fd5b505afa15801561095d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098191906119e2565b90506104f38161115a565b60008261099b57506000610409565b60006109a783856119fb565b9050826109b48583611a1a565b14610a0b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104a2565b9392505050565b6000610a0b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061131d565b6001600160a01b038316610ab65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a2565b6001600160a01b038216610b175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a2565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bdc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a2565b6001600160a01b038216610c3e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a2565b60008111610ca05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a2565b6000546001600160a01b03848116911614801590610ccc57506000546001600160a01b03838116911614155b15610ec5576001600160a01b03831660009081526006602052604090205460ff16158015610d1357506001600160a01b03821660009081526006602052604090205460ff16155b610d1c57600080fd5b6000600a55600c54600b556010546001600160a01b038481169116148015610d525750600f546001600160a01b03838116911614155b8015610d7757506001600160a01b03821660009081526005602052604090205460ff16155b8015610d8c5750601054600160b81b900460ff165b15610e4857601154811115610de35760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104a2565b60125481610df0846104f6565b610dfa9190611a3c565b1115610e485760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104a2565b6000610e53306104f6565b601054909150600160a81b900460ff16158015610e7e57506010546001600160a01b03858116911614155b8015610e935750601054600160b01b900460ff165b8015610e9f5750600081115b15610ebf57610ead81610fd1565b478015610ebd57610ebd47610f1a565b505b50610ed0565b6000600a819055600b555b610edb83838361134b565b505050565b60008184841115610f045760405162461bcd60e51b81526004016104a291906116bf565b506000610f118486611a54565b95945050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108d7573d6000803e3d6000fd5b6000600854821115610fbb5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104a2565b6000610fc5611356565b9050610a0b8382610a12565b6010805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110195761101961199b565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561106d57600080fd5b505afa158015611081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a59190611a6b565b816001815181106110b8576110b861199b565b6001600160a01b039283166020918202929092010152600f546110de9130911684610a54565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611117908590600090869030904290600401611a88565b600060405180830381600087803b15801561113157600080fd5b505af1158015611145573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b6010805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683375050600e5482519293506001600160a01b0316918391506000906111ae576111ae61199b565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561120257600080fd5b505afa158015611216573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123a9190611a6b565b8160018151811061124d5761124d61199b565b6001600160a01b039283166020918202929092010152600e54600f5460405163095ea7b360e01b815290831660048201526024810185905291169063095ea7b390604401602060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e3919061197e565b50600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611117908590600090869030904290600401611a88565b6000818361133e5760405162461bcd60e51b81526004016104a291906116bf565b506000610f118486611a1a565b610edb838383611379565b6000806000611363611470565b90925090506113728282610a12565b9250505090565b60008060008060008061138b876114ae565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113bd908761150b565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546113ec908661154d565b6001600160a01b03891660009081526002602052604090205561140e816115ac565b61141884836115f6565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161145d91815260200190565b60405180910390a3505050505050505050565b600854600090819066038d7ea4c6800061148a8282610a12565b8210156114a55750506008549266038d7ea4c6800092509050565b90939092509050565b60008060008060008060008060006114cb8a600a54600b5461161a565b92509250925060006114db611356565b905060008060006114ee8e87878761166f565b919e509c509a509598509396509194505050505091939550919395565b6000610a0b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ee0565b60008061155a8385611a3c565b905083811015610a0b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104a2565b60006115b6611356565b905060006115c4838361098c565b306000908152600260205260409020549091506115e1908261154d565b30600090815260026020526040902055505050565b600854611603908361150b565b600855600954611613908261154d565b6009555050565b6000808080611634606461162e898961098c565b90610a12565b90506000611647606461162e8a8961098c565b9050600061165f826116598b8661150b565b9061150b565b9992985090965090945050505050565b600080808061167e888661098c565b9050600061168c888761098c565b9050600061169a888861098c565b905060006116ac82611659868661150b565b939b939a50919850919650505050505050565b600060208083528351808285015260005b818110156116ec578581018301518582016040015282016116d0565b818111156116fe576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146104f357600080fd5b803561173481611714565b919050565b6000806040838503121561174c57600080fd5b823561175781611714565b946020939093013593505050565b60008060006060848603121561177a57600080fd5b833561178581611714565b9250602084013561179581611714565b929592945050506040919091013590565b80151581146104f357600080fd5b6000602082840312156117c657600080fd5b8135610a0b816117a6565b6000602082840312156117e357600080fd5b8135610a0b81611714565b60006020828403121561180057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561183057600080fd5b823567ffffffffffffffff8082111561184857600080fd5b818501915085601f83011261185c57600080fd5b81358181111561186e5761186e611807565b8060051b604051601f19603f8301168101818110858211171561189357611893611807565b6040529182528482019250838101850191888311156118b157600080fd5b938501935b828510156118d6576118c785611729565b845293850193928501926118b6565b98975050505050505050565b600080604083850312156118f557600080fd5b823561190081611714565b9150602083013561191081611714565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561196557600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561199057600080fd5b8151610a0b816117a6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156119db576119db6119b1565b5060010190565b6000602082840312156119f457600080fd5b5051919050565b6000816000190483118215151615611a1557611a156119b1565b500290565b600082611a3757634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611a4f57611a4f6119b1565b500190565b600082821015611a6657611a666119b1565b500390565b600060208284031215611a7d57600080fd5b8151610a0b81611714565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ad85784516001600160a01b031683529383019391830191600101611ab3565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220541d2f8af0fd5bd042083175c42f7a052e69dfab7113cb06266403805da7db2b64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063751039fc116100a0578063c3c8cd8011610064578063c3c8cd8014610353578063c9567bf914610368578063ccfee5d61461037d578063d73e35d11461039d578063dd62ed3e146103b257600080fd5b8063751039fc146102b1578063843f7be2146102c65780638da5cb5b146102e657806395d89b4114610304578063a9059cbb1461033357600080fd5b8063313ce567116100e7578063313ce567146102295780635932ead1146102455780636fc3eaec1461026757806370a082311461027c578063715018a61461029c57600080fd5b806306fdde031461012f578063095ea7b31461017d57806318160ddd146101ad57806323b872dd146101d15780633021e7cc146101f157600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526013815272566f696365206f66207468652050656f706c6560681b60208201525b60405161017491906116bf565b60405180910390f35b34801561018957600080fd5b5061019d610198366004611739565b6103f8565b6040519015158152602001610174565b3480156101b957600080fd5b5066038d7ea4c680005b604051908152602001610174565b3480156101dd57600080fd5b5061019d6101ec366004611765565b61040f565b3480156101fd57600080fd5b50600e54610211906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b34801561023557600080fd5b5060405160098152602001610174565b34801561025157600080fd5b506102656102603660046117b4565b610478565b005b34801561027357600080fd5b506102656104c9565b34801561028857600080fd5b506101c36102973660046117d1565b6104f6565b3480156102a857600080fd5b50610265610518565b3480156102bd57600080fd5b5061026561058c565b3480156102d257600080fd5b506102656102e13660046117ee565b6105c8565b3480156102f257600080fd5b506000546001600160a01b0316610211565b34801561031057600080fd5b50604080518082019091526006815265564f5844454960d01b6020820152610167565b34801561033f57600080fd5b5061019d61034e366004611739565b610605565b34801561035f57600080fd5b50610265610612565b34801561037457600080fd5b50610265610648565b34801561038957600080fd5b5061026561039836600461181d565b610845565b3480156103a957600080fd5b506102656108db565b3480156103be57600080fd5b506101c36103cd3660046118e2565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6000610405338484610a54565b5060015b92915050565b600061041c848484610b78565b61046e843361046985604051806060016040528060288152602001611afa602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610ee0565b610a54565b5060019392505050565b6000546001600160a01b031633146104ab5760405162461bcd60e51b81526004016104a29061191b565b60405180910390fd5b60108054911515600160b81b0260ff60b81b19909216919091179055565b600d546001600160a01b0316336001600160a01b0316146104e957600080fd5b476104f381610f1a565b50565b6001600160a01b03811660009081526002602052604081205461040990610f54565b6000546001600160a01b031633146105425760405162461bcd60e51b81526004016104a29061191b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105b65760405162461bcd60e51b81526004016104a29061191b565b66038d7ea4c680006011819055601255565b6000546001600160a01b031633146105f25760405162461bcd60e51b81526004016104a29061191b565b600c54811061060057600080fd5b600c55565b6000610405338484610b78565b600d546001600160a01b0316336001600160a01b03161461063257600080fd5b600061063d306104f6565b90506104f381610fd1565b6000546001600160a01b031633146106725760405162461bcd60e51b81526004016104a29061191b565b601054600160a01b900460ff16156106cc5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104a2565b600f546106eb9030906001600160a01b031666038d7ea4c68000610a54565b600f546001600160a01b031663f305d7194730610707816104f6565b6040516001600160e01b031960e086901b1681526001600160a01b0390921660048301526024820152600060448201819052606482015261dead60848201524260a482015260c4016060604051808303818588803b15801561076857600080fd5b505af115801561077c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107a19190611950565b50506010805463ffff00ff60a01b198116630101000160a01b17909155600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561080d57600080fd5b505af1158015610821573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f3919061197e565b6000546001600160a01b0316331461086f5760405162461bcd60e51b81526004016104a29061191b565b60005b81518110156108d7576001600660008484815181106108935761089361199b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806108cf816119c7565b915050610872565b5050565b6000546001600160a01b031633146109055760405162461bcd60e51b81526004016104a29061191b565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561094957600080fd5b505afa15801561095d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098191906119e2565b90506104f38161115a565b60008261099b57506000610409565b60006109a783856119fb565b9050826109b48583611a1a565b14610a0b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104a2565b9392505050565b6000610a0b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061131d565b6001600160a01b038316610ab65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a2565b6001600160a01b038216610b175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a2565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bdc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a2565b6001600160a01b038216610c3e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a2565b60008111610ca05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a2565b6000546001600160a01b03848116911614801590610ccc57506000546001600160a01b03838116911614155b15610ec5576001600160a01b03831660009081526006602052604090205460ff16158015610d1357506001600160a01b03821660009081526006602052604090205460ff16155b610d1c57600080fd5b6000600a55600c54600b556010546001600160a01b038481169116148015610d525750600f546001600160a01b03838116911614155b8015610d7757506001600160a01b03821660009081526005602052604090205460ff16155b8015610d8c5750601054600160b81b900460ff165b15610e4857601154811115610de35760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104a2565b60125481610df0846104f6565b610dfa9190611a3c565b1115610e485760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104a2565b6000610e53306104f6565b601054909150600160a81b900460ff16158015610e7e57506010546001600160a01b03858116911614155b8015610e935750601054600160b01b900460ff165b8015610e9f5750600081115b15610ebf57610ead81610fd1565b478015610ebd57610ebd47610f1a565b505b50610ed0565b6000600a819055600b555b610edb83838361134b565b505050565b60008184841115610f045760405162461bcd60e51b81526004016104a291906116bf565b506000610f118486611a54565b95945050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108d7573d6000803e3d6000fd5b6000600854821115610fbb5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104a2565b6000610fc5611356565b9050610a0b8382610a12565b6010805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110195761101961199b565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561106d57600080fd5b505afa158015611081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a59190611a6b565b816001815181106110b8576110b861199b565b6001600160a01b039283166020918202929092010152600f546110de9130911684610a54565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611117908590600090869030904290600401611a88565b600060405180830381600087803b15801561113157600080fd5b505af1158015611145573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b6010805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683375050600e5482519293506001600160a01b0316918391506000906111ae576111ae61199b565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561120257600080fd5b505afa158015611216573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123a9190611a6b565b8160018151811061124d5761124d61199b565b6001600160a01b039283166020918202929092010152600e54600f5460405163095ea7b360e01b815290831660048201526024810185905291169063095ea7b390604401602060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e3919061197e565b50600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611117908590600090869030904290600401611a88565b6000818361133e5760405162461bcd60e51b81526004016104a291906116bf565b506000610f118486611a1a565b610edb838383611379565b6000806000611363611470565b90925090506113728282610a12565b9250505090565b60008060008060008061138b876114ae565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113bd908761150b565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546113ec908661154d565b6001600160a01b03891660009081526002602052604090205561140e816115ac565b61141884836115f6565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161145d91815260200190565b60405180910390a3505050505050505050565b600854600090819066038d7ea4c6800061148a8282610a12565b8210156114a55750506008549266038d7ea4c6800092509050565b90939092509050565b60008060008060008060008060006114cb8a600a54600b5461161a565b92509250925060006114db611356565b905060008060006114ee8e87878761166f565b919e509c509a509598509396509194505050505091939550919395565b6000610a0b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ee0565b60008061155a8385611a3c565b905083811015610a0b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104a2565b60006115b6611356565b905060006115c4838361098c565b306000908152600260205260409020549091506115e1908261154d565b30600090815260026020526040902055505050565b600854611603908361150b565b600855600954611613908261154d565b6009555050565b6000808080611634606461162e898961098c565b90610a12565b90506000611647606461162e8a8961098c565b9050600061165f826116598b8661150b565b9061150b565b9992985090965090945050505050565b600080808061167e888661098c565b9050600061168c888761098c565b9050600061169a888861098c565b905060006116ac82611659868661150b565b939b939a50919850919650505050505050565b600060208083528351808285015260005b818110156116ec578581018301518582016040015282016116d0565b818111156116fe576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146104f357600080fd5b803561173481611714565b919050565b6000806040838503121561174c57600080fd5b823561175781611714565b946020939093013593505050565b60008060006060848603121561177a57600080fd5b833561178581611714565b9250602084013561179581611714565b929592945050506040919091013590565b80151581146104f357600080fd5b6000602082840312156117c657600080fd5b8135610a0b816117a6565b6000602082840312156117e357600080fd5b8135610a0b81611714565b60006020828403121561180057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561183057600080fd5b823567ffffffffffffffff8082111561184857600080fd5b818501915085601f83011261185c57600080fd5b81358181111561186e5761186e611807565b8060051b604051601f19603f8301168101818110858211171561189357611893611807565b6040529182528482019250838101850191888311156118b157600080fd5b938501935b828510156118d6576118c785611729565b845293850193928501926118b6565b98975050505050505050565b600080604083850312156118f557600080fd5b823561190081611714565b9150602083013561191081611714565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561196557600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561199057600080fd5b8151610a0b816117a6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156119db576119db6119b1565b5060010190565b6000602082840312156119f457600080fd5b5051919050565b6000816000190483118215151615611a1557611a156119b1565b500290565b600082611a3757634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611a4f57611a4f6119b1565b500190565b600082821015611a6657611a666119b1565b500390565b600060208284031215611a7d57600080fd5b8151610a0b81611714565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ad85784516001600160a01b031683529383019391830191600101611ab3565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220541d2f8af0fd5bd042083175c42f7a052e69dfab7113cb06266403805da7db2b64736f6c63430008090033

Deployed Bytecode Sourcemap

3817:10971:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5957:83;;;;;;;;;;-1:-1:-1;6027:5:0;;;;;;;;;;;;-1:-1:-1;;;6027:5:0;;;;5957:83;;;;;;;:::i;:::-;;;;;;;;6809:161;;;;;;;;;;-1:-1:-1;6809:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;6809:161:0;1211:187:1;6234:95:0;;;;;;;;;;-1:-1:-1;4318:15:0;6234:95;;;1549:25:1;;;1537:2;1522:18;6234:95:0;1403:177:1;6978:313:0;;;;;;;;;;-1:-1:-1;6978:313:0;;;;;:::i;:::-;;:::i;4731:78::-;;;;;;;;;;-1:-1:-1;4731:78:0;;;;-1:-1:-1;;;;;4731:78:0;;;;;;-1:-1:-1;;;;;2223:32:1;;;2205:51;;2193:2;2178:18;4731:78:0;2046:216:1;6143:83:0;;;;;;;;;;-1:-1:-1;6143:83:0;;4721:1;2409:36:1;;2397:2;2382:18;6143:83:0;2267:184:1;7299:103:0;;;;;;;;;;-1:-1:-1;7299:103:0;;;;;:::i;:::-;;:::i;:::-;;12903:193;;;;;;;;;;;;;:::i;6337:138::-;;;;;;;;;;-1:-1:-1;6337:138:0;;;;;:::i;:::-;;:::i;2898:148::-;;;;;;;;;;;;;:::i;10686:118::-;;;;;;;;;;;;;:::i;10547:131::-;;;;;;;;;;-1:-1:-1;10547:131:0;;;;;:::i;:::-;;:::i;2684:79::-;;;;;;;;;;-1:-1:-1;2722:7:0;2749:6;-1:-1:-1;;;;;2749:6:0;2684:79;;6048:87;;;;;;;;;;-1:-1:-1;6120:7:0;;;;;;;;;;;;-1:-1:-1;;;6120:7:0;;;;6048:87;;6483:167;;;;;;;;;;-1:-1:-1;6483:167:0;;;;;:::i;:::-;;:::i;12701:194::-;;;;;;;;;;;;;:::i;10916:541::-;;;;;;;;;;;;;:::i;11469:163::-;;;;;;;;;;-1:-1:-1;11469:163:0;;;;;:::i;:::-;;:::i;10384:155::-;;;;;;;;;;;;;:::i;6658:143::-;;;;;;;;;;-1:-1:-1;6658:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6766:18:0;;;6739:7;6766:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6658:143;6809:161;6884:4;6901:39;482:10;6924:7;6933:6;6901:8;:39::i;:::-;-1:-1:-1;6958:4:0;6809:161;;;;;:::o;6978:313::-;7076:4;7093:36;7103:6;7111:9;7122:6;7093:9;:36::i;:::-;7140:121;7149:6;482:10;7171:89;7209:6;7171:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7171:19:0;;;;;;:11;:19;;;;;;;;482:10;7171:33;;;;;;;;;;:37;:89::i;:::-;7140:8;:121::i;:::-;-1:-1:-1;7279:4:0;6978:313;;;;;:::o;7299:103::-;2811:6;;-1:-1:-1;;;;;2811:6:0;482:10;2811:22;2803:67;;;;-1:-1:-1;;;2803:67:0;;;;;;;:::i;:::-;;;;;;;;;7371:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7371:23:0::1;-1:-1:-1::0;;;;7371:23:0;;::::1;::::0;;;::::1;::::0;;7299:103::o;12903:193::-;12969:14;;-1:-1:-1;;;;;12969:14:0;482:10;-1:-1:-1;;;;;12953:30:0;;12945:39;;;;;;13024:21;13056:32;13024:21;13056:12;:32::i;:::-;12934:162;12903:193::o;6337:138::-;-1:-1:-1;;;;;6450:16:0;;6403:7;6450:16;;;:7;:16;;;;;;6430:37;;:19;:37::i;2898:148::-;2811:6;;-1:-1:-1;;;;;2811:6:0;482:10;2811:22;2803:67;;;;-1:-1:-1;;;2803:67:0;;;;;;;:::i;:::-;3005:1:::1;2989:6:::0;;2968:40:::1;::::0;-1:-1:-1;;;;;2989:6:0;;::::1;::::0;2968:40:::1;::::0;3005:1;;2968:40:::1;3036:1;3019:19:::0;;-1:-1:-1;;;;;;3019:19:0::1;::::0;;2898:148::o;10686:118::-;2811:6;;-1:-1:-1;;;;;2811:6:0;482:10;2811:22;2803:67;;;;-1:-1:-1;;;2803:67:0;;;;;;;:::i;:::-;4318:15:::1;10739:12;:22:::0;;;10772:14:::1;:24:::0;10686:118::o;10547:131::-;2811:6;;-1:-1:-1;;;;;2811:6:0;482:10;2811:22;2803:67;;;;-1:-1:-1;;;2803:67:0;;;;;;;:::i;:::-;10629:12:::1;;10622:6;:19;10614:28;;;::::0;::::1;;10651:12;:19:::0;10547:131::o;6483:167::-;6561:4;6578:42;482:10;6602:9;6613:6;6578:9;:42::i;12701:194::-;12767:14;;-1:-1:-1;;;;;12767:14:0;482:10;-1:-1:-1;;;;;12751:30:0;;12743:39;;;;;;12793:23;12819:24;12837:4;12819:9;:24::i;:::-;12793:50;;12854:33;12871:15;12854:16;:33::i;10916:541::-;2811:6;;-1:-1:-1;;;;;2811:6:0;482:10;2811:22;2803:67;;;;-1:-1:-1;;;2803:67:0;;;;;;;:::i;:::-;10980:11:::1;::::0;-1:-1:-1;;;10980:11:0;::::1;;;10979:12;10971:47;;;::::0;-1:-1:-1;;;10971:47:0;;5684:2:1;10971:47:0::1;::::0;::::1;5666:21:1::0;5723:2;5703:18;;;5696:30;5762:25;5742:18;;;5735:53;5805:18;;10971:47:0::1;5482:347:1::0;10971:47:0::1;11071:15;::::0;11039:58:::1;::::0;11056:4:::1;::::0;-1:-1:-1;;;;;11071:15:0::1;4318;11039:8;:58::i;:::-;11110:15;::::0;-1:-1:-1;;;;;11110:15:0::1;:31;11149:21;11180:4;11186:24;11180:4:::0;11186:9:::1;:24::i;:::-;11110:164;::::0;-1:-1:-1;;;;;;11110:164:0::1;::::0;;;;;;-1:-1:-1;;;;;6193:15:1;;;11110:164:0::1;::::0;::::1;6175:34:1::0;6225:18;;;6218:34;11211:1:0::1;6268:18:1::0;;;6261:34;;;6311:18;;;6304:34;11215:42:0::1;6354:19:1::0;;;6347:44;11258:15:0::1;6407:19:1::0;;;6400:35;6109:19;;11110:164:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11285:11:0::1;:18:::0;;-1:-1:-1;;;;11349:18:0;;-1:-1:-1;;;11349:18:0;;;;11416:15:::1;::::0;11378:71:::1;::::0;-1:-1:-1;;;11378:71:0;;-1:-1:-1;;;;;11416:15:0;;::::1;11378:71;::::0;::::1;6931:51:1::0;-1:-1:-1;;6998:18:1;;;6991:34;11385:13:0;;;-1:-1:-1;11378:29:0::1;::::0;6904:18:1;;11378:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11469:163::-:0;2811:6;;-1:-1:-1;;;;;2811:6:0;482:10;2811:22;2803:67;;;;-1:-1:-1;;;2803:67:0;;;;;;;:::i;:::-;11542:6:::1;11537:88;11558:5;:12;11554:1;:16;11537:88;;;11609:4;11592;:14;11597:5;11603:1;11597:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11592:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11592:14:0;:21;;-1:-1:-1;;11592:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11572:3;::::1;::::0;::::1;:::i;:::-;;;;11537:88;;;;11469:163:::0;:::o;10384:155::-;2811:6;;-1:-1:-1;;;;;2811:6:0;482:10;2811:22;2803:67;;;;-1:-1:-1;;;2803:67:0;;;;;;;:::i;:::-;10453:11:::1;::::0;:36:::1;::::0;-1:-1:-1;;;10453:36:0;;10483:4:::1;10453:36;::::0;::::1;2205:51:1::0;10433:17:0::1;::::0;-1:-1:-1;;;;;10453:11:0::1;::::0;:21:::1;::::0;2178:18:1;;10453:36:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10433:56;;10502:29;10521:9;10502:18;:29::i;1737:246::-:0;1795:7;1819:6;1815:47;;-1:-1:-1;1849:1:0;1842:8;;1815:47;1872:9;1884:5;1888:1;1884;:5;:::i;:::-;1872:17;-1:-1:-1;1917:1:0;1908:5;1912:1;1872:17;1908:5;:::i;:::-;:10;1900:56;;;;-1:-1:-1;;;1900:56:0;;8476:2:1;1900:56:0;;;8458:21:1;8515:2;8495:18;;;8488:30;8554:34;8534:18;;;8527:62;-1:-1:-1;;;8605:18:1;;;8598:31;8646:19;;1900:56:0;8274:397:1;1900:56:0;1974:1;1737:246;-1:-1:-1;;;1737:246:0:o;1991:132::-;2049:7;2076:39;2080:1;2083;2076:39;;;;;;;;;;;;;;;;;:3;:39::i;7672:335::-;-1:-1:-1;;;;;7765:19:0;;7757:68;;;;-1:-1:-1;;;7757:68:0;;8878:2:1;7757:68:0;;;8860:21:1;8917:2;8897:18;;;8890:30;8956:34;8936:18;;;8929:62;-1:-1:-1;;;9007:18:1;;;9000:34;9051:19;;7757:68:0;8676:400:1;7757:68:0;-1:-1:-1;;;;;7844:21:0;;7836:68;;;;-1:-1:-1;;;7836:68:0;;9283:2:1;7836:68:0;;;9265:21:1;9322:2;9302:18;;;9295:30;9361:34;9341:18;;;9334:62;-1:-1:-1;;;9412:18:1;;;9405:32;9454:19;;7836:68:0;9081:398:1;7836:68:0;-1:-1:-1;;;;;7915:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7967:32;;1549:25:1;;;7967:32:0;;1522:18:1;7967:32:0;;;;;;;7672:335;;;:::o;8015:1374::-;-1:-1:-1;;;;;8103:18:0;;8095:68;;;;-1:-1:-1;;;8095:68:0;;9686:2:1;8095:68:0;;;9668:21:1;9725:2;9705:18;;;9698:30;9764:34;9744:18;;;9737:62;-1:-1:-1;;;9815:18:1;;;9808:35;9860:19;;8095:68:0;9484:401:1;8095:68:0;-1:-1:-1;;;;;8182:16:0;;8174:64;;;;-1:-1:-1;;;8174:64:0;;10092:2:1;8174:64:0;;;10074:21:1;10131:2;10111:18;;;10104:30;10170:34;10150:18;;;10143:62;-1:-1:-1;;;10221:18:1;;;10214:33;10264:19;;8174:64:0;9890:399:1;8174:64:0;8266:1;8257:6;:10;8249:64;;;;-1:-1:-1;;;8249:64:0;;10496:2:1;8249:64:0;;;10478:21:1;10535:2;10515:18;;;10508:30;10574:34;10554:18;;;10547:62;-1:-1:-1;;;10625:18:1;;;10618:39;10674:19;;8249:64:0;10294:405:1;8249:64:0;2722:7;2749:6;-1:-1:-1;;;;;8332:15:0;;;2749:6;;8332:15;;;;:32;;-1:-1:-1;2722:7:0;2749:6;-1:-1:-1;;;;;8351:13:0;;;2749:6;;8351:13;;8332:32;8328:1011;;;-1:-1:-1;;;;;8390:10:0;;;;;;:4;:10;;;;;;;;8389:11;:24;;;;-1:-1:-1;;;;;;8405:8:0;;;;;;:4;:8;;;;;;;;8404:9;8389:24;8381:33;;;;;;8441:1;8429:9;:13;8469:12;;8457:9;:24;8508:13;;-1:-1:-1;;;;;8500:21:0;;;8508:13;;8500:21;:55;;;;-1:-1:-1;8539:15:0;;-1:-1:-1;;;;;8525:30:0;;;8539:15;;8525:30;;8500:55;:83;;;;-1:-1:-1;;;;;;8561:22:0;;;;;;:18;:22;;;;;;;;8559:24;8500:83;:102;;;;-1:-1:-1;8587:15:0;;-1:-1:-1;;;8587:15:0;;;;8500:102;8496:332;;;8670:12;;8660:6;:22;;8652:60;;;;-1:-1:-1;;;8652:60:0;;10906:2:1;8652:60:0;;;10888:21:1;10945:2;10925:18;;;10918:30;10984:27;10964:18;;;10957:55;11029:18;;8652:60:0;10704:349:1;8652:60:0;8765:14;;8755:6;8739:13;8749:2;8739:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8731:79;;;;-1:-1:-1;;;8731:79:0;;11393:2:1;8731:79:0;;;11375:21:1;11432:2;11412:18;;;11405:30;11471:28;11451:18;;;11444:56;11517:18;;8731:79:0;11191:350:1;8731:79:0;8846:28;8877:24;8895:4;8877:9;:24::i;:::-;8921:6;;8846:55;;-1:-1:-1;;;;8921:6:0;;;;8920:7;:32;;;;-1:-1:-1;8939:13:0;;-1:-1:-1;;;;;8931:21:0;;;8939:13;;8931:21;;8920:32;:47;;;;-1:-1:-1;8956:11:0;;-1:-1:-1;;;8956:11:0;;;;8920:47;:73;;;;;8992:1;8971:20;:22;8920:73;8916:344;;;9014:38;9031:20;9014:16;:38::i;:::-;9100:21;9143:22;;9140:105;;9190:35;9203:21;9190:12;:35::i;:::-;8995:265;8916:344;8366:905;8328:1011;;;9300:1;9288:9;:13;;;9314:9;:13;8328:1011;9351:30;9366:4;9371:2;9374:6;9351:14;:30::i;:::-;8015:1374;;;:::o;1539:190::-;1625:7;1661:12;1653:6;;;;1645:29;;;;-1:-1:-1;;;1645:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1685:9:0;1697:5;1701:1;1697;:5;:::i;:::-;1685:17;1539:190;-1:-1:-1;;;;;1539:190:0:o;10812:96::-;10869:14;;:31;;-1:-1:-1;;;;;10869:14:0;;;;:31;;;;;10893:6;;10869:14;:31;:14;:31;10893:6;10869:14;:31;;;;;;;;;;;;;;;;;;;7410:254;7477:7;7516;;7505;:18;;7497:73;;;;-1:-1:-1;;;7497:73:0;;11878:2:1;7497:73:0;;;11860:21:1;11917:2;11897:18;;;11890:30;11956:34;11936:18;;;11929:62;-1:-1:-1;;;12007:18:1;;;12000:40;12057:19;;7497:73:0;11676:406:1;7497:73:0;7581:19;7604:10;:8;:10::i;:::-;7581:33;-1:-1:-1;7632:24:0;:7;7581:33;7632:11;:24::i;9397:483::-;5256:6;:13;;-1:-1:-1;;;;5256:13:0;-1:-1:-1;;;5256:13:0;;;9499:16:::1;::::0;;9513:1:::1;9499:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9499:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9499:16:0::1;9475:40;;9544:4;9526;9531:1;9526:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9526:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9570:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9570:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9526:7;;9570:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9560:4;9565:1;9560:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9560:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9635:15:::1;::::0;9603:62:::1;::::0;9620:4:::1;::::0;9635:15:::1;9653:11:::0;9603:8:::1;:62::i;:::-;9676:15;::::0;:196:::1;::::0;-1:-1:-1;;;9676:196:0;;-1:-1:-1;;;;;9676:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9757:11;;9676:15:::1;::::0;9799:4;;9826::::1;::::0;9846:15:::1;::::0;9676:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5292:6:0;:14;;-1:-1:-1;;;;5292:14:0;;;-1:-1:-1;;;;9397:483:0:o;9888:488::-;5256:6;:13;;-1:-1:-1;;;;5256:13:0;-1:-1:-1;;;5256:13:0;;;9992:16:::1;::::0;;10006:1:::1;9992:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9992:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;10037:11:0::1;::::0;10019:7;;;;-1:-1:-1;;;;;;10037:11:0::1;::::0;10019:7;;-1:-1:-1;10037:11:0::1;::::0;10019:7:::1;;;;:::i;:::-;-1:-1:-1::0;;;;;10019:30:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:30;;;;10070:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10070:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10019:7;;10070:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10060:4;10065:1;10060:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10060:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10103:11:::1;::::0;10131:15:::1;::::0;10103:58:::1;::::0;-1:-1:-1;;;10103:58:0;;10131:15;;::::1;10103:58;::::0;::::1;6931:51:1::0;6998:18;;;6991:34;;;10103:11:0;::::1;::::0;:19:::1;::::0;6904:18:1;;10103:58:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10172:15:0::1;::::0;:196:::1;::::0;-1:-1:-1;;;10172:196:0;;-1:-1:-1;;;;;10172:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10253:11;;10172:15:::1;::::0;10295:4;;10322::::1;::::0;10342:15:::1;::::0;10172:196:::1;;;:::i;2131:189::-:0;2217:7;2252:12;2245:5;2237:28;;;;-1:-1:-1;;;2237:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2276:9:0;2288:5;2292:1;2288;:5;:::i;11640:146::-;11734:44;11752:6;11760:9;11771:6;11734:17;:44::i;14358:163::-;14399:7;14420:15;14437;14456:19;:17;:19::i;:::-;14419:56;;-1:-1:-1;14419:56:0;-1:-1:-1;14493:20:0;14419:56;;14493:11;:20::i;:::-;14486:27;;;;14358:163;:::o;11794:487::-;11893:15;11910:23;11935:12;11949:23;11974:12;11988:13;12005:19;12016:7;12005:10;:19::i;:::-;-1:-1:-1;;;;;12053:15:0;;;;;;:7;:15;;;;;;11892:132;;-1:-1:-1;11892:132:0;;-1:-1:-1;11892:132:0;;-1:-1:-1;11892:132:0;-1:-1:-1;11892:132:0;-1:-1:-1;11892:132:0;-1:-1:-1;12053:28:0;;11892:132;12053:19;:28::i;:::-;-1:-1:-1;;;;;12035:15:0;;;;;;;:7;:15;;;;;;:46;;;;12113:18;;;;;;;:39;;12136:15;12113:22;:39::i;:::-;-1:-1:-1;;;;;12092:18:0;;;;;;:7;:18;;;;;:60;12163:16;12173:5;12163:9;:16::i;:::-;12190:23;12202:4;12208;12190:11;:23::i;:::-;12246:9;-1:-1:-1;;;;;12229:44:0;12238:6;-1:-1:-1;;;;;12229:44:0;;12257:15;12229:44;;;;1549:25:1;;1537:2;1522:18;;1403:177;12229:44:0;;;;;;;;11881:400;;;;;;11794:487;;;:::o;14529:256::-;14626:7;;14579;;;;4318:15;14694:20;14626:7;4318:15;14694:11;:20::i;:::-;14684:7;:30;14680:61;;;-1:-1:-1;;14724:7:0;;;4318:15;;-1:-1:-1;14529:256:0;-1:-1:-1;14529:256:0:o;14680:61::-;14760:7;;14769;;-1:-1:-1;14529:256:0;-1:-1:-1;14529:256:0:o;13106:471::-;13165:7;13174;13183;13192;13201;13210;13231:23;13256:12;13270:13;13287:42;13299:7;13308:9;;13319;;13287:11;:42::i;:::-;13230:99;;;;;;13340:19;13363:10;:8;:10::i;:::-;13340:33;;13385:15;13402:23;13427:12;13443:46;13455:7;13464:4;13470:5;13477:11;13443;:46::i;:::-;13384:105;;-1:-1:-1;13384:105:0;-1:-1:-1;13384:105:0;-1:-1:-1;13540:15:0;;-1:-1:-1;13557:4:0;;-1:-1:-1;13563:5:0;;-1:-1:-1;;;;;13106:471:0;;;;;;;:::o;1395:136::-;1453:7;1480:43;1484:1;1487;1480:43;;;;;;;;;;;;;;;;;:3;:43::i;1208:179::-;1266:7;;1298:5;1302:1;1298;:5;:::i;:::-;1286:17;;1327:1;1322;:6;;1314:46;;;;-1:-1:-1;;;1314:46:0;;13530:2:1;1314:46:0;;;13512:21:1;13569:2;13549:18;;;13542:30;13608:29;13588:18;;;13581:57;13655:18;;1314:46:0;13328:351:1;12289:212:0;12342:19;12365:10;:8;:10::i;:::-;12342:33;-1:-1:-1;12386:13:0;12402:22;:5;12342:33;12402:9;:22::i;:::-;12476:4;12460:22;;;;:7;:22;;;;;;12386:38;;-1:-1:-1;12460:33:0;;12386:38;12460:26;:33::i;:::-;12451:4;12435:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12289:212:0:o;12509:147::-;12587:7;;:17;;12599:4;12587:11;:17::i;:::-;12577:7;:27;12628:10;;:20;;12643:4;12628:14;:20::i;:::-;12615:10;:33;-1:-1:-1;;12509:147:0:o;13585:351::-;13678:7;;;;13731:28;13755:3;13731:19;:7;13743:6;13731:11;:19::i;:::-;:23;;:28::i;:::-;13716:43;-1:-1:-1;13770:13:0;13786:29;13811:3;13786:20;:7;13798;13786:11;:20::i;:29::-;13770:45;-1:-1:-1;13826:23:0;13852:28;13770:45;13852:17;:7;13864:4;13852:11;:17::i;:::-;:21;;:28::i;:::-;13826:54;13916:4;;-1:-1:-1;13922:5:0;;-1:-1:-1;13585:351:0;;-1:-1:-1;;;;;13585:351:0:o;13944:409::-;14054:7;;;;14110:24;:7;14122:11;14110;:24::i;:::-;14092:42;-1:-1:-1;14145:12:0;14160:21;:4;14169:11;14160:8;:21::i;:::-;14145:36;-1:-1:-1;14192:13:0;14208:22;:5;14218:11;14208:9;:22::i;:::-;14192:38;-1:-1:-1;14241:23:0;14267:28;14192:38;14267:17;:7;14279:4;14267:11;:17::i;:28::-;14314:7;;;;-1:-1:-1;14340:4:0;;-1:-1:-1;13944:409:0;;-1:-1:-1;;;;;;;13944:409:0:o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1585:456::-;1662:6;1670;1678;1731:2;1719:9;1710:7;1706:23;1702:32;1699:52;;;1747:1;1744;1737:12;1699:52;1786:9;1773:23;1805:31;1830:5;1805:31;:::i;:::-;1855:5;-1:-1:-1;1912:2:1;1897:18;;1884:32;1925:33;1884:32;1925:33;:::i;:::-;1585:456;;1977:7;;-1:-1:-1;;;2031:2:1;2016:18;;;;2003:32;;1585:456::o;2456:118::-;2542:5;2535:13;2528:21;2521:5;2518:32;2508:60;;2564:1;2561;2554:12;2579:241;2635:6;2688:2;2676:9;2667:7;2663:23;2659:32;2656:52;;;2704:1;2701;2694:12;2656:52;2743:9;2730:23;2762:28;2784:5;2762:28;:::i;2825:247::-;2884:6;2937:2;2925:9;2916:7;2912:23;2908:32;2905:52;;;2953:1;2950;2943:12;2905:52;2992:9;2979:23;3011:31;3036:5;3011:31;:::i;3077:180::-;3136:6;3189:2;3177:9;3168:7;3164:23;3160:32;3157:52;;;3205:1;3202;3195:12;3157:52;-1:-1:-1;3228:23:1;;3077:180;-1:-1:-1;3077:180:1:o;3470:127::-;3531:10;3526:3;3522:20;3519:1;3512:31;3562:4;3559:1;3552:15;3586:4;3583:1;3576:15;3602:1121;3686:6;3717:2;3760;3748:9;3739:7;3735:23;3731:32;3728:52;;;3776:1;3773;3766:12;3728:52;3816:9;3803:23;3845:18;3886:2;3878:6;3875:14;3872:34;;;3902:1;3899;3892:12;3872:34;3940:6;3929:9;3925:22;3915:32;;3985:7;3978:4;3974:2;3970:13;3966:27;3956:55;;4007:1;4004;3997:12;3956:55;4043:2;4030:16;4065:2;4061;4058:10;4055:36;;;4071:18;;:::i;:::-;4117:2;4114:1;4110:10;4149:2;4143:9;4212:2;4208:7;4203:2;4199;4195:11;4191:25;4183:6;4179:38;4267:6;4255:10;4252:22;4247:2;4235:10;4232:18;4229:46;4226:72;;;4278:18;;:::i;:::-;4314:2;4307:22;4364:18;;;4398:15;;;;-1:-1:-1;4440:11:1;;;4436:20;;;4468:19;;;4465:39;;;4500:1;4497;4490:12;4465:39;4524:11;;;;4544:148;4560:6;4555:3;4552:15;4544:148;;;4626:23;4645:3;4626:23;:::i;:::-;4614:36;;4577:12;;;;4670;;;;4544:148;;;4711:6;3602:1121;-1:-1:-1;;;;;;;;3602:1121:1:o;4728:388::-;4796:6;4804;4857:2;4845:9;4836:7;4832:23;4828:32;4825:52;;;4873:1;4870;4863:12;4825:52;4912:9;4899:23;4931:31;4956:5;4931:31;:::i;:::-;4981:5;-1:-1:-1;5038:2:1;5023:18;;5010:32;5051:33;5010:32;5051:33;:::i;:::-;5103:7;5093:17;;;4728:388;;;;;:::o;5121:356::-;5323:2;5305:21;;;5342:18;;;5335:30;5401:34;5396:2;5381:18;;5374:62;5468:2;5453:18;;5121:356::o;6446:306::-;6534:6;6542;6550;6603:2;6591:9;6582:7;6578:23;6574:32;6571:52;;;6619:1;6616;6609:12;6571:52;6648:9;6642:16;6632:26;;6698:2;6687:9;6683:18;6677:25;6667:35;;6742:2;6731:9;6727:18;6721:25;6711:35;;6446:306;;;;;:::o;7036:245::-;7103:6;7156:2;7144:9;7135:7;7131:23;7127:32;7124:52;;;7172:1;7169;7162:12;7124:52;7204:9;7198:16;7223:28;7245:5;7223:28;:::i;7286:127::-;7347:10;7342:3;7338:20;7335:1;7328:31;7378:4;7375:1;7368:15;7402:4;7399:1;7392:15;7418:127;7479:10;7474:3;7470:20;7467:1;7460:31;7510:4;7507:1;7500:15;7534:4;7531:1;7524:15;7550:135;7589:3;-1:-1:-1;;7610:17:1;;7607:43;;;7630:18;;:::i;:::-;-1:-1:-1;7677:1:1;7666:13;;7550:135::o;7690:184::-;7760:6;7813:2;7801:9;7792:7;7788:23;7784:32;7781:52;;;7829:1;7826;7819:12;7781:52;-1:-1:-1;7852:16:1;;7690:184;-1:-1:-1;7690:184:1:o;7879:168::-;7919:7;7985:1;7981;7977:6;7973:14;7970:1;7967:21;7962:1;7955:9;7948:17;7944:45;7941:71;;;7992:18;;:::i;:::-;-1:-1:-1;8032:9:1;;7879:168::o;8052:217::-;8092:1;8118;8108:132;;8162:10;8157:3;8153:20;8150:1;8143:31;8197:4;8194:1;8187:15;8225:4;8222:1;8215:15;8108:132;-1:-1:-1;8254:9:1;;8052:217::o;11058:128::-;11098:3;11129:1;11125:6;11122:1;11119:13;11116:39;;;11135:18;;:::i;:::-;-1:-1:-1;11171:9:1;;11058:128::o;11546:125::-;11586:4;11614:1;11611;11608:8;11605:34;;;11619:18;;:::i;:::-;-1:-1:-1;11656:9:1;;11546:125::o;12087:251::-;12157:6;12210:2;12198:9;12189:7;12185:23;12181:32;12178:52;;;12226:1;12223;12216:12;12178:52;12258:9;12252:16;12277:31;12302:5;12277:31;:::i;12343:980::-;12605:4;12653:3;12642:9;12638:19;12684:6;12673:9;12666:25;12710:2;12748:6;12743:2;12732:9;12728:18;12721:34;12791:3;12786:2;12775:9;12771:18;12764:31;12815:6;12850;12844:13;12881:6;12873;12866:22;12919:3;12908:9;12904:19;12897:26;;12958:2;12950:6;12946:15;12932:29;;12979:1;12989:195;13003:6;13000:1;12997:13;12989:195;;;13068:13;;-1:-1:-1;;;;;13064:39:1;13052:52;;13159:15;;;;13124:12;;;;13100:1;13018:9;12989:195;;;-1:-1:-1;;;;;;;13240:32:1;;;;13235:2;13220:18;;13213:60;-1:-1:-1;;;13304:3:1;13289:19;13282:35;13201:3;12343:980;-1:-1:-1;;;12343:980:1:o

Swarm Source

ipfs://541d2f8af0fd5bd042083175c42f7a052e69dfab7113cb06266403805da7db2b

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.