ETH Price: $2,085.52 (-14.87%)
Gas: 0.75 Gwei

Contract

0x239F2316b8176cFC97BDed0288F9B71536597E8d
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve169183692023-03-27 11:17:59707 days ago1679915879IN
0x239F2316...536597E8d
0 ETH0.0004551918.73467947
Approve153808822022-08-21 0:46:01926 days ago1661042761IN
0x239F2316...536597E8d
0 ETH0.000188664.05029932
Approve153326942022-08-13 9:47:56933 days ago1660384076IN
0x239F2316...536597E8d
0 ETH0.0005587611.99562594
Approve153264172022-08-12 10:11:50934 days ago1660299110IN
0x239F2316...536597E8d
0 ETH0.0004975810.68205163
Approve153234732022-08-11 23:03:01935 days ago1660258981IN
0x239F2316...536597E8d
0 ETH0.000701415.05771121
Approve153211812022-08-11 14:14:42935 days ago1660227282IN
0x239F2316...536597E8d
0 ETH0.0014317430.73673399
Approve153211352022-08-11 14:03:41935 days ago1660226621IN
0x239F2316...536597E8d
0 ETH0.0016207234.79359531
Approve153208542022-08-11 12:59:37935 days ago1660222777IN
0x239F2316...536597E8d
0 ETH0.0008440818.12072748
Approve153203862022-08-11 11:16:16935 days ago1660216576IN
0x239F2316...536597E8d
0 ETH0.0006932514.88283588
Approve153202402022-08-11 10:39:37935 days ago1660214377IN
0x239F2316...536597E8d
0 ETH0.00045699.80889322
Approve153202112022-08-11 10:34:28935 days ago1660214068IN
0x239F2316...536597E8d
0 ETH0.0007175415.40431316
Approve153201552022-08-11 10:22:17935 days ago1660213337IN
0x239F2316...536597E8d
0 ETH0.0005314111.40844976
Approve153201512022-08-11 10:21:13935 days ago1660213273IN
0x239F2316...536597E8d
0 ETH0.0005296411.37040071
Approve153201282022-08-11 10:15:55935 days ago1660212955IN
0x239F2316...536597E8d
0 ETH0.0004844710.40069378
Approve153201092022-08-11 10:12:13935 days ago1660212733IN
0x239F2316...536597E8d
0 ETH0.000417178.95588122
Renounce Ownersh...153200862022-08-11 10:07:43935 days ago1660212463IN
0x239F2316...536597E8d
0 ETH0.0002458210.52233026
Approve153200732022-08-11 10:05:15935 days ago1660212315IN
0x239F2316...536597E8d
0 ETH0.0008778618.88484805
Remove Limits153200682022-08-11 10:04:46935 days ago1660212286IN
0x239F2316...536597E8d
0 ETH0.0003591910.75876254
Approve153200642022-08-11 10:04:05935 days ago1660212245IN
0x239F2316...536597E8d
0 ETH0.0005208911.18255155
Approve153200642022-08-11 10:04:05935 days ago1660212245IN
0x239F2316...536597E8d
0 ETH0.0005208911.18255155
Open Trading153200632022-08-11 10:03:49935 days ago1660212229IN
0x239F2316...536597E8d
0 ETH0.0312825411.0519466
Add Bots153200492022-08-11 10:01:20935 days ago1660212080IN
0x239F2316...536597E8d
0 ETH0.0069433712.51689479
Transfer153200452022-08-11 10:00:22935 days ago1660212022IN
0x239F2316...536597E8d
0 ETH0.0007400411.62492437
Transfer153200402022-08-11 10:00:03935 days ago1660212003IN
0x239F2316...536597E8d
2 ETH0.0002751513.06845945

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
153808852022-08-21 0:47:24926 days ago1661042844
0x239F2316...536597E8d
0.00039751 ETH
153808852022-08-21 0:47:24926 days ago1661042844
0x239F2316...536597E8d
0.00039751 ETH
153341952022-08-13 15:26:46933 days ago1660404406
0x239F2316...536597E8d
0.00152101 ETH
153341952022-08-13 15:26:46933 days ago1660404406
0x239F2316...536597E8d
0.00152101 ETH
153326992022-08-13 9:49:22933 days ago1660384162
0x239F2316...536597E8d
0.00124109 ETH
153326992022-08-13 9:49:22933 days ago1660384162
0x239F2316...536597E8d
0.00124109 ETH
153264482022-08-12 10:16:42934 days ago1660299402
0x239F2316...536597E8d
0.00265665 ETH
153264482022-08-12 10:16:42934 days ago1660299402
0x239F2316...536597E8d
0.00265665 ETH
153241432022-08-12 1:31:44935 days ago1660267904
0x239F2316...536597E8d
0.000415 ETH
153241432022-08-12 1:31:44935 days ago1660267904
0x239F2316...536597E8d
0.000415 ETH
153232452022-08-11 22:10:17935 days ago1660255817
0x239F2316...536597E8d
0.0034708 ETH
153232452022-08-11 22:10:17935 days ago1660255817
0x239F2316...536597E8d
0.0034708 ETH
153213492022-08-11 14:54:46935 days ago1660229686
0x239F2316...536597E8d
0.00200616 ETH
153213492022-08-11 14:54:46935 days ago1660229686
0x239F2316...536597E8d
0.00200616 ETH
153212942022-08-11 14:45:31935 days ago1660229131
0x239F2316...536597E8d
0.00554099 ETH
153212942022-08-11 14:45:31935 days ago1660229131
0x239F2316...536597E8d
0.00554099 ETH
153211532022-08-11 14:07:11935 days ago1660226831
0x239F2316...536597E8d
0.00168246 ETH
153211532022-08-11 14:07:11935 days ago1660226831
0x239F2316...536597E8d
0.00168246 ETH
153211362022-08-11 14:03:52935 days ago1660226632
0x239F2316...536597E8d
0.00218489 ETH
153211362022-08-11 14:03:52935 days ago1660226632
0x239F2316...536597E8d
0.00218489 ETH
153211362022-08-11 14:03:52935 days ago1660226632
0x239F2316...536597E8d
0.01169605 ETH
153211362022-08-11 14:03:52935 days ago1660226632
0x239F2316...536597E8d
0.01169605 ETH
153203892022-08-11 11:16:55935 days ago1660216615
0x239F2316...536597E8d
0.003291 ETH
153203892022-08-11 11:16:55935 days ago1660216615
0x239F2316...536597E8d
0.003291 ETH
153203012022-08-11 10:56:23935 days ago1660215383
0x239F2316...536597E8d
0.00188361 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ETH4000

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-11
*/

// SPDX-License-Identifier: None
/**

eth 4000

Name : $ETH4000
Symbol : $ETH4000
Tax : 4%

https://t.me/ETH4000_Portal
https://twitter.com/ETH4000_
https://www.eth4000.net/

*/


