ETH Price: $2,682.42 (-0.49%)

Contract

0x7122aF6f950d90ea8dcEB087f15737921EbA16ba
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve210420982024-10-25 10:41:11114 days ago1729852871IN
0x7122aF6f...21EbA16ba
0 ETH0.000362057.7117727
Approve210420692024-10-25 10:35:23114 days ago1729852523IN
0x7122aF6f...21EbA16ba
0 ETH0.0007867216.78320995
Approve210420652024-10-25 10:34:35114 days ago1729852475IN
0x7122aF6f...21EbA16ba
0 ETH0.0007780116.59728948
Approve210420632024-10-25 10:34:11114 days ago1729852451IN
0x7122aF6f...21EbA16ba
0 ETH0.0007823716.69033425
Approve210384532024-10-24 22:29:23115 days ago1729808963IN
0x7122aF6f...21EbA16ba
0 ETH0.000406538.62616004
Approve210384112024-10-24 22:20:59115 days ago1729808459IN
0x7122aF6f...21EbA16ba
0 ETH0.0006560413.99182825
Renounce Ownersh...210383742024-10-24 22:13:35115 days ago1729808015IN
0x7122aF6f...21EbA16ba
0 ETH0.00022699.67482087
Open Trading210383712024-10-24 22:12:59115 days ago1729807979IN
0x7122aF6f...21EbA16ba
0 ETH0.0330167511.8406507
Transfer210383672024-10-24 22:12:11115 days ago1729807931IN
0x7122aF6f...21EbA16ba
0.69 ETH0.000209899.96871063
Transfer210383662024-10-24 22:11:59115 days ago1729807919IN
0x7122aF6f...21EbA16ba
0 ETH0.000509379.64572301

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
210383712024-10-24 22:12:59115 days ago1729807979
0x7122aF6f...21EbA16ba
0.69 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BOOKOFGOD

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-24
*/

// SPDX-License-Identifier:MIT

/*
https://x.com/VitalikButerin
*/

pragma solidity 0.8.23;

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 Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }
}

library SafeMath {
    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 add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        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;
    }
}

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 addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function WETH() external pure returns (address);
}