pragma solidity 0.8.10;
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 ETH4000 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 _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

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

    string private constant _name = "ETH4000";
    string private constant _symbol = "$ETH4000";
    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private constant _tTotal = 10000000 * 10**9;
    uint256 public _maxTxAmount =        200000*10**9;
    uint256 public _maxWalletSize =      300000*10**9;
    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;

        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");
        _feeAddr1 = 0;
        _feeAddr2 = 0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = 4;
            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);
                }
            }
        }

        _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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function changeMaxTxAmount(uint256 percentage) external onlyOwner{
        require(percentage>0);
        _maxTxAmount = _tTotal.mul(percentage).div(100);
    }

    function changeMaxWalletSize(uint256 percentage) external onlyOwner{
        require(percentage>0);
        _maxWalletSize = _tTotal.mul(percentage).div(100);
    }

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

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

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

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

    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    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

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","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":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","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":[],"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"}]

608060405262000019662386f26fc1000060001962000197565b6200002790600019620001ba565b600855600e805462ffffff60a81b1916905565b5e620f48000600f55660110d9316ec0006010553480156200005b57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b03191633908117909155600854600091825260026020526040822055600190600590620000dd6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600c549091168352912080549092161790556200013c3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040516200018991815260200190565b60405180910390a3620001e0565b600082620001b557634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620001db57634e487b7160e01b600052601160045260246000fd5b500390565b611b2080620001f06000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb1461035d578063b87f137a1461037d578063c3c8cd801461039d578063c9567bf9146103b2578063d34628cc146103c7578063dd62ed3e146103e757600080fd5b8063751039fc146102c35780637d1db4a5146102d85780638da5cb5b146102ee5780638f9a55c01461031657806395d89b411461032c57600080fd5b8063313ce567116100fd578063313ce5671461021d5780635932ead114610239578063677daa57146102595780636fc3eaec1461027957806370a082311461028e578063715018a6146102ae57600080fd5b806306fdde0314610145578063095ea7b31461018757806318160ddd146101b757806323b872dd146101db578063273123b7146101fb57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260078152660455448343030360cc1b60208201525b60405161017e91906116a1565b60405180910390f35b34801561019357600080fd5b506101a76101a236600461171b565b61042d565b604051901515815260200161017e565b3480156101c357600080fd5b50662386f26fc100005b60405190815260200161017e565b3480156101e757600080fd5b506101a76101f6366004611747565b610444565b34801561020757600080fd5b5061021b610216366004611788565b6104ad565b005b34801561022957600080fd5b506040516009815260200161017e565b34801561024557600080fd5b5061021b6102543660046117b3565b610501565b34801561026557600080fd5b5061021b6102743660046117d0565b610549565b34801561028557600080fd5b5061021b6105a2565b34801561029a57600080fd5b506101cd6102a9366004611788565b6105cf565b3480156102ba57600080fd5b5061021b6105f1565b3480156102cf57600080fd5b5061021b610665565b3480156102e457600080fd5b506101cd600f5481565b3480156102fa57600080fd5b506000546040516001600160a01b03909116815260200161017e565b34801561032257600080fd5b506101cd60105481565b34801561033857600080fd5b50604080518082019091526008815267024455448343030360c41b6020820152610171565b34801561036957600080fd5b506101a761037836600461171b565b6106a1565b34801561038957600080fd5b5061021b6103983660046117d0565b6106ae565b3480156103a957600080fd5b5061021b610701565b3480156103be57600080fd5b5061021b610737565b3480156103d357600080fd5b5061021b6103e23660046117ff565b610aa5565b3480156103f357600080fd5b506101cd6104023660046118c4565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600061043a338484610b37565b5060015b92915050565b6000610451848484610c5b565b6104a3843361049e85604051806060016040528060288152602001611ac3602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610fd2565b610b37565b5060019392505050565b6000546001600160a01b031633146104e05760405162461bcd60e51b81526004016104d7906118fd565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b0316331461052b5760405162461bcd60e51b81526004016104d7906118fd565b600e8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b031633146105735760405162461bcd60e51b81526004016104d7906118fd565b6000811161058057600080fd5b61059c6064610596662386f26fc100008461100c565b90611092565b600f5550565b600c546001600160a01b0316336001600160a01b0316146105c257600080fd5b476105cc816110d4565b50565b6001600160a01b03811660009081526002602052604081205461043e9061110e565b6000546001600160a01b0316331461061b5760405162461bcd60e51b81526004016104d7906118fd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461068f5760405162461bcd60e51b81526004016104d7906118fd565b662386f26fc10000600f819055601055565b600061043a338484610c5b565b6000546001600160a01b031633146106d85760405162461bcd60e51b81526004016104d7906118fd565b600081116106e557600080fd5b6106fb6064610596662386f26fc100008461100c565b60105550565b600c546001600160a01b0316336001600160a01b03161461072157600080fd5b600061072c306105cf565b90506105cc8161118b565b6000546001600160a01b031633146107615760405162461bcd60e51b81526004016104d7906118fd565b600e54600160a01b900460ff16156107bb5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d7565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107f63082662386f26fc10000610b37565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108589190611932565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c99190611932565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a9190611932565b600e80546001600160a01b0319166001600160a01b03928316179055600d541663f305d719473061096a816105cf565b60008061097f6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a0c919061194f565b5050600e805463ffff00ff60a01b198116630101000160a01b17909155600d5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa1919061197d565b5050565b6000546001600160a01b03163314610acf5760405162461bcd60e51b81526004016104d7906118fd565b60005b8151811015610aa157600160066000848481518110610af357610af361199a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b2f816119c6565b915050610ad2565b6001600160a01b038316610b995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d7565b6001600160a01b038216610bfa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d7565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cbf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d7565b6001600160a01b038216610d215760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d7565b60008111610d835760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d7565b6000600a819055600b55610d9f6000546001600160a01b031690565b6001600160a01b0316836001600160a01b031614158015610dce57506000546001600160a01b03838116911614155b15610fc2576001600160a01b03831660009081526006602052604090205460ff16158015610e1557506001600160a01b03821660009081526006602052604090205460ff16155b610e1e57600080fd5b6000600a556004600b55600e546001600160a01b038481169116148015610e535750600d546001600160a01b03838116911614155b8015610e7857506001600160a01b03821660009081526005602052604090205460ff16155b8015610e8d5750600e54600160b81b900460ff165b15610f4957600f54811115610ee45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d7565b60105481610ef1846105cf565b610efb91906119e1565b1115610f495760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d7565b6000610f54306105cf565b600e54909150600160a81b900460ff16158015610f7f5750600e546001600160a01b03858116911614155b8015610f945750600e54600160b01b900460ff165b8015610fa05750600081115b15610fc057610fae8161118b565b478015610fbe57610fbe476110d4565b505b505b610fcd838383611305565b505050565b60008184841115610ff65760405162461bcd60e51b81526004016104d791906116a1565b50600061100384866119f9565b95945050505050565b60008261101b5750600061043e565b60006110278385611a10565b9050826110348583611a2f565b1461108b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d7565b9392505050565b600061108b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611310565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610aa1573d6000803e3d6000fd5b60006008548211156111755760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104d7565b600061117f61133e565b905061108b8382611092565b600e805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111d3576111d361199a565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561122c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112509190611932565b816001815181106112635761126361199a565b6001600160a01b039283166020918202929092010152600d546112899130911684610b37565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c2908590600090869030904290600401611a51565b600060405180830381600087803b1580156112dc57600080fd5b505af11580156112f0573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b610fcd838383611361565b600081836113315760405162461bcd60e51b81526004016104d791906116a1565b5060006110038486611a2f565b600080600061134b611458565b909250905061135a8282611092565b9250505090565b60008060008060008061137387611496565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113a590876114f3565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546113d49086611535565b6001600160a01b0389166000908152600260205260409020556113f681611594565b61140084836115de565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161144591815260200190565b60405180910390a3505050505050505050565b6008546000908190662386f26fc100006114728282611092565b82101561148d57505060085492662386f26fc1000092509050565b90939092509050565b60008060008060008060008060006114b38a600a54600b54611602565b92509250925060006114c361133e565b905060008060006114d68e878787611651565b919e509c509a509598509396509194505050505091939550919395565b600061108b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fd2565b60008061154283856119e1565b90508381101561108b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d7565b600061159e61133e565b905060006115ac838361100c565b306000908152600260205260409020549091506115c99082611535565b30600090815260026020526040902055505050565b6008546115eb90836114f3565b6008556009546115fb9082611535565b6009555050565b60008080806116166064610596898961100c565b9050600061162960646105968a8961100c565b905060006116418261163b8b866114f3565b906114f3565b9992985090965090945050505050565b6000808080611660888661100c565b9050600061166e888761100c565b9050600061167c888861100c565b9050600061168e8261163b86866114f3565b939b939a50919850919650505050505050565b600060208083528351808285015260005b818110156116ce578581018301518582016040015282016116b2565b818111156116e0576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146105cc57600080fd5b8035611716816116f6565b919050565b6000806040838503121561172e57600080fd5b8235611739816116f6565b946020939093013593505050565b60008060006060848603121561175c57600080fd5b8335611767816116f6565b92506020840135611777816116f6565b929592945050506040919091013590565b60006020828403121561179a57600080fd5b813561108b816116f6565b80151581146105cc57600080fd5b6000602082840312156117c557600080fd5b813561108b816117a5565b6000602082840312156117e257600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561181257600080fd5b823567ffffffffffffffff8082111561182a57600080fd5b818501915085601f83011261183e57600080fd5b813581811115611850576118506117e9565b8060051b604051601f19603f83011681018181108582111715611875576118756117e9565b60405291825284820192508381018501918883111561189357600080fd5b938501935b828510156118b8576118a98561170b565b84529385019392850192611898565b98975050505050505050565b600080604083850312156118d757600080fd5b82356118e2816116f6565b915060208301356118f2816116f6565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561194457600080fd5b815161108b816116f6565b60008060006060848603121561196457600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561198f57600080fd5b815161108b816117a5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156119da576119da6119b0565b5060010190565b600082198211156119f4576119f46119b0565b500190565b600082821015611a0b57611a0b6119b0565b500390565b6000816000190483118215151615611a2a57611a2a6119b0565b500290565b600082611a4c57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aa15784516001600160a01b031683529383019391830191600101611a7c565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f1d74d17074fcbec9059fc827f6de7606377a9cfbd5d2bc72585da4ad62bf74c64736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb1461035d578063b87f137a1461037d578063c3c8cd801461039d578063c9567bf9146103b2578063d34628cc146103c7578063dd62ed3e146103e757600080fd5b8063751039fc146102c35780637d1db4a5146102d85780638da5cb5b146102ee5780638f9a55c01461031657806395d89b411461032c57600080fd5b8063313ce567116100fd578063313ce5671461021d5780635932ead114610239578063677daa57146102595780636fc3eaec1461027957806370a082311461028e578063715018a6146102ae57600080fd5b806306fdde0314610145578063095ea7b31461018757806318160ddd146101b757806323b872dd146101db578063273123b7146101fb57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260078152660455448343030360cc1b60208201525b60405161017e91906116a1565b60405180910390f35b34801561019357600080fd5b506101a76101a236600461171b565b61042d565b604051901515815260200161017e565b3480156101c357600080fd5b50662386f26fc100005b60405190815260200161017e565b3480156101e757600080fd5b506101a76101f6366004611747565b610444565b34801561020757600080fd5b5061021b610216366004611788565b6104ad565b005b34801561022957600080fd5b506040516009815260200161017e565b34801561024557600080fd5b5061021b6102543660046117b3565b610501565b34801561026557600080fd5b5061021b6102743660046117d0565b610549565b34801561028557600080fd5b5061021b6105a2565b34801561029a57600080fd5b506101cd6102a9366004611788565b6105cf565b3480156102ba57600080fd5b5061021b6105f1565b3480156102cf57600080fd5b5061021b610665565b3480156102e457600080fd5b506101cd600f5481565b3480156102fa57600080fd5b506000546040516001600160a01b03909116815260200161017e565b34801561032257600080fd5b506101cd60105481565b34801561033857600080fd5b50604080518082019091526008815267024455448343030360c41b6020820152610171565b34801561036957600080fd5b506101a761037836600461171b565b6106a1565b34801561038957600080fd5b5061021b6103983660046117d0565b6106ae565b3480156103a957600080fd5b5061021b610701565b3480156103be57600080fd5b5061021b610737565b3480156103d357600080fd5b5061021b6103e23660046117ff565b610aa5565b3480156103f357600080fd5b506101cd6104023660046118c4565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600061043a338484610b37565b5060015b92915050565b6000610451848484610c5b565b6104a3843361049e85604051806060016040528060288152602001611ac3602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610fd2565b610b37565b5060019392505050565b6000546001600160a01b031633146104e05760405162461bcd60e51b81526004016104d7906118fd565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b0316331461052b5760405162461bcd60e51b81526004016104d7906118fd565b600e8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b031633146105735760405162461bcd60e51b81526004016104d7906118fd565b6000811161058057600080fd5b61059c6064610596662386f26fc100008461100c565b90611092565b600f5550565b600c546001600160a01b0316336001600160a01b0316146105c257600080fd5b476105cc816110d4565b50565b6001600160a01b03811660009081526002602052604081205461043e9061110e565b6000546001600160a01b0316331461061b5760405162461bcd60e51b81526004016104d7906118fd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461068f5760405162461bcd60e51b81526004016104d7906118fd565b662386f26fc10000600f819055601055565b600061043a338484610c5b565b6000546001600160a01b031633146106d85760405162461bcd60e51b81526004016104d7906118fd565b600081116106e557600080fd5b6106fb6064610596662386f26fc100008461100c565b60105550565b600c546001600160a01b0316336001600160a01b03161461072157600080fd5b600061072c306105cf565b90506105cc8161118b565b6000546001600160a01b031633146107615760405162461bcd60e51b81526004016104d7906118fd565b600e54600160a01b900460ff16156107bb5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d7565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107f63082662386f26fc10000610b37565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108589190611932565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c99190611932565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a9190611932565b600e80546001600160a01b0319166001600160a01b03928316179055600d541663f305d719473061096a816105cf565b60008061097f6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a0c919061194f565b5050600e805463ffff00ff60a01b198116630101000160a01b17909155600d5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa1919061197d565b5050565b6000546001600160a01b03163314610acf5760405162461bcd60e51b81526004016104d7906118fd565b60005b8151811015610aa157600160066000848481518110610af357610af361199a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b2f816119c6565b915050610ad2565b6001600160a01b038316610b995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d7565b6001600160a01b038216610bfa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d7565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cbf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d7565b6001600160a01b038216610d215760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d7565b60008111610d835760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d7565b6000600a819055600b55610d9f6000546001600160a01b031690565b6001600160a01b0316836001600160a01b031614158015610dce57506000546001600160a01b03838116911614155b15610fc2576001600160a01b03831660009081526006602052604090205460ff16158015610e1557506001600160a01b03821660009081526006602052604090205460ff16155b610e1e57600080fd5b6000600a556004600b55600e546001600160a01b038481169116148015610e535750600d546001600160a01b03838116911614155b8015610e7857506001600160a01b03821660009081526005602052604090205460ff16155b8015610e8d5750600e54600160b81b900460ff165b15610f4957600f54811115610ee45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d7565b60105481610ef1846105cf565b610efb91906119e1565b1115610f495760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d7565b6000610f54306105cf565b600e54909150600160a81b900460ff16158015610f7f5750600e546001600160a01b03858116911614155b8015610f945750600e54600160b01b900460ff165b8015610fa05750600081115b15610fc057610fae8161118b565b478015610fbe57610fbe476110d4565b505b505b610fcd838383611305565b505050565b60008184841115610ff65760405162461bcd60e51b81526004016104d791906116a1565b50600061100384866119f9565b95945050505050565b60008261101b5750600061043e565b60006110278385611a10565b9050826110348583611a2f565b1461108b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d7565b9392505050565b600061108b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611310565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610aa1573d6000803e3d6000fd5b60006008548211156111755760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104d7565b600061117f61133e565b905061108b8382611092565b600e805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111d3576111d361199a565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561122c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112509190611932565b816001815181106112635761126361199a565b6001600160a01b039283166020918202929092010152600d546112899130911684610b37565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c2908590600090869030904290600401611a51565b600060405180830381600087803b1580156112dc57600080fd5b505af11580156112f0573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b610fcd838383611361565b600081836113315760405162461bcd60e51b81526004016104d791906116a1565b5060006110038486611a2f565b600080600061134b611458565b909250905061135a8282611092565b9250505090565b60008060008060008061137387611496565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113a590876114f3565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546113d49086611535565b6001600160a01b0389166000908152600260205260409020556113f681611594565b61140084836115de565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161144591815260200190565b60405180910390a3505050505050505050565b6008546000908190662386f26fc100006114728282611092565b82101561148d57505060085492662386f26fc1000092509050565b90939092509050565b60008060008060008060008060006114b38a600a54600b54611602565b92509250925060006114c361133e565b905060008060006114d68e878787611651565b919e509c509a509598509396509194505050505091939550919395565b600061108b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fd2565b60008061154283856119e1565b90508381101561108b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d7565b600061159e61133e565b905060006115ac838361100c565b306000908152600260205260409020549091506115c99082611535565b30600090815260026020526040902055505050565b6008546115eb90836114f3565b6008556009546115fb9082611535565b6009555050565b60008080806116166064610596898961100c565b9050600061162960646105968a8961100c565b905060006116418261163b8b866114f3565b906114f3565b9992985090965090945050505050565b6000808080611660888661100c565b9050600061166e888761100c565b9050600061167c888861100c565b9050600061168e8261163b86866114f3565b939b939a50919850919650505050505050565b600060208083528351808285015260005b818110156116ce578581018301518582016040015282016116b2565b818111156116e0576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146105cc57600080fd5b8035611716816116f6565b919050565b6000806040838503121561172e57600080fd5b8235611739816116f6565b946020939093013593505050565b60008060006060848603121561175c57600080fd5b8335611767816116f6565b92506020840135611777816116f6565b929592945050506040919091013590565b60006020828403121561179a57600080fd5b813561108b816116f6565b80151581146105cc57600080fd5b6000602082840312156117c557600080fd5b813561108b816117a5565b6000602082840312156117e257600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561181257600080fd5b823567ffffffffffffffff8082111561182a57600080fd5b818501915085601f83011261183e57600080fd5b813581811115611850576118506117e9565b8060051b604051601f19603f83011681018181108582111715611875576118756117e9565b60405291825284820192508381018501918883111561189357600080fd5b938501935b828510156118b8576118a98561170b565b84529385019392850192611898565b98975050505050505050565b600080604083850312156118d757600080fd5b82356118e2816116f6565b915060208301356118f2816116f6565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561194457600080fd5b815161108b816116f6565b60008060006060848603121561196457600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561198f57600080fd5b815161108b816117a5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156119da576119da6119b0565b5060010190565b600082198211156119f4576119f46119b0565b500190565b600082821015611a0b57611a0b6119b0565b500390565b6000816000190483118215151615611a2a57611a2a6119b0565b500290565b600082611a4c57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aa15784516001600160a01b031683529383019391830191600101611a7c565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f1d74d17074fcbec9059fc827f6de7606377a9cfbd5d2bc72585da4ad62bf74c64736f6c634300080a0033

Deployed Bytecode Sourcemap

3669:10358:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5363:83;;;;;;;;;;-1:-1:-1;5433:5:0;;;;;;;;;;;;-1:-1:-1;;;5433:5:0;;;;5363:83;;;;;;;:::i;:::-;;;;;;;;6215:161;;;;;;;;;;-1:-1:-1;6215:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;6215:161:0;1211:187:1;5640:95:0;;;;;;;;;;-1:-1:-1;4749:16:0;5640:95;;;1549:25:1;;;1537:2;1522:18;5640:95:0;1403:177:1;6384:313:0;;;;;;;;;;-1:-1:-1;6384:313:0;;;;;:::i;:::-;;:::i;10783:88::-;;;;;;;;;;-1:-1:-1;10783:88:0;;;;;:::i;:::-;;:::i;:::-;;5549:83;;;;;;;;;;-1:-1:-1;5549:83:0;;4472:1;2440:36:1;;2428:2;2413:18;5549:83:0;2298:184:1;6705:103:0;;;;;;;;;;-1:-1:-1;6705:103:0;;;;;:::i;:::-;;:::i;9380:163::-;;;;;;;;;;-1:-1:-1;9380:163:0;;;;;:::i;:::-;;:::i;12142:193::-;;;;;;;;;;;;;:::i;5743:138::-;;;;;;;;;;-1:-1:-1;5743:138:0;;;;;:::i;:::-;;:::i;2750:148::-;;;;;;;;;;;;;:::i;9254:118::-;;;;;;;;;;;;;:::i;4772:49::-;;;;;;;;;;;;;;;;2536:79;;;;;;;;;;-1:-1:-1;2574:7:0;2601:6;2536:79;;-1:-1:-1;;;;;2601:6:0;;;3187:51:1;;3175:2;3160:18;2536:79:0;3041:203:1;4828:49:0;;;;;;;;;;;;;;;;5454:87;;;;;;;;;;-1:-1:-1;5526:7:0;;;;;;;;;;;;-1:-1:-1;;;5526:7:0;;;;5454:87;;5889:167;;;;;;;;;;-1:-1:-1;5889:167:0;;;;;:::i;:::-;;:::i;9551:::-;;;;;;;;;;-1:-1:-1;9551:167:0;;;;;:::i;:::-;;:::i;11940:194::-;;;;;;;;;;;;;:::i;9830:773::-;;;;;;;;;;;;;:::i;10611:164::-;;;;;;;;;;-1:-1:-1;10611:164:0;;;;;:::i;:::-;;:::i;6064:143::-;;;;;;;;;;-1:-1:-1;6064:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6172:18:0;;;6145:7;6172:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6064:143;6215:161;6290:4;6307:39;334:10;6330:7;6339:6;6307:8;:39::i;:::-;-1:-1:-1;6364:4:0;6215:161;;;;;:::o;6384:313::-;6482:4;6499:36;6509:6;6517:9;6528:6;6499:9;:36::i;:::-;6546:121;6555:6;334:10;6577:89;6615:6;6577:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6577:19:0;;;;;;:11;:19;;;;;;;;334:10;6577:33;;;;;;;;;;:37;:89::i;:::-;6546:8;:121::i;:::-;-1:-1:-1;6685:4:0;6384:313;;;;;:::o;10783:88::-;2663:6;;-1:-1:-1;;;;;2663:6:0;334:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10843:12:0::1;10858:5;10843:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;10843:20:0::1;::::0;;10783:88::o;6705:103::-;2663:6;;-1:-1:-1;;;;;2663:6:0;334:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;6777:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6777:23:0::1;-1:-1:-1::0;;;;6777:23:0;;::::1;::::0;;;::::1;::::0;;6705:103::o;9380:163::-;2663:6;;-1:-1:-1;;;;;2663:6:0;334:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;9475:1:::1;9464:10;:12;9456:21;;;::::0;::::1;;9503:32;9531:3;9503:23;4749:16;9515:10:::0;9503:11:::1;:23::i;:::-;:27:::0;::::1;:32::i;:::-;9488:12;:47:::0;-1:-1:-1;9380:163:0:o;12142:193::-;12208:14;;-1:-1:-1;;;;;12208:14:0;334:10;-1:-1:-1;;;;;12192:30:0;;12184:39;;;;;;12263:21;12295:32;12263:21;12295:12;:32::i;:::-;12173:162;12142:193::o;5743:138::-;-1:-1:-1;;;;;5856:16:0;;5809:7;5856:16;;;:7;:16;;;;;;5836:37;;:19;:37::i;2750:148::-;2663:6;;-1:-1:-1;;;;;2663:6:0;334:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;2857:1:::1;2841:6:::0;;2820:40:::1;::::0;-1:-1:-1;;;;;2841:6:0;;::::1;::::0;2820:40:::1;::::0;2857:1;;2820:40:::1;2888:1;2871:19:::0;;-1:-1:-1;;;;;;2871:19:0::1;::::0;;2750:148::o;9254:118::-;2663:6;;-1:-1:-1;;;;;2663:6:0;334:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;4749:16:::1;9307:12;:22:::0;;;9340:14:::1;:24:::0;9254:118::o;5889:167::-;5967:4;5984:42;334:10;6008:9;6019:6;5984:9;:42::i;9551:167::-;2663:6;;-1:-1:-1;;;;;2663:6:0;334:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;9648:1:::1;9637:10;:12;9629:21;;;::::0;::::1;;9678:32;9706:3;9678:23;4749:16;9690:10:::0;9678:11:::1;:23::i;:32::-;9661:14;:49:::0;-1:-1:-1;9551:167:0:o;11940:194::-;12006:14;;-1:-1:-1;;;;;12006:14:0;334:10;-1:-1:-1;;;;;11990:30:0;;11982:39;;;;;;12032:23;12058:24;12076:4;12058:9;:24::i;:::-;12032:50;;12093:33;12110:15;12093:16;:33::i;9830:773::-;2663:6;;-1:-1:-1;;;;;2663:6:0;334:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;9894:11:::1;::::0;-1:-1:-1;;;9894:11:0;::::1;;;9893:12;9885:47;;;::::0;-1:-1:-1;;;9885:47:0;;5463:2:1;9885:47:0::1;::::0;::::1;5445:21:1::0;5502:2;5482:18;;;5475:30;5541:25;5521:18;;;5514:53;5584:18;;9885:47:0::1;5261:347:1::0;9885:47:0::1;10054:15;:34:::0;;-1:-1:-1;;;;;;10054:34:0::1;10000:42;10054:34:::0;;::::1;::::0;;;10099:58:::1;10116:4;10000:42:::0;4749:16:::1;10099:8;:58::i;:::-;10202:16;-1:-1:-1::0;;;;;10202:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10184:56:0::1;;10249:4;10256:16;-1:-1:-1::0;;;;;10256:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10184:96;::::0;-1:-1:-1;;;;;;10184:96:0::1;::::0;;;;;;-1:-1:-1;;;;;6099:15:1;;;10184:96:0::1;::::0;::::1;6081:34:1::0;6151:15;;6131:18;;;6124:43;6016:18;;10184:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10168:13;:112:::0;;-1:-1:-1;;;;;;10168:112:0::1;-1:-1:-1::0;;;;;10168:112:0;;::::1;;::::0;;10291:15:::1;::::0;::::1;:31;10330:21;10361:4;10367:24;10361:4:::0;10367:9:::1;:24::i;:::-;10392:1;10394::::0;10396:7:::1;2574::::0;2601:6;-1:-1:-1;;;;;2601:6:0;;2536:79;10396:7:::1;10291:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10291:129:0;;;-1:-1:-1;;;;;6537:15:1;;;10291:129:0::1;::::0;::::1;6519:34:1::0;6569:18;;;6562:34;;;;6612:18;;;6605:34;;;;6655:18;;;6648:34;6719:15;;;6698:19;;;6691:44;10404:15:0::1;6751:19:1::0;;;6744:35;6453:19;;10291:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10431:11:0::1;:18:::0;;-1:-1:-1;;;;10495:18:0;;-1:-1:-1;;;10495:18:0;;;;10562:15:::1;::::0;10524:71:::1;::::0;-1:-1:-1;;;10524:71:0;;-1:-1:-1;;;;;10562:15:0;;::::1;10524:71;::::0;::::1;7275:51:1::0;-1:-1:-1;;7342:18:1;;;7335:34;10531:13:0;;;-1:-1:-1;10524:29:0::1;::::0;7248:18:1;;10524:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9874:729;9830:773::o:0;10611:164::-;2663:6;;-1:-1:-1;;;;;2663:6:0;334:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;10685:6:::1;10680:88;10701:5;:12;10697:1;:16;10680:88;;;10752:4;10735;:14;10740:5;10746:1;10740:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10735:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10735:14:0;:21;;-1:-1:-1;;10735:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10715:3;::::1;::::0;::::1;:::i;:::-;;;;10680:88;;7078:335:::0;-1:-1:-1;;;;;7171:19:0;;7163:68;;;;-1:-1:-1;;;7163:68:0;;8236:2:1;7163:68:0;;;8218:21:1;8275:2;8255:18;;;8248:30;8314:34;8294:18;;;8287:62;-1:-1:-1;;;8365:18:1;;;8358:34;8409:19;;7163:68:0;8034:400:1;7163:68:0;-1:-1:-1;;;;;7250:21:0;;7242:68;;;;-1:-1:-1;;;7242:68:0;;8641:2:1;7242:68:0;;;8623:21:1;8680:2;8660:18;;;8653:30;8719:34;8699:18;;;8692:62;-1:-1:-1;;;8770:18:1;;;8763:32;8812:19;;7242:68:0;8439:398:1;7242:68:0;-1:-1:-1;;;;;7321:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7373:32;;1549:25:1;;;7373:32:0;;1522:18:1;7373:32:0;;;;;;;7078:335;;;:::o;7421:1334::-;-1:-1:-1;;;;;7509:18:0;;7501:68;;;;-1:-1:-1;;;7501:68:0;;9044:2:1;7501:68:0;;;9026:21:1;9083:2;9063:18;;;9056:30;9122:34;9102:18;;;9095:62;-1:-1:-1;;;9173:18:1;;;9166:35;9218:19;;7501:68:0;8842:401:1;7501:68:0;-1:-1:-1;;;;;7588:16:0;;7580:64;;;;-1:-1:-1;;;7580:64:0;;9450:2:1;7580:64:0;;;9432:21:1;9489:2;9469:18;;;9462:30;9528:34;9508:18;;;9501:62;-1:-1:-1;;;9579:18:1;;;9572:33;9622:19;;7580:64:0;9248:399:1;7580:64:0;7672:1;7663:6;:10;7655:64;;;;-1:-1:-1;;;7655:64:0;;9854:2:1;7655:64:0;;;9836:21:1;9893:2;9873:18;;;9866:30;9932:34;9912:18;;;9905:62;-1:-1:-1;;;9983:18:1;;;9976:39;10032:19;;7655:64:0;9652:405:1;7655:64:0;7742:1;7730:9;:13;;;7754:9;:13;7790:7;2574;2601:6;-1:-1:-1;;;;;2601:6:0;;2536:79;7790:7;-1:-1:-1;;;;;7782:15:0;:4;-1:-1:-1;;;;;7782:15:0;;;:32;;;;-1:-1:-1;2574:7:0;2601:6;-1:-1:-1;;;;;7801:13:0;;;2601:6;;7801:13;;7782:32;7778:927;;;-1:-1:-1;;;;;7840:10:0;;;;;;:4;:10;;;;;;;;7839:11;:24;;;;-1:-1:-1;;;;;;7855:8:0;;;;;;:4;:8;;;;;;;;7854:9;7839:24;7831:33;;;;;;7891:1;7879:9;:13;7919:1;7907:9;:13;7947;;-1:-1:-1;;;;;7939:21:0;;;7947:13;;7939:21;:55;;;;-1:-1:-1;7978:15:0;;-1:-1:-1;;;;;7964:30:0;;;7978:15;;7964:30;;7939:55;:83;;;;-1:-1:-1;;;;;;8000:22:0;;;;;;:18;:22;;;;;;;;7998:24;7939:83;:102;;;;-1:-1:-1;8026:15:0;;-1:-1:-1;;;8026:15:0;;;;7939:102;7935:330;;;8109:12;;8099:6;:22;;8091:60;;;;-1:-1:-1;;;8091:60:0;;10264:2:1;8091:60:0;;;10246:21:1;10303:2;10283:18;;;10276:30;10342:27;10322:18;;;10315:55;10387:18;;8091:60:0;10062:349:1;8091:60:0;8204:14;;8194:6;8178:13;8188:2;8178:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8170:79;;;;-1:-1:-1;;;8170:79:0;;10751:2:1;8170:79:0;;;10733:21:1;10790:2;10770:18;;;10763:30;10829:28;10809:18;;;10802:56;10875:18;;8170:79:0;10549:350:1;8170:79:0;8281:28;8312:24;8330:4;8312:9;:24::i;:::-;8356:6;;8281:55;;-1:-1:-1;;;;8356:6:0;;;;8355:7;:32;;;;-1:-1:-1;8374:13:0;;-1:-1:-1;;;;;8366:21:0;;;8374:13;;8366:21;;8355:32;:47;;;;-1:-1:-1;8391:11:0;;-1:-1:-1;;;8391:11:0;;;;8355:47;:72;;;;;8426:1;8405:20;:22;8355:72;8351:343;;;8448:38;8465:20;8448:16;:38::i;:::-;8534:21;8577:22;;8574:105;;8624:35;8637:21;8624:12;:35::i;:::-;8429:265;8351:343;7816:889;7778:927;8717:30;8732:4;8737:2;8740:6;8717:14;:30::i;:::-;7421:1334;;;:::o;1391:190::-;1477:7;1513:12;1505:6;;;;1497:29;;;;-1:-1:-1;;;1497:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1537:9:0;1549:5;1553:1;1549;:5;:::i;:::-;1537:17;1391:190;-1:-1:-1;;;;;1391:190:0:o;1589:246::-;1647:7;1671:6;1667:47;;-1:-1:-1;1701:1:0;1694:8;;1667:47;1724:9;1736:5;1740:1;1736;:5;:::i;:::-;1724:17;-1:-1:-1;1769:1:0;1760:5;1764:1;1724:17;1760:5;:::i;:::-;:10;1752:56;;;;-1:-1:-1;;;1752:56:0;;11631:2:1;1752:56:0;;;11613:21:1;11670:2;11650:18;;;11643:30;11709:34;11689:18;;;11682:62;-1:-1:-1;;;11760:18:1;;;11753:31;11801:19;;1752:56:0;11429:397:1;1752:56:0;1826:1;1589:246;-1:-1:-1;;;1589:246:0:o;1843:132::-;1901:7;1928:39;1932:1;1935;1928:39;;;;;;;;;;;;;;;;;:3;:39::i;9726:96::-;9783:14;;:31;;-1:-1:-1;;;;;9783:14:0;;;;:31;;;;;9807:6;;9783:14;:31;:14;:31;9807:6;9783:14;:31;;;;;;;;;;;;;;;;;;;6816:254;6883:7;6922;;6911;:18;;6903:73;;;;-1:-1:-1;;;6903:73:0;;12033:2:1;6903:73:0;;;12015:21:1;12072:2;12052:18;;;12045:30;12111:34;12091:18;;;12084:62;-1:-1:-1;;;12162:18:1;;;12155:40;12212:19;;6903:73:0;11831:406:1;6903:73:0;6987:19;7010:10;:8;:10::i;:::-;6987:33;-1:-1:-1;7038:24:0;:7;6987:33;7038:11;:24::i;8763:483::-;4966:6;:13;;-1:-1:-1;;;;4966:13:0;-1:-1:-1;;;4966:13:0;;;8865:16:::1;::::0;;8879:1:::1;8865:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8865:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8865:16:0::1;8841:40;;8910:4;8892;8897:1;8892:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8892:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8936:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8936:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8892:7;;8936:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8926:4;8931:1;8926:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8926:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9001:15:::1;::::0;8969:62:::1;::::0;8986:4:::1;::::0;9001:15:::1;9019:11:::0;8969:8:::1;:62::i;:::-;9042:15;::::0;:196:::1;::::0;-1:-1:-1;;;9042:196:0;;-1:-1:-1;;;;;9042:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9123:11;;9042:15:::1;::::0;9165:4;;9192::::1;::::0;9212:15:::1;::::0;9042:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5002:6:0;:14;;-1:-1:-1;;;;5002:14:0;;;-1:-1:-1;;;;8763:483:0:o;10879:146::-;10973:44;10991:6;10999:9;11010:6;10973:17;:44::i;1983:189::-;2069:7;2104:12;2097:5;2089:28;;;;-1:-1:-1;;;2089:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2128:9:0;2140:5;2144:1;2140;:5;:::i;13597:163::-;13638:7;13659:15;13676;13695:19;:17;:19::i;:::-;13658:56;;-1:-1:-1;13658:56:0;-1:-1:-1;13732:20:0;13658:56;;13732:11;:20::i;:::-;13725:27;;;;13597:163;:::o;11033:487::-;11132:15;11149:23;11174:12;11188:23;11213:12;11227:13;11244:19;11255:7;11244:10;:19::i;:::-;-1:-1:-1;;;;;11292:15:0;;;;;;:7;:15;;;;;;11131:132;;-1:-1:-1;11131:132:0;;-1:-1:-1;11131:132:0;;-1:-1:-1;11131:132:0;-1:-1:-1;11131:132:0;-1:-1:-1;11131:132:0;-1:-1:-1;11292:28:0;;11131:132;11292:19;:28::i;:::-;-1:-1:-1;;;;;11274:15:0;;;;;;;:7;:15;;;;;;:46;;;;11352:18;;;;;;;:39;;11375:15;11352:22;:39::i;:::-;-1:-1:-1;;;;;11331:18:0;;;;;;:7;:18;;;;;:60;11402:16;11412:5;11402:9;:16::i;:::-;11429:23;11441:4;11447;11429:11;:23::i;:::-;11485:9;-1:-1:-1;;;;;11468:44:0;11477:6;-1:-1:-1;;;;;11468:44:0;;11496:15;11468:44;;;;1549:25:1;;1537:2;1522:18;;1403:177;11468:44:0;;;;;;;;11120:400;;;;;;11033:487;;;:::o;13768:256::-;13865:7;;13818;;;;4749:16;13933:20;13865:7;4749:16;13933:11;:20::i;:::-;13923:7;:30;13919:61;;;-1:-1:-1;;13963:7:0;;;4749:16;;-1:-1:-1;13768:256:0;-1:-1:-1;13768:256:0:o;13919:61::-;13999:7;;14008;;-1:-1:-1;13768:256:0;-1:-1:-1;13768:256:0:o;12345:471::-;12404:7;12413;12422;12431;12440;12449;12470:23;12495:12;12509:13;12526:42;12538:7;12547:9;;12558;;12526:11;:42::i;:::-;12469:99;;;;;;12579:19;12602:10;:8;:10::i;:::-;12579:33;;12624:15;12641:23;12666:12;12682:46;12694:7;12703:4;12709:5;12716:11;12682;:46::i;:::-;12623:105;;-1:-1:-1;12623:105:0;-1:-1:-1;12623:105:0;-1:-1:-1;12779:15:0;;-1:-1:-1;12796:4:0;;-1:-1:-1;12802:5:0;;-1:-1:-1;;;;;12345:471:0;;;;;;;:::o;1247:136::-;1305:7;1332:43;1336:1;1339;1332:43;;;;;;;;;;;;;;;;;:3;:43::i;1060:179::-;1118:7;;1150:5;1154:1;1150;:5;:::i;:::-;1138:17;;1179:1;1174;:6;;1166:46;;;;-1:-1:-1;;;1166:46:0;;13429:2:1;1166:46:0;;;13411:21:1;13468:2;13448:18;;;13441:30;13507:29;13487:18;;;13480:57;13554:18;;1166:46:0;13227:351:1;11528:212:0;11581:19;11604:10;:8;:10::i;:::-;11581:33;-1:-1:-1;11625:13:0;11641:22;:5;11581:33;11641:9;:22::i;:::-;11715:4;11699:22;;;;:7;:22;;;;;;11625:38;;-1:-1:-1;11699:33:0;;11625:38;11699:26;:33::i;:::-;11690:4;11674:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11528:212:0:o;11748:147::-;11826:7;;:17;;11838:4;11826:11;:17::i;:::-;11816:7;:27;11867:10;;:20;;11882:4;11867:14;:20::i;:::-;11854:10;:33;-1:-1:-1;;11748:147:0:o;12824:351::-;12917:7;;;;12970:28;12994:3;12970:19;:7;12982:6;12970:11;:19::i;:28::-;12955:43;-1:-1:-1;13009:13:0;13025:29;13050:3;13025:20;:7;13037;13025:11;:20::i;:29::-;13009:45;-1:-1:-1;13065:23:0;13091:28;13009:45;13091:17;:7;13103:4;13091:11;:17::i;:::-;:21;;:28::i;:::-;13065:54;13155:4;;-1:-1:-1;13161:5:0;;-1:-1:-1;12824:351:0;;-1:-1:-1;;;;;12824:351:0:o;13183:409::-;13293:7;;;;13349:24;:7;13361:11;13349;:24::i;:::-;13331:42;-1:-1:-1;13384:12:0;13399:21;:4;13408:11;13399:8;:21::i;:::-;13384:36;-1:-1:-1;13431:13:0;13447:22;:5;13457:11;13447:9;:22::i;:::-;13431:38;-1:-1:-1;13480:23:0;13506:28;13431:38;13506:17;:7;13518:4;13506:11;:17::i;:28::-;13553:7;;;;-1:-1:-1;13579:4:0;;-1:-1:-1;13183:409:0;;-1:-1:-1;;;;;;;13183: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;2046:247::-;2105:6;2158:2;2146:9;2137:7;2133:23;2129:32;2126:52;;;2174:1;2171;2164:12;2126:52;2213:9;2200:23;2232:31;2257:5;2232:31;:::i;2487:118::-;2573:5;2566:13;2559:21;2552:5;2549:32;2539:60;;2595:1;2592;2585:12;2610:241;2666:6;2719:2;2707:9;2698:7;2694:23;2690:32;2687:52;;;2735:1;2732;2725:12;2687:52;2774:9;2761:23;2793:28;2815:5;2793:28;:::i;2856:180::-;2915:6;2968:2;2956:9;2947:7;2943:23;2939:32;2936:52;;;2984:1;2981;2974:12;2936:52;-1:-1:-1;3007:23:1;;2856:180;-1:-1:-1;2856:180:1:o;3249:127::-;3310:10;3305:3;3301:20;3298:1;3291:31;3341:4;3338:1;3331:15;3365:4;3362:1;3355:15;3381:1121;3465:6;3496:2;3539;3527:9;3518:7;3514:23;3510:32;3507:52;;;3555:1;3552;3545:12;3507:52;3595:9;3582:23;3624:18;3665:2;3657:6;3654:14;3651:34;;;3681:1;3678;3671:12;3651:34;3719:6;3708:9;3704:22;3694:32;;3764:7;3757:4;3753:2;3749:13;3745:27;3735:55;;3786:1;3783;3776:12;3735:55;3822:2;3809:16;3844:2;3840;3837:10;3834:36;;;3850:18;;:::i;:::-;3896:2;3893:1;3889:10;3928:2;3922:9;3991:2;3987:7;3982:2;3978;3974:11;3970:25;3962:6;3958:38;4046:6;4034:10;4031:22;4026:2;4014:10;4011:18;4008:46;4005:72;;;4057:18;;:::i;:::-;4093:2;4086:22;4143:18;;;4177:15;;;;-1:-1:-1;4219:11:1;;;4215:20;;;4247:19;;;4244:39;;;4279:1;4276;4269:12;4244:39;4303:11;;;;4323:148;4339:6;4334:3;4331:15;4323:148;;;4405:23;4424:3;4405:23;:::i;:::-;4393:36;;4356:12;;;;4449;;;;4323:148;;;4490:6;3381:1121;-1:-1:-1;;;;;;;;3381:1121:1:o;4507:388::-;4575:6;4583;4636:2;4624:9;4615:7;4611:23;4607:32;4604:52;;;4652:1;4649;4642:12;4604:52;4691:9;4678:23;4710:31;4735:5;4710:31;:::i;:::-;4760:5;-1:-1:-1;4817:2:1;4802:18;;4789:32;4830:33;4789:32;4830:33;:::i;:::-;4882:7;4872:17;;;4507:388;;;;;:::o;4900:356::-;5102:2;5084:21;;;5121:18;;;5114:30;5180:34;5175:2;5160:18;;5153:62;5247:2;5232:18;;4900:356::o;5613:251::-;5683:6;5736:2;5724:9;5715:7;5711:23;5707:32;5704:52;;;5752:1;5749;5742:12;5704:52;5784:9;5778:16;5803:31;5828:5;5803:31;:::i;6790:306::-;6878:6;6886;6894;6947:2;6935:9;6926:7;6922:23;6918:32;6915:52;;;6963:1;6960;6953:12;6915:52;6992:9;6986:16;6976:26;;7042:2;7031:9;7027:18;7021:25;7011:35;;7086:2;7075:9;7071:18;7065:25;7055:35;;6790:306;;;;;:::o;7380:245::-;7447:6;7500:2;7488:9;7479:7;7475:23;7471:32;7468:52;;;7516:1;7513;7506:12;7468:52;7548:9;7542:16;7567:28;7589:5;7567:28;:::i;7630:127::-;7691:10;7686:3;7682:20;7679:1;7672:31;7722:4;7719:1;7712:15;7746:4;7743:1;7736:15;7762:127;7823:10;7818:3;7814:20;7811:1;7804:31;7854:4;7851:1;7844:15;7878:4;7875:1;7868:15;7894:135;7933:3;-1:-1:-1;;7954:17:1;;7951:43;;;7974:18;;:::i;:::-;-1:-1:-1;8021:1:1;8010:13;;7894:135::o;10416:128::-;10456:3;10487:1;10483:6;10480:1;10477:13;10474:39;;;10493:18;;:::i;:::-;-1:-1:-1;10529:9:1;;10416:128::o;10904:125::-;10944:4;10972:1;10969;10966:8;10963:34;;;10977:18;;:::i;:::-;-1:-1:-1;11014:9:1;;10904:125::o;11034:168::-;11074:7;11140:1;11136;11132:6;11128:14;11125:1;11122:21;11117:1;11110:9;11103:17;11099:45;11096:71;;;11147:18;;:::i;:::-;-1:-1:-1;11187:9:1;;11034:168::o;11207:217::-;11247:1;11273;11263:132;;11317:10;11312:3;11308:20;11305:1;11298:31;11352:4;11349:1;11342:15;11380:4;11377:1;11370:15;11263:132;-1:-1:-1;11409:9:1;;11207:217::o;12242:980::-;12504:4;12552:3;12541:9;12537:19;12583:6;12572:9;12565:25;12609:2;12647:6;12642:2;12631:9;12627:18;12620:34;12690:3;12685:2;12674:9;12670:18;12663:31;12714:6;12749;12743:13;12780:6;12772;12765:22;12818:3;12807:9;12803:19;12796:26;;12857:2;12849:6;12845:15;12831:29;;12878:1;12888:195;12902:6;12899:1;12896:13;12888:195;;;12967:13;;-1:-1:-1;;;;;12963:39:1;12951:52;;13058:15;;;;13023:12;;;;12999:1;12917:9;12888:195;;;-1:-1:-1;;;;;;;13139:32:1;;;;13134:2;13119:18;;13112:60;-1:-1:-1;;;13203:3:1;13188:19;13181:35;13100:3;12242:980;-1:-1:-1;;;12242:980:1:o

Swarm Source

ipfs://f1d74d17074fcbec9059fc827f6de7606377a9cfbd5d2bc72585da4ad62bf74c

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.