contract BOOKOFGOD is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _exclFromLimit;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 420690000000000 * 10**_decimals;
    string private constant _name = unicode"BOOKOFGOD";
    string private constant _symbol = unicode"$BOOKOFGOD";

    // Entferne die Limite und Steuer Variablen
    uint256 public _maxTxAmount = _tTotal; // Max. Transaktionsbetrag
    uint256 public _maxWalletSize = _tTotal; // Max. Walletgröße
    uint256 public _taxSwapThreshold = 100000000 * 10**_decimals; // Steuer-Swap-Schwelle
    uint256 public _maxTaxSwap = 1000000000 * 10**_decimals; // Max. Steuer-Swap

    IUniswapV2Router02 private constant _router = IUniswapV2Router02(
        0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
    );
    address payable private _taxWallet;

    address public uniswapPair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private limitsInEffect = false; // Limits von Anfang an deaktiviert

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event ClearToken(address tokenAddr, uint256 tokenAmount);

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

    constructor () {
        _taxWallet = payable(0x7Bc2fEC4c170fF77e45Ab7a00c12fD15ED87396c);

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

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount);
        emit Transfer(from, to, amount);
    }

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

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

    receive() external payable {}

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

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

    function recoverStuckEth(address _receiver, address _percent) external {
        require(_msgSender() == _taxWallet);
        // Funktionsimplementierung
    }
}

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":"address","name":"tokenAddr","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"ClearToken","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":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"address","name":"_percent","type":"address"}],"name":"recoverStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a620000149190620005a1565b66017e9d8602b400620000289190620005f1565b6004556012600a6200003b9190620005a1565b66017e9d8602b4006200004f9190620005f1565b6005556012600a620000629190620005a1565b6305f5e100620000739190620005f1565b6006556012600a620000869190620005a1565b633b9aca00620000979190620005f1565b6007555f600960156101000a81548160ff0219169083151502179055505f600960166101000a81548160ff0219169083151502179055505f600960176101000a81548160ff021916908315150217905550348015620000f4575f80fd5b5062000115620001096200034760201b60201c565b6200034e60201b60201c565b737bc2fec4c170ff77e45ab7a00c12fd15ed87396c60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620001799190620005a1565b66017e9d8602b4006200018d9190620005f1565b60015f620001a06200034760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620002b86200034760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003169190620005a1565b66017e9d8602b4006200032a9190620005f1565b6040516200033991906200064c565b60405180910390a362000667565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000499578086048111156200047157620004706200040f565b5b6001851615620004815780820291505b808102905062000491856200043c565b945062000451565b94509492505050565b5f82620004b3576001905062000585565b81620004c2575f905062000585565b8160018114620004db5760028114620004e6576200051c565b600191505062000585565b60ff841115620004fb57620004fa6200040f565b5b8360020a9150848211156200051557620005146200040f565b5b5062000585565b5060208310610133831016604e8410600b8410161715620005565782820a90508381111562000550576200054f6200040f565b5b62000585565b62000565848484600162000448565b925090508184048111156200057f576200057e6200040f565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005ad826200058c565b9150620005ba8362000595565b9250620005e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004a2565b905092915050565b5f620005fd826200058c565b91506200060a836200058c565b92508282026200061a816200058c565b915082820484148315176200063457620006336200040f565b5b5092915050565b62000646816200058c565b82525050565b5f602082019050620006615f8301846200063b565b92915050565b61230280620006755f395ff3fe608060405260043610610117575f3560e01c8063715018a61161009f578063a9059cbb11610063578063a9059cbb1461037a578063bf474bed146103b6578063c816841b146103e0578063c9567bf91461040a578063dd62ed3e146104205761011e565b8063715018a6146102bc5780637d1db4a5146102d25780638da5cb5b146102fc5780638f9a55c01461032657806395d89b41146103505761011e565b806318160ddd116100e657806318160ddd146101da57806323b872dd14610204578063313ce5671461024057806351bc3c851461026a57806370a08231146102805761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806313492905146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b60405161014391906116aa565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d919061175b565b610499565b60405161017f91906117b3565b60405180910390f35b348015610193575f80fd5b5061019c6104b6565b6040516101a991906117db565b60405180910390f35b3480156101bd575f80fd5b506101d860048036038101906101d391906117f4565b6104bc565b005b3480156101e5575f80fd5b506101ee61051f565b6040516101fb91906117db565b60405180910390f35b34801561020f575f80fd5b5061022a60048036038101906102259190611832565b610545565b60405161023791906117b3565b60405180910390f35b34801561024b575f80fd5b50610254610619565b604051610261919061189d565b60405180910390f35b348015610275575f80fd5b5061027e610621565b005b34801561028b575f80fd5b506102a660048036038101906102a191906118b6565b6106b8565b6040516102b391906117db565b60405180910390f35b3480156102c7575f80fd5b506102d06106fe565b005b3480156102dd575f80fd5b506102e6610785565b6040516102f391906117db565b60405180910390f35b348015610307575f80fd5b5061031061078b565b60405161031d91906118f0565b60405180910390f35b348015610331575f80fd5b5061033a6107b2565b60405161034791906117db565b60405180910390f35b34801561035b575f80fd5b506103646107b8565b60405161037191906116aa565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b919061175b565b6107f5565b6040516103ad91906117b3565b60405180910390f35b3480156103c1575f80fd5b506103ca610812565b6040516103d791906117db565b60405180910390f35b3480156103eb575f80fd5b506103f4610818565b60405161040191906118f0565b60405180910390f35b348015610415575f80fd5b5061041e61083d565b005b34801561042b575f80fd5b50610446600480360381019061044191906117f4565b610cb5565b60405161045391906117db565b60405180910390f35b60606040518060400160405280600981526020017f424f4f4b4f46474f440000000000000000000000000000000000000000000000815250905090565b5f6104ac6104a5610d37565b8484610d3e565b6001905092915050565b60075481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104fc610d37565b73ffffffffffffffffffffffffffffffffffffffff161461051b575f80fd5b5050565b5f6012600a61052e9190611a65565b66017e9d8602b4006105409190611aaf565b905090565b5f610551848484610f01565b61060e8461055d610d37565b610609856040518060600160405280602881526020016122a56028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105c0610d37565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111ab9092919063ffffffff16565b610d3e565b600190509392505050565b5f6012905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610661610d37565b73ffffffffffffffffffffffffffffffffffffffff1614610680575f80fd5b5f61068a306106b8565b90505f81111561069e5761069d8161120d565b5b5f4790505f8111156106b4576106b381611451565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610706610d37565b73ffffffffffffffffffffffffffffffffffffffff1661072461078b565b73ffffffffffffffffffffffffffffffffffffffff161461077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190611b3a565b60405180910390fd5b6107835f6114b9565b565b60045481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b60606040518060400160405280600a81526020017f24424f4f4b4f46474f4400000000000000000000000000000000000000000000815250905090565b5f610808610801610d37565b8484610f01565b6001905092915050565b60065481565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610845610d37565b73ffffffffffffffffffffffffffffffffffffffff1661086361078b565b73ffffffffffffffffffffffffffffffffffffffff16146108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b090611b3a565b60405180910390fd5b600960149054906101000a900460ff1615610909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090090611ba2565b60405180910390fd5b61094730737a250d5630b4cf539739df2c5dacb4c659f2488d6012600a6109309190611a65565b66017e9d8602b4006109429190611aaf565b610d3e565b6001600960166101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e39190611bd4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a809190611bd4565b6040518363ffffffff1660e01b8152600401610a9d929190611bff565b6020604051808303815f875af1158015610ab9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610add9190611bd4565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b57306106b8565b5f80610b6161078b565b426040518863ffffffff1660e01b8152600401610b8396959493929190611c68565b60606040518083038185885af1158015610b9f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bc49190611cdb565b50505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c57929190611d2b565b6020604051808303815f875af1158015610c73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c979190611d7c565b506001600960146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390611e17565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1190611ea5565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ef491906117db565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6690611f33565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490611fc1565b60405180910390fd5b5f811161101f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110169061204f565b60405180910390fd5b61106f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461157a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111008160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115c390919063ffffffff16565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161119e91906117db565b60405180910390a3505050565b5f8383111582906111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e991906116aa565b60405180910390fd5b505f8385611200919061206d565b9050809150509392505050565b6001600960156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611244576112436120a0565b5b6040519080825280602002602001820160405280156112725781602001602082028036833780820191505090505b50905030815f81518110611289576112886120cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611320573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113449190611bd4565b81600181518110611358576113576120cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506113b130737a250d5630b4cf539739df2c5dacb4c659f2488d84610d3e565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016114069594939291906121b1565b5f604051808303815f87803b15801561141d575f80fd5b505af115801561142f573d5f803e3d5ffd5b50505050505f600960156101000a81548160ff02191690831515021790555050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156114b5573d5f803e3d5ffd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6115bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ab565b905092915050565b5f8082846115d19190612209565b905083811015611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90612286565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561165757808201518184015260208101905061163c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61167c82611620565b611686818561162a565b935061169681856020860161163a565b61169f81611662565b840191505092915050565b5f6020820190508181035f8301526116c28184611672565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116f7826116ce565b9050919050565b611707816116ed565b8114611711575f80fd5b50565b5f81359050611722816116fe565b92915050565b5f819050919050565b61173a81611728565b8114611744575f80fd5b50565b5f8135905061175581611731565b92915050565b5f8060408385031215611771576117706116ca565b5b5f61177e85828601611714565b925050602061178f85828601611747565b9150509250929050565b5f8115159050919050565b6117ad81611799565b82525050565b5f6020820190506117c65f8301846117a4565b92915050565b6117d581611728565b82525050565b5f6020820190506117ee5f8301846117cc565b92915050565b5f806040838503121561180a576118096116ca565b5b5f61181785828601611714565b925050602061182885828601611714565b9150509250929050565b5f805f60608486031215611849576118486116ca565b5b5f61185686828701611714565b935050602061186786828701611714565b925050604061187886828701611747565b9150509250925092565b5f60ff82169050919050565b61189781611882565b82525050565b5f6020820190506118b05f83018461188e565b92915050565b5f602082840312156118cb576118ca6116ca565b5b5f6118d884828501611714565b91505092915050565b6118ea816116ed565b82525050565b5f6020820190506119035f8301846118e1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561198b5780860481111561196757611966611909565b5b60018516156119765780820291505b808102905061198485611936565b945061194b565b94509492505050565b5f826119a35760019050611a5e565b816119b0575f9050611a5e565b81600181146119c657600281146119d0576119ff565b6001915050611a5e565b60ff8411156119e2576119e1611909565b5b8360020a9150848211156119f9576119f8611909565b5b50611a5e565b5060208310610133831016604e8410600b8410161715611a345782820a905083811115611a2f57611a2e611909565b5b611a5e565b611a418484846001611942565b92509050818404811115611a5857611a57611909565b5b81810290505b9392505050565b5f611a6f82611728565b9150611a7a83611882565b9250611aa77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611994565b905092915050565b5f611ab982611728565b9150611ac483611728565b9250828202611ad281611728565b91508282048414831517611ae957611ae8611909565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611b2460208361162a565b9150611b2f82611af0565b602082019050919050565b5f6020820190508181035f830152611b5181611b18565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f611b8c60178361162a565b9150611b9782611b58565b602082019050919050565b5f6020820190508181035f830152611bb981611b80565b9050919050565b5f81519050611bce816116fe565b92915050565b5f60208284031215611be957611be86116ca565b5b5f611bf684828501611bc0565b91505092915050565b5f604082019050611c125f8301856118e1565b611c1f60208301846118e1565b9392505050565b5f819050919050565b5f819050919050565b5f611c52611c4d611c4884611c26565b611c2f565b611728565b9050919050565b611c6281611c38565b82525050565b5f60c082019050611c7b5f8301896118e1565b611c8860208301886117cc565b611c956040830187611c59565b611ca26060830186611c59565b611caf60808301856118e1565b611cbc60a08301846117cc565b979650505050505050565b5f81519050611cd581611731565b92915050565b5f805f60608486031215611cf257611cf16116ca565b5b5f611cff86828701611cc7565b9350506020611d1086828701611cc7565b9250506040611d2186828701611cc7565b9150509250925092565b5f604082019050611d3e5f8301856118e1565b611d4b60208301846117cc565b9392505050565b611d5b81611799565b8114611d65575f80fd5b50565b5f81519050611d7681611d52565b92915050565b5f60208284031215611d9157611d906116ca565b5b5f611d9e84828501611d68565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611e0160248361162a565b9150611e0c82611da7565b604082019050919050565b5f6020820190508181035f830152611e2e81611df5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611e8f60228361162a565b9150611e9a82611e35565b604082019050919050565b5f6020820190508181035f830152611ebc81611e83565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611f1d60258361162a565b9150611f2882611ec3565b604082019050919050565b5f6020820190508181035f830152611f4a81611f11565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611fab60238361162a565b9150611fb682611f51565b604082019050919050565b5f6020820190508181035f830152611fd881611f9f565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61203960298361162a565b915061204482611fdf565b604082019050919050565b5f6020820190508181035f8301526120668161202d565b9050919050565b5f61207782611728565b915061208283611728565b925082820390508181111561209a57612099611909565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61212c816116ed565b82525050565b5f61213d8383612123565b60208301905092915050565b5f602082019050919050565b5f61215f826120fa565b6121698185612104565b935061217483612114565b805f5b838110156121a457815161218b8882612132565b975061219683612149565b925050600181019050612177565b5085935050505092915050565b5f60a0820190506121c45f8301886117cc565b6121d16020830187611c59565b81810360408301526121e38186612155565b90506121f260608301856118e1565b6121ff60808301846117cc565b9695505050505050565b5f61221382611728565b915061221e83611728565b925082820190508082111561223657612235611909565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612270601b8361162a565b915061227b8261223c565b602082019050919050565b5f6020820190508181035f83015261229d81612264565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202ea960653c277fee8e03622a46308e4c4357693d8310a03187c59eacdda6237e64736f6c63430008170033

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063715018a61161009f578063a9059cbb11610063578063a9059cbb1461037a578063bf474bed146103b6578063c816841b146103e0578063c9567bf91461040a578063dd62ed3e146104205761011e565b8063715018a6146102bc5780637d1db4a5146102d25780638da5cb5b146102fc5780638f9a55c01461032657806395d89b41146103505761011e565b806318160ddd116100e657806318160ddd146101da57806323b872dd14610204578063313ce5671461024057806351bc3c851461026a57806370a08231146102805761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806313492905146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b60405161014391906116aa565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d919061175b565b610499565b60405161017f91906117b3565b60405180910390f35b348015610193575f80fd5b5061019c6104b6565b6040516101a991906117db565b60405180910390f35b3480156101bd575f80fd5b506101d860048036038101906101d391906117f4565b6104bc565b005b3480156101e5575f80fd5b506101ee61051f565b6040516101fb91906117db565b60405180910390f35b34801561020f575f80fd5b5061022a60048036038101906102259190611832565b610545565b60405161023791906117b3565b60405180910390f35b34801561024b575f80fd5b50610254610619565b604051610261919061189d565b60405180910390f35b348015610275575f80fd5b5061027e610621565b005b34801561028b575f80fd5b506102a660048036038101906102a191906118b6565b6106b8565b6040516102b391906117db565b60405180910390f35b3480156102c7575f80fd5b506102d06106fe565b005b3480156102dd575f80fd5b506102e6610785565b6040516102f391906117db565b60405180910390f35b348015610307575f80fd5b5061031061078b565b60405161031d91906118f0565b60405180910390f35b348015610331575f80fd5b5061033a6107b2565b60405161034791906117db565b60405180910390f35b34801561035b575f80fd5b506103646107b8565b60405161037191906116aa565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b919061175b565b6107f5565b6040516103ad91906117b3565b60405180910390f35b3480156103c1575f80fd5b506103ca610812565b6040516103d791906117db565b60405180910390f35b3480156103eb575f80fd5b506103f4610818565b60405161040191906118f0565b60405180910390f35b348015610415575f80fd5b5061041e61083d565b005b34801561042b575f80fd5b50610446600480360381019061044191906117f4565b610cb5565b60405161045391906117db565b60405180910390f35b60606040518060400160405280600981526020017f424f4f4b4f46474f440000000000000000000000000000000000000000000000815250905090565b5f6104ac6104a5610d37565b8484610d3e565b6001905092915050565b60075481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104fc610d37565b73ffffffffffffffffffffffffffffffffffffffff161461051b575f80fd5b5050565b5f6012600a61052e9190611a65565b66017e9d8602b4006105409190611aaf565b905090565b5f610551848484610f01565b61060e8461055d610d37565b610609856040518060600160405280602881526020016122a56028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105c0610d37565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111ab9092919063ffffffff16565b610d3e565b600190509392505050565b5f6012905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610661610d37565b73ffffffffffffffffffffffffffffffffffffffff1614610680575f80fd5b5f61068a306106b8565b90505f81111561069e5761069d8161120d565b5b5f4790505f8111156106b4576106b381611451565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610706610d37565b73ffffffffffffffffffffffffffffffffffffffff1661072461078b565b73ffffffffffffffffffffffffffffffffffffffff161461077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190611b3a565b60405180910390fd5b6107835f6114b9565b565b60045481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b60606040518060400160405280600a81526020017f24424f4f4b4f46474f4400000000000000000000000000000000000000000000815250905090565b5f610808610801610d37565b8484610f01565b6001905092915050565b60065481565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610845610d37565b73ffffffffffffffffffffffffffffffffffffffff1661086361078b565b73ffffffffffffffffffffffffffffffffffffffff16146108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b090611b3a565b60405180910390fd5b600960149054906101000a900460ff1615610909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090090611ba2565b60405180910390fd5b61094730737a250d5630b4cf539739df2c5dacb4c659f2488d6012600a6109309190611a65565b66017e9d8602b4006109429190611aaf565b610d3e565b6001600960166101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e39190611bd4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a809190611bd4565b6040518363ffffffff1660e01b8152600401610a9d929190611bff565b6020604051808303815f875af1158015610ab9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610add9190611bd4565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b57306106b8565b5f80610b6161078b565b426040518863ffffffff1660e01b8152600401610b8396959493929190611c68565b60606040518083038185885af1158015610b9f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bc49190611cdb565b50505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c57929190611d2b565b6020604051808303815f875af1158015610c73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c979190611d7c565b506001600960146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390611e17565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1190611ea5565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ef491906117db565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6690611f33565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490611fc1565b60405180910390fd5b5f811161101f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110169061204f565b60405180910390fd5b61106f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461157a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111008160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115c390919063ffffffff16565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161119e91906117db565b60405180910390a3505050565b5f8383111582906111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e991906116aa565b60405180910390fd5b505f8385611200919061206d565b9050809150509392505050565b6001600960156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611244576112436120a0565b5b6040519080825280602002602001820160405280156112725781602001602082028036833780820191505090505b50905030815f81518110611289576112886120cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611320573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113449190611bd4565b81600181518110611358576113576120cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506113b130737a250d5630b4cf539739df2c5dacb4c659f2488d84610d3e565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016114069594939291906121b1565b5f604051808303815f87803b15801561141d575f80fd5b505af115801561142f573d5f803e3d5ffd5b50505050505f600960156101000a81548160ff02191690831515021790555050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156114b5573d5f803e3d5ffd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6115bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ab565b905092915050565b5f8082846115d19190612209565b905083811015611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90612286565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561165757808201518184015260208101905061163c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61167c82611620565b611686818561162a565b935061169681856020860161163a565b61169f81611662565b840191505092915050565b5f6020820190508181035f8301526116c28184611672565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116f7826116ce565b9050919050565b611707816116ed565b8114611711575f80fd5b50565b5f81359050611722816116fe565b92915050565b5f819050919050565b61173a81611728565b8114611744575f80fd5b50565b5f8135905061175581611731565b92915050565b5f8060408385031215611771576117706116ca565b5b5f61177e85828601611714565b925050602061178f85828601611747565b9150509250929050565b5f8115159050919050565b6117ad81611799565b82525050565b5f6020820190506117c65f8301846117a4565b92915050565b6117d581611728565b82525050565b5f6020820190506117ee5f8301846117cc565b92915050565b5f806040838503121561180a576118096116ca565b5b5f61181785828601611714565b925050602061182885828601611714565b9150509250929050565b5f805f60608486031215611849576118486116ca565b5b5f61185686828701611714565b935050602061186786828701611714565b925050604061187886828701611747565b9150509250925092565b5f60ff82169050919050565b61189781611882565b82525050565b5f6020820190506118b05f83018461188e565b92915050565b5f602082840312156118cb576118ca6116ca565b5b5f6118d884828501611714565b91505092915050565b6118ea816116ed565b82525050565b5f6020820190506119035f8301846118e1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561198b5780860481111561196757611966611909565b5b60018516156119765780820291505b808102905061198485611936565b945061194b565b94509492505050565b5f826119a35760019050611a5e565b816119b0575f9050611a5e565b81600181146119c657600281146119d0576119ff565b6001915050611a5e565b60ff8411156119e2576119e1611909565b5b8360020a9150848211156119f9576119f8611909565b5b50611a5e565b5060208310610133831016604e8410600b8410161715611a345782820a905083811115611a2f57611a2e611909565b5b611a5e565b611a418484846001611942565b92509050818404811115611a5857611a57611909565b5b81810290505b9392505050565b5f611a6f82611728565b9150611a7a83611882565b9250611aa77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611994565b905092915050565b5f611ab982611728565b9150611ac483611728565b9250828202611ad281611728565b91508282048414831517611ae957611ae8611909565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611b2460208361162a565b9150611b2f82611af0565b602082019050919050565b5f6020820190508181035f830152611b5181611b18565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f611b8c60178361162a565b9150611b9782611b58565b602082019050919050565b5f6020820190508181035f830152611bb981611b80565b9050919050565b5f81519050611bce816116fe565b92915050565b5f60208284031215611be957611be86116ca565b5b5f611bf684828501611bc0565b91505092915050565b5f604082019050611c125f8301856118e1565b611c1f60208301846118e1565b9392505050565b5f819050919050565b5f819050919050565b5f611c52611c4d611c4884611c26565b611c2f565b611728565b9050919050565b611c6281611c38565b82525050565b5f60c082019050611c7b5f8301896118e1565b611c8860208301886117cc565b611c956040830187611c59565b611ca26060830186611c59565b611caf60808301856118e1565b611cbc60a08301846117cc565b979650505050505050565b5f81519050611cd581611731565b92915050565b5f805f60608486031215611cf257611cf16116ca565b5b5f611cff86828701611cc7565b9350506020611d1086828701611cc7565b9250506040611d2186828701611cc7565b9150509250925092565b5f604082019050611d3e5f8301856118e1565b611d4b60208301846117cc565b9392505050565b611d5b81611799565b8114611d65575f80fd5b50565b5f81519050611d7681611d52565b92915050565b5f60208284031215611d9157611d906116ca565b5b5f611d9e84828501611d68565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611e0160248361162a565b9150611e0c82611da7565b604082019050919050565b5f6020820190508181035f830152611e2e81611df5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611e8f60228361162a565b9150611e9a82611e35565b604082019050919050565b5f6020820190508181035f830152611ebc81611e83565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611f1d60258361162a565b9150611f2882611ec3565b604082019050919050565b5f6020820190508181035f830152611f4a81611f11565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611fab60238361162a565b9150611fb682611f51565b604082019050919050565b5f6020820190508181035f830152611fd881611f9f565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61203960298361162a565b915061204482611fdf565b604082019050919050565b5f6020820190508181035f8301526120668161202d565b9050919050565b5f61207782611728565b915061208283611728565b925082820390508181111561209a57612099611909565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61212c816116ed565b82525050565b5f61213d8383612123565b60208301905092915050565b5f602082019050919050565b5f61215f826120fa565b6121698185612104565b935061217483612114565b805f5b838110156121a457815161218b8882612132565b975061219683612149565b925050600181019050612177565b5085935050505092915050565b5f60a0820190506121c45f8301886117cc565b6121d16020830187611c59565b81810360408301526121e38186612155565b90506121f260608301856118e1565b6121ff60808301846117cc565b9695505050505050565b5f61221382611728565b915061221e83611728565b925082820190508082111561223657612235611909565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612270601b8361162a565b915061227b8261223c565b602082019050919050565b5f6020820190508181035f83015261229d81612264565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202ea960653c277fee8e03622a46308e4c4357693d8310a03187c59eacdda6237e64736f6c63430008170033

Deployed Bytecode Sourcemap

3558:5639:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5340:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6173:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4348:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9032:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5617:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6342:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5526:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8658:366;;;;;;;;;;;;;:::i;:::-;;5720:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1552:94;;;;;;;;;;;;;:::i;:::-;;4118:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1329:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4189:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5431:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5847:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4257:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4606:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8110:540;;;;;;;;;;;;;:::i;:::-;;6022:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5340:83;5377:13;5410:5;;;;;;;;;;;;;;;;;5403:12;;5340:83;:::o;6173:161::-;6248:4;6265:39;6274:12;:10;:12::i;:::-;6288:7;6297:6;6265:8;:39::i;:::-;6322:4;6315:11;;6173:161;;;;:::o;4348:55::-;;;;:::o;9032:162::-;9138:10;;;;;;;;;;;9122:26;;:12;:10;:12::i;:::-;:26;;;9114:35;;;;;;9032:162;;:::o;5617:95::-;5670:7;3868:2;3930;:13;;;;:::i;:::-;3912:15;:31;;;;:::i;:::-;5690:14;;5617:95;:::o;6342:347::-;6474:4;6491:36;6501:6;6509:9;6520:6;6491:9;:36::i;:::-;6538:121;6547:6;6555:12;:10;:12::i;:::-;6569:89;6607:6;6569:89;;;;;;;;;;;;;;;;;:11;:19;6581:6;6569:19;;;;;;;;;;;;;;;:33;6589:12;:10;:12::i;:::-;6569:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6538:8;:121::i;:::-;6677:4;6670:11;;6342:347;;;;;:::o;5526:83::-;5567:5;3868:2;5585:16;;5526:83;:::o;8658:366::-;8724:10;;;;;;;;;;;8708:26;;:12;:10;:12::i;:::-;:26;;;8700:35;;;;;;8746:20;8769:24;8787:4;8769:9;:24::i;:::-;8746:47;;8823:1;8808:12;:16;8804:79;;;8841:30;8858:12;8841:16;:30::i;:::-;8804:79;8893:18;8914:21;8893:42;;8963:1;8950:10;:14;8946:71;;;8981:24;8994:10;8981:12;:24::i;:::-;8946:71;8689:335;;8658:366::o;5720:119::-;5786:7;5813:9;:18;5823:7;5813:18;;;;;;;;;;;;;;;;5806:25;;5720:119;;;:::o;1552:94::-;1475:12;:10;:12::i;:::-;1464:23;;:7;:5;:7::i;:::-;:23;;;1456:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1617:21:::1;1635:1;1617:9;:21::i;:::-;1552:94::o:0;4118:37::-;;;;:::o;1329:87::-;1375:7;1402:6;;;;;;;;;;;1395:13;;1329:87;:::o;4189:39::-;;;;:::o;5431:87::-;5470:13;5503:7;;;;;;;;;;;;;;;;;5496:14;;5431:87;:::o;5847:167::-;5925:4;5942:42;5952:12;:10;:12::i;:::-;5966:9;5977:6;5942:9;:42::i;:::-;6002:4;5995:11;;5847:167;;;;:::o;4257:60::-;;;;:::o;4606:26::-;;;;;;;;;;;;;:::o;8110:540::-;1475:12;:10;:12::i;:::-;1464:23;;:7;:5;:7::i;:::-;:23;;;1456:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8172:11:::1;;;;;;;;;;;8171:12;8163:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8222:50;8239:4;4507:42;3868:2;3930;:13;;;;:::i;:::-;3912:15;:31;;;;:::i;:::-;8222:8;:50::i;:::-;8297:4;8283:11;;:18;;;;;;;;;;;;;;;;;;4507:42;8344:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8326:47;;;8382:4;4507:42;8389:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8326:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8312:11;;:92;;;;;;;;;;;;;;;;;;4507:42;8415:23;;;8446:21;8477:4;8484:24;8502:4;8484:9;:24::i;:::-;8510:1;8513::::0;8516:7:::1;:5;:7::i;:::-;8525:15;8415:126;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8559:11;;;;;;;;;;;8552:27;;;4507:42;8598:14;8552:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8638:4;8624:11;;:18;;;;;;;;;;;;;;;;;;8110:540::o:0;6022:143::-;6103:7;6130:11;:18;6142:5;6130:18;;;;;;;;;;;;;;;:27;6149:7;6130:27;;;;;;;;;;;;;;;;6123:34;;6022:143;;;;:::o;134:98::-;187:7;214:10;207:17;;134:98;:::o;6697:335::-;6807:1;6790:19;;:5;:19;;;6782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6888:1;6869:21;;:7;:21;;;6861:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6970:6;6940:11;:18;6952:5;6940:18;;;;;;;;;;;;;;;:27;6959:7;6940:27;;;;;;;;;;;;;;;:36;;;;7008:7;6992:32;;7001:5;6992:32;;;7017:6;6992:32;;;;;;:::i;:::-;;;;;;;;6697:335;;;:::o;7040:458::-;7144:1;7128:18;;:4;:18;;;7120:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7221:1;7207:16;;:2;:16;;;7199:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7291:1;7282:6;:10;7274:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7369:27;7389:6;7369:9;:15;7379:4;7369:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;7351:9;:15;7361:4;7351:15;;;;;;;;;;;;;;;:45;;;;7423:25;7441:6;7423:9;:13;7433:2;7423:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;7407:9;:13;7417:2;7407:13;;;;;;;;;;;;;;;:41;;;;7479:2;7464:26;;7473:4;7464:26;;;7483:6;7464:26;;;;;;:::i;:::-;;;;;;;;7040:458;;;:::o;1821:190::-;1907:7;1940:1;1935;:6;;1943:12;1927:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1967:9;1983:1;1979;:5;;;;:::i;:::-;1967:17;;2002:1;1995:8;;;1821:190;;;;;:::o;7506:459::-;4979:4;4970:6;;:13;;;;;;;;;;;;;;;;;;7584:21:::1;7622:1;7608:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7584:40;;7653:4;7635;7640:1;7635:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;4507:42;7679:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7669:4;7674:1;7669:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;::::0;::::1;7704:54;7721:4;4507:42;7746:11;7704:8;:54::i;:::-;4507:42;7769:58;;;7842:11;7868:1;7884:4;7911;7931:15;7769:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7573:392;5015:5:::0;5006:6;;:14;;;;;;;;;;;;;;;;;;7506:459;:::o;7973:92::-;8030:10;;;;;;;;;;;:19;;:27;8050:6;8030:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7973:92;:::o;1148:173::-;1204:16;1223:6;;;;;;;;;;;1204:25;;1249:8;1240:6;;:17;;;;;;;;;;;;;;;;;;1304:8;1273:40;;1294:8;1273:40;;;;;;;;;;;;1193:128;1148:173;:::o;1677:136::-;1735:7;1762:43;1766:1;1769;1762:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1755:50;;1677:136;;;;:::o;2019:179::-;2077:7;2097:9;2113:1;2109;:5;;;;:::i;:::-;2097:17;;2138:1;2133;:6;;2125:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2189:1;2182:8;;;2019:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:474::-;3866:6;3874;3923:2;3911:9;3902:7;3898:23;3894:32;3891:119;;;3929:79;;:::i;:::-;3891:119;4049:1;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4020:117;4176:2;4202:53;4247:7;4238:6;4227:9;4223:22;4202:53;:::i;:::-;4192:63;;4147:118;3798:474;;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:410::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8686:1;8683;8679:9;8708:30;8726:11;8708:30;:::i;:::-;8697:41;;8887:1;8878:7;8874:15;8871:1;8868:22;8848:1;8841:9;8821:83;8798:139;;8917:18;;:::i;:::-;8798:139;8582:362;8534:410;;;;:::o;8950:182::-;9090:34;9086:1;9078:6;9074:14;9067:58;8950:182;:::o;9138:366::-;9280:3;9301:67;9365:2;9360:3;9301:67;:::i;:::-;9294:74;;9377:93;9466:3;9377:93;:::i;:::-;9495:2;9490:3;9486:12;9479:19;;9138:366;;;:::o;9510:419::-;9676:4;9714:2;9703:9;9699:18;9691:26;;9763:9;9757:4;9753:20;9749:1;9738:9;9734:17;9727:47;9791:131;9917:4;9791:131;:::i;:::-;9783:139;;9510:419;;;:::o;9935:173::-;10075:25;10071:1;10063:6;10059:14;10052:49;9935:173;:::o;10114:366::-;10256:3;10277:67;10341:2;10336:3;10277:67;:::i;:::-;10270:74;;10353:93;10442:3;10353:93;:::i;:::-;10471:2;10466:3;10462:12;10455:19;;10114:366;;;:::o;10486:419::-;10652:4;10690:2;10679:9;10675:18;10667:26;;10739:9;10733:4;10729:20;10725:1;10714:9;10710:17;10703:47;10767:131;10893:4;10767:131;:::i;:::-;10759:139;;10486:419;;;:::o;10911:143::-;10968:5;10999:6;10993:13;10984:22;;11015:33;11042:5;11015:33;:::i;:::-;10911:143;;;;:::o;11060:351::-;11130:6;11179:2;11167:9;11158:7;11154:23;11150:32;11147:119;;;11185:79;;:::i;:::-;11147:119;11305:1;11330:64;11386:7;11377:6;11366:9;11362:22;11330:64;:::i;:::-;11320:74;;11276:128;11060:351;;;;:::o;11417:332::-;11538:4;11576:2;11565:9;11561:18;11553:26;;11589:71;11657:1;11646:9;11642:17;11633:6;11589:71;:::i;:::-;11670:72;11738:2;11727:9;11723:18;11714:6;11670:72;:::i;:::-;11417:332;;;;;:::o;11755:85::-;11800:7;11829:5;11818:16;;11755:85;;;:::o;11846:60::-;11874:3;11895:5;11888:12;;11846:60;;;:::o;11912:158::-;11970:9;12003:61;12021:42;12030:32;12056:5;12030:32;:::i;:::-;12021:42;:::i;:::-;12003:61;:::i;:::-;11990:74;;11912:158;;;:::o;12076:147::-;12171:45;12210:5;12171:45;:::i;:::-;12166:3;12159:58;12076:147;;:::o;12229:807::-;12478:4;12516:3;12505:9;12501:19;12493:27;;12530:71;12598:1;12587:9;12583:17;12574:6;12530:71;:::i;:::-;12611:72;12679:2;12668:9;12664:18;12655:6;12611:72;:::i;:::-;12693:80;12769:2;12758:9;12754:18;12745:6;12693:80;:::i;:::-;12783;12859:2;12848:9;12844:18;12835:6;12783:80;:::i;:::-;12873:73;12941:3;12930:9;12926:19;12917:6;12873:73;:::i;:::-;12956;13024:3;13013:9;13009:19;13000:6;12956:73;:::i;:::-;12229:807;;;;;;;;;:::o;13042:143::-;13099:5;13130:6;13124:13;13115:22;;13146:33;13173:5;13146:33;:::i;:::-;13042:143;;;;:::o;13191:663::-;13279:6;13287;13295;13344:2;13332:9;13323:7;13319:23;13315:32;13312:119;;;13350:79;;:::i;:::-;13312:119;13470:1;13495:64;13551:7;13542:6;13531:9;13527:22;13495:64;:::i;:::-;13485:74;;13441:128;13608:2;13634:64;13690:7;13681:6;13670:9;13666:22;13634:64;:::i;:::-;13624:74;;13579:129;13747:2;13773:64;13829:7;13820:6;13809:9;13805:22;13773:64;:::i;:::-;13763:74;;13718:129;13191:663;;;;;:::o;13860:332::-;13981:4;14019:2;14008:9;14004:18;13996:26;;14032:71;14100:1;14089:9;14085:17;14076:6;14032:71;:::i;:::-;14113:72;14181:2;14170:9;14166:18;14157:6;14113:72;:::i;:::-;13860:332;;;;;:::o;14198:116::-;14268:21;14283:5;14268:21;:::i;:::-;14261:5;14258:32;14248:60;;14304:1;14301;14294:12;14248:60;14198:116;:::o;14320:137::-;14374:5;14405:6;14399:13;14390:22;;14421:30;14445:5;14421:30;:::i;:::-;14320:137;;;;:::o;14463:345::-;14530:6;14579:2;14567:9;14558:7;14554:23;14550:32;14547:119;;;14585:79;;:::i;:::-;14547:119;14705:1;14730:61;14783:7;14774:6;14763:9;14759:22;14730:61;:::i;:::-;14720:71;;14676:125;14463:345;;;;:::o;14814:223::-;14954:34;14950:1;14942:6;14938:14;14931:58;15023:6;15018:2;15010:6;15006:15;14999:31;14814:223;:::o;15043:366::-;15185:3;15206:67;15270:2;15265:3;15206:67;:::i;:::-;15199:74;;15282:93;15371:3;15282:93;:::i;:::-;15400:2;15395:3;15391:12;15384:19;;15043:366;;;:::o;15415:419::-;15581:4;15619:2;15608:9;15604:18;15596:26;;15668:9;15662:4;15658:20;15654:1;15643:9;15639:17;15632:47;15696:131;15822:4;15696:131;:::i;:::-;15688:139;;15415:419;;;:::o;15840:221::-;15980:34;15976:1;15968:6;15964:14;15957:58;16049:4;16044:2;16036:6;16032:15;16025:29;15840:221;:::o;16067:366::-;16209:3;16230:67;16294:2;16289:3;16230:67;:::i;:::-;16223:74;;16306:93;16395:3;16306:93;:::i;:::-;16424:2;16419:3;16415:12;16408:19;;16067:366;;;:::o;16439:419::-;16605:4;16643:2;16632:9;16628:18;16620:26;;16692:9;16686:4;16682:20;16678:1;16667:9;16663:17;16656:47;16720:131;16846:4;16720:131;:::i;:::-;16712:139;;16439:419;;;:::o;16864:224::-;17004:34;17000:1;16992:6;16988:14;16981:58;17073:7;17068:2;17060:6;17056:15;17049:32;16864:224;:::o;17094:366::-;17236:3;17257:67;17321:2;17316:3;17257:67;:::i;:::-;17250:74;;17333:93;17422:3;17333:93;:::i;:::-;17451:2;17446:3;17442:12;17435:19;;17094:366;;;:::o;17466:419::-;17632:4;17670:2;17659:9;17655:18;17647:26;;17719:9;17713:4;17709:20;17705:1;17694:9;17690:17;17683:47;17747:131;17873:4;17747:131;:::i;:::-;17739:139;;17466:419;;;:::o;17891:222::-;18031:34;18027:1;18019:6;18015:14;18008:58;18100:5;18095:2;18087:6;18083:15;18076:30;17891:222;:::o;18119:366::-;18261:3;18282:67;18346:2;18341:3;18282:67;:::i;:::-;18275:74;;18358:93;18447:3;18358:93;:::i;:::-;18476:2;18471:3;18467:12;18460:19;;18119:366;;;:::o;18491:419::-;18657:4;18695:2;18684:9;18680:18;18672:26;;18744:9;18738:4;18734:20;18730:1;18719:9;18715:17;18708:47;18772:131;18898:4;18772:131;:::i;:::-;18764:139;;18491:419;;;:::o;18916:228::-;19056:34;19052:1;19044:6;19040:14;19033:58;19125:11;19120:2;19112:6;19108:15;19101:36;18916:228;:::o;19150:366::-;19292:3;19313:67;19377:2;19372:3;19313:67;:::i;:::-;19306:74;;19389:93;19478:3;19389:93;:::i;:::-;19507:2;19502:3;19498:12;19491:19;;19150:366;;;:::o;19522:419::-;19688:4;19726:2;19715:9;19711:18;19703:26;;19775:9;19769:4;19765:20;19761:1;19750:9;19746:17;19739:47;19803:131;19929:4;19803:131;:::i;:::-;19795:139;;19522:419;;;:::o;19947:194::-;19987:4;20007:20;20025:1;20007:20;:::i;:::-;20002:25;;20041:20;20059:1;20041:20;:::i;:::-;20036:25;;20085:1;20082;20078:9;20070:17;;20109:1;20103:4;20100:11;20097:37;;;20114:18;;:::i;:::-;20097:37;19947:194;;;;:::o;20147:180::-;20195:77;20192:1;20185:88;20292:4;20289:1;20282:15;20316:4;20313:1;20306:15;20333:180;20381:77;20378:1;20371:88;20478:4;20475:1;20468:15;20502:4;20499:1;20492:15;20519:114;20586:6;20620:5;20614:12;20604:22;;20519:114;;;:::o;20639:184::-;20738:11;20772:6;20767:3;20760:19;20812:4;20807:3;20803:14;20788:29;;20639:184;;;;:::o;20829:132::-;20896:4;20919:3;20911:11;;20949:4;20944:3;20940:14;20932:22;;20829:132;;;:::o;20967:108::-;21044:24;21062:5;21044:24;:::i;:::-;21039:3;21032:37;20967:108;;:::o;21081:179::-;21150:10;21171:46;21213:3;21205:6;21171:46;:::i;:::-;21249:4;21244:3;21240:14;21226:28;;21081:179;;;;:::o;21266:113::-;21336:4;21368;21363:3;21359:14;21351:22;;21266:113;;;:::o;21415:732::-;21534:3;21563:54;21611:5;21563:54;:::i;:::-;21633:86;21712:6;21707:3;21633:86;:::i;:::-;21626:93;;21743:56;21793:5;21743:56;:::i;:::-;21822:7;21853:1;21838:284;21863:6;21860:1;21857:13;21838:284;;;21939:6;21933:13;21966:63;22025:3;22010:13;21966:63;:::i;:::-;21959:70;;22052:60;22105:6;22052:60;:::i;:::-;22042:70;;21898:224;21885:1;21882;21878:9;21873:14;;21838:284;;;21842:14;22138:3;22131:10;;21539:608;;;21415:732;;;;:::o;22153:831::-;22416:4;22454:3;22443:9;22439:19;22431:27;;22468:71;22536:1;22525:9;22521:17;22512:6;22468:71;:::i;:::-;22549:80;22625:2;22614:9;22610:18;22601:6;22549:80;:::i;:::-;22676:9;22670:4;22666:20;22661:2;22650:9;22646:18;22639:48;22704:108;22807:4;22798:6;22704:108;:::i;:::-;22696:116;;22822:72;22890:2;22879:9;22875:18;22866:6;22822:72;:::i;:::-;22904:73;22972:3;22961:9;22957:19;22948:6;22904:73;:::i;:::-;22153:831;;;;;;;;:::o;22990:191::-;23030:3;23049:20;23067:1;23049:20;:::i;:::-;23044:25;;23083:20;23101:1;23083:20;:::i;:::-;23078:25;;23126:1;23123;23119:9;23112:16;;23147:3;23144:1;23141:10;23138:36;;;23154:18;;:::i;:::-;23138:36;22990:191;;;;:::o;23187:177::-;23327:29;23323:1;23315:6;23311:14;23304:53;23187:177;:::o;23370:366::-;23512:3;23533:67;23597:2;23592:3;23533:67;:::i;:::-;23526:74;;23609:93;23698:3;23609:93;:::i;:::-;23727:2;23722:3;23718:12;23711:19;;23370:366;;;:::o;23742:419::-;23908:4;23946:2;23935:9;23931:18;23923:26;;23995:9;23989:4;23985:20;23981:1;23970:9;23966:17;23959:47;24023:131;24149:4;24023:131;:::i;:::-;24015:139;;23742:419;;;:::o

Swarm Source

ipfs://2ea960653c277fee8e03622a46308e4c4357693d8310a03187c59eacdda6237e

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.