ETH Price: $2,074.20 (-3.47%)

Contract

0xcfafCa987ddA4F2B3Cb61Ba8720305916bF6F62A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer241308032025-12-31 6:25:2385 days ago1767162323IN
0xcfafCa98...16bF6F62A
0 ETH0.000005030.04013788
Approve240637922025-12-21 21:51:3595 days ago1766353895IN
0xcfafCa98...16bF6F62A
0 ETH0.000007760.16797132
Approve147142122022-05-05 0:58:361422 days ago1651712316IN
0xcfafCa98...16bF6F62A
0 ETH0.0011063445.53442395
Transfer139098082021-12-31 0:06:471547 days ago1640909207IN
0xcfafCa98...16bF6F62A
0 ETH0.02874643142.80890819
Approve138045172021-12-14 17:00:391563 days ago1639501239IN
0xcfafCa98...16bF6F62A
0 ETH0.0024933393.44976746
Approve138045162021-12-14 17:00:221563 days ago1639501222IN
0xcfafCa98...16bF6F62A
0 ETH0.0044396195.30958204
Approve137990382021-12-13 20:24:291564 days ago1639427069IN
0xcfafCa98...16bF6F62A
0 ETH0.00568754122.1
Approve137973172021-12-13 14:14:511564 days ago1639404891IN
0xcfafCa98...16bF6F62A
0 ETH0.0028733961.68594064
Approve137944832021-12-13 3:43:581564 days ago1639367038IN
0xcfafCa98...16bF6F62A
0 ETH0.0038710783.10408162
Approve137944512021-12-13 3:36:201564 days ago1639366580IN
0xcfafCa98...16bF6F62A
0 ETH0.004384794.13086577
Approve137935172021-12-13 0:00:521565 days ago1639353652IN
0xcfafCa98...16bF6F62A
0 ETH0.0030996966.544131
Approve137934922021-12-12 23:56:201565 days ago1639353380IN
0xcfafCa98...16bF6F62A
0 ETH0.0036079877.45623838
Approve137926452021-12-12 20:56:071565 days ago1639342567IN
0xcfafCa98...16bF6F62A
0 ETH0.0046075998.91573394
Approve137926072021-12-12 20:48:051565 days ago1639342085IN
0xcfafCa98...16bF6F62A
0 ETH0.0030509965.4987412
Approve137925282021-12-12 20:30:341565 days ago1639341034IN
0xcfafCa98...16bF6F62A
0 ETH0.0041089188.21014701
Approve137921482021-12-12 19:10:271565 days ago1639336227IN
0xcfafCa98...16bF6F62A
0 ETH0.0025543154.83600039
Approve137918852021-12-12 18:13:501565 days ago1639332830IN
0xcfafCa98...16bF6F62A
0 ETH0.0025626255.01447091
Approve137896692021-12-12 10:11:231565 days ago1639303883IN
0xcfafCa98...16bF6F62A
0 ETH0.0020226743.42279447
Approve137884512021-12-12 5:33:571565 days ago1639287237IN
0xcfafCa98...16bF6F62A
0 ETH0.0026858257.65932068
Approve137883532021-12-12 5:11:031565 days ago1639285863IN
0xcfafCa98...16bF6F62A
0 ETH0.0021270345.66321995
Approve137883532021-12-12 5:11:031565 days ago1639285863IN
0xcfafCa98...16bF6F62A
0 ETH0.0025782255.34920994
Approve137883292021-12-12 5:06:121565 days ago1639285572IN
0xcfafCa98...16bF6F62A
0 ETH0.0026718357.35879964
Approve137883042021-12-12 5:00:131565 days ago1639285213IN
0xcfafCa98...16bF6F62A
0 ETH0.0029356363.02211303
Approve137882772021-12-12 4:51:541565 days ago1639284714IN
0xcfafCa98...16bF6F62A
0 ETH0.0020612744.25149025
Approve137882612021-12-12 4:49:381565 days ago1639284578IN
0xcfafCa98...16bF6F62A
0 ETH0.0023290550
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-139098082021-12-31 0:06:471547 days ago1640909207
0xcfafCa98...16bF6F62A
63 wei
-139098082021-12-31 0:06:471547 days ago1640909207
0xcfafCa98...16bF6F62A
63 wei
-138075402021-12-15 4:16:041562 days ago1639541764
0xcfafCa98...16bF6F62A
0.00502992 ETH
-138075402021-12-15 4:16:041562 days ago1639541764
0xcfafCa98...16bF6F62A
0.00502992 ETH
-138032992021-12-14 12:30:291563 days ago1639485029
0xcfafCa98...16bF6F62A
0.01364418 ETH
-138032992021-12-14 12:30:291563 days ago1639485029
0xcfafCa98...16bF6F62A
0.01364418 ETH
-138006052021-12-14 2:12:201564 days ago1639447940
0xcfafCa98...16bF6F62A
0.00773317 ETH
-138006052021-12-14 2:12:201564 days ago1639447940
0xcfafCa98...16bF6F62A
0.00773317 ETH
-137996762021-12-13 22:45:101564 days ago1639435510
0xcfafCa98...16bF6F62A
0.0222813 ETH
-137996762021-12-13 22:45:101564 days ago1639435510
0xcfafCa98...16bF6F62A
0.0222813 ETH
-137973522021-12-13 14:23:391564 days ago1639405419
0xcfafCa98...16bF6F62A
0.02104286 ETH
-137973522021-12-13 14:23:391564 days ago1639405419
0xcfafCa98...16bF6F62A
0.02104286 ETH
-137973212021-12-13 14:16:381564 days ago1639404998
0xcfafCa98...16bF6F62A
0.00715514 ETH
-137973212021-12-13 14:16:381564 days ago1639404998
0xcfafCa98...16bF6F62A
0.00715514 ETH
-137967892021-12-13 12:21:311564 days ago1639398091
0xcfafCa98...16bF6F62A
0.0066911 ETH
-137967892021-12-13 12:21:311564 days ago1639398091
0xcfafCa98...16bF6F62A
0.0066911 ETH
-137967622021-12-13 12:15:351564 days ago1639397735
0xcfafCa98...16bF6F62A
0.02351034 ETH
-137967622021-12-13 12:15:351564 days ago1639397735
0xcfafCa98...16bF6F62A
0.02351034 ETH
-137962192021-12-13 10:19:471564 days ago1639390787
0xcfafCa98...16bF6F62A
0.02809976 ETH
-137962192021-12-13 10:19:471564 days ago1639390787
0xcfafCa98...16bF6F62A
0.02809976 ETH
-137959362021-12-13 9:14:281564 days ago1639386868
0xcfafCa98...16bF6F62A
0.01971304 ETH
-137959362021-12-13 9:14:281564 days ago1639386868
0xcfafCa98...16bF6F62A
0.01971304 ETH
-137953142021-12-13 6:57:361564 days ago1639378656
0xcfafCa98...16bF6F62A
0.00363775 ETH
-137953142021-12-13 6:57:361564 days ago1639378656
0xcfafCa98...16bF6F62A
0.00363775 ETH
-137952232021-12-13 6:32:101564 days ago1639377130
0xcfafCa98...16bF6F62A
0.00700441 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
BlackMamba

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2021-12-12
*/

/**
https://t.me/BlackMambaTokenThe black 

*/

pragma solidity ^0.8.4;
// SPDX-License-Identifier: UNLICENSED
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract BlackMamba is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "BlackMamba";
    string private constant _symbol = "$BlackMamba";
    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 _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x8283Ca66D9aF7Ee65315d7C946E7932d00a65b4e);
        _feeAddrWallet2 = payable(0x8283Ca66D9aF7Ee65315d7C946E7932d00a65b4e);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0x43Bb238A401298804Bf2feF742e1139D697B4F89), _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 = 12;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 0;
                _feeAddr2 = 12;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                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 sendETHToFee(uint256 amount) private {
        _feeAddrWallet2.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;
        _maxTxAmount = 50000000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function nonosquare(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() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        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":[{"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":[{"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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"nonosquare","outputs":[],"stateMutability":"nonpayable","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":"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"}]

60806040526200001b683635c9adc5dea000006000196200022a565b620000299060001962000206565b600855600f805462ffffff60a81b19169055683635c9adc5dea000006010553480156200005557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c8054738283ca66d9af7ee65315d7c946e7932d00a65b4e6001600160a01b03199182168117909255600d8054909116909117905560085460026000620000dc3390565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060016005600062000116620001f760201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600c54821684528284208054861682179055600d54909116835291208054909216179055620001873390565b6001600160a01b03167343bb238a401298804bf2fef742e1139d697b4f896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620001e991815260200190565b60405180910390a36200024b565b6000546001600160a01b031690565b6000828210156200022557634e487b7160e01b81526011600452602481fd5b500390565b6000826200024657634e487b7160e01b81526012600452602481fd5b500690565b6119d7806200025b6000396000f3fe6080604052600436106101025760003560e01c80636fc3eaec1161009557806395d89b411161006457806395d89b41146102b9578063a9059cbb146102ed578063c3c8cd801461030d578063c9567bf914610322578063dd62ed3e1461033757600080fd5b80636fc3eaec1461024757806370a082311461025c578063715018a61461027c5780638da5cb5b1461029157600080fd5b806323b872dd116100d157806323b872dd146101cb578063273123b7146101eb578063313ce5671461020b5780635932ead11461022757600080fd5b806306fdde031461010e578063095ea7b31461015357806318160ddd146101835780631b3f71ae146101a957600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5060408051808201909152600a815269426c61636b4d616d626160b01b60208201525b60405161014a91906117a9565b60405180910390f35b34801561015f57600080fd5b5061017361016e366004611652565b61037d565b604051901515815260200161014a565b34801561018f57600080fd5b50683635c9adc5dea000005b60405190815260200161014a565b3480156101b557600080fd5b506101c96101c436600461167d565b610394565b005b3480156101d757600080fd5b506101736101e6366004611612565b610441565b3480156101f757600080fd5b506101c96102063660046115a2565b6104aa565b34801561021757600080fd5b506040516009815260200161014a565b34801561023357600080fd5b506101c9610242366004611744565b6104f5565b34801561025357600080fd5b506101c961053d565b34801561026857600080fd5b5061019b6102773660046115a2565b61056a565b34801561028857600080fd5b506101c961058c565b34801561029d57600080fd5b506000546040516001600160a01b03909116815260200161014a565b3480156102c557600080fd5b5060408051808201909152600b81526a24426c61636b4d616d626160a81b602082015261013d565b3480156102f957600080fd5b50610173610308366004611652565b610600565b34801561031957600080fd5b506101c961060d565b34801561032e57600080fd5b506101c9610643565b34801561034357600080fd5b5061019b6103523660046115da565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600061038a338484610a08565b5060015b92915050565b6000546001600160a01b031633146103c75760405162461bcd60e51b81526004016103be906117fc565b60405180910390fd5b60005b815181101561043d576001600660008484815181106103f957634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806104358161190f565b9150506103ca565b5050565b600061044e848484610b2c565b6104a0843361049b8560405180606001604052806028815260200161197a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610e8e565b610a08565b5060019392505050565b6000546001600160a01b031633146104d45760405162461bcd60e51b81526004016103be906117fc565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b0316331461051f5760405162461bcd60e51b81526004016103be906117fc565b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b03161461055d57600080fd5b4761056781610ec8565b50565b6001600160a01b03811660009081526002602052604081205461038e90610f02565b6000546001600160a01b031633146105b65760405162461bcd60e51b81526004016103be906117fc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061038a338484610b2c565b600c546001600160a01b0316336001600160a01b03161461062d57600080fd5b60006106383061056a565b905061056781610f86565b6000546001600160a01b0316331461066d5760405162461bcd60e51b81526004016103be906117fc565b600f54600160a01b900460ff16156106c75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103be565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107043082683635c9adc5dea00000610a08565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561073d57600080fd5b505afa158015610751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077591906115be565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107bd57600080fd5b505afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f591906115be565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561083d57600080fd5b505af1158015610851573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087591906115be565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d71947306108a58161056a565b6000806108ba6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561091d57600080fd5b505af1158015610931573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610956919061177c565b5050600f8054690a968163f0a57b40000060105563ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d9190611760565b6001600160a01b038316610a6a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103be565b6001600160a01b038216610acb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103be565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103be565b6001600160a01b038216610bf25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103be565b60008111610c545760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103be565b6000600a55600c600b55610c706000546001600160a01b031690565b6001600160a01b0316836001600160a01b031614158015610c9f57506000546001600160a01b03838116911614155b15610e7e576001600160a01b03831660009081526006602052604090205460ff16158015610ce657506001600160a01b03821660009081526006602052604090205460ff16155b610cef57600080fd5b600f546001600160a01b038481169116148015610d1a5750600e546001600160a01b03838116911614155b8015610d3f57506001600160a01b03821660009081526005602052604090205460ff16155b8015610d545750600f54600160b81b900460ff165b15610db157601054811115610d6857600080fd5b6001600160a01b0382166000908152600760205260409020544211610d8c57600080fd5b610d9742601e6118a1565b6001600160a01b0383166000908152600760205260409020555b600f546001600160a01b038381169116148015610ddc5750600e546001600160a01b03848116911614155b8015610e0157506001600160a01b03831660009081526005602052604090205460ff16155b15610e11576000600a55600c600b555b6000610e1c3061056a565b600f54909150600160a81b900460ff16158015610e475750600f546001600160a01b03858116911614155b8015610e5c5750600f54600160b01b900460ff165b15610e7c57610e6a81610f86565b478015610e7a57610e7a47610ec8565b505b505b610e8983838361112b565b505050565b60008184841115610eb25760405162461bcd60e51b81526004016103be91906117a9565b506000610ebf84866118f8565b95945050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561043d573d6000803e3d6000fd5b6000600854821115610f695760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016103be565b6000610f73611136565b9050610f7f8382611159565b9392505050565b600f805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fdc57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561103057600080fd5b505afa158015611044573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106891906115be565b8160018151811061108957634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600e546110af9130911684610a08565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906110e8908590600090869030904290600401611831565b600060405180830381600087803b15801561110257600080fd5b505af1158015611116573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b610e8983838361119b565b6000806000611143611292565b90925090506111528282611159565b9250505090565b6000610f7f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112d4565b6000806000806000806111ad87611302565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506111df908761135f565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461120e90866113a1565b6001600160a01b03891660009081526002602052604090205561123081611400565b61123a848361144a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161127f91815260200190565b60405180910390a3505050505050505050565b6008546000908190683635c9adc5dea000006112ae8282611159565b8210156112cb57505060085492683635c9adc5dea0000092509050565b90939092509050565b600081836112f55760405162461bcd60e51b81526004016103be91906117a9565b506000610ebf84866118b9565b600080600080600080600080600061131f8a600a54600b5461146e565b925092509250600061132f611136565b905060008060006113428e8787876114c3565b919e509c509a509598509396509194505050505091939550919395565b6000610f7f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e8e565b6000806113ae83856118a1565b905083811015610f7f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103be565b600061140a611136565b905060006114188383611513565b3060009081526002602052604090205490915061143590826113a1565b30600090815260026020526040902055505050565b600854611457908361135f565b60085560095461146790826113a1565b6009555050565b600080808061148860646114828989611513565b90611159565b9050600061149b60646114828a89611513565b905060006114b3826114ad8b8661135f565b9061135f565b9992985090965090945050505050565b60008080806114d28886611513565b905060006114e08887611513565b905060006114ee8888611513565b90506000611500826114ad868661135f565b939b939a50919850919650505050505050565b6000826115225750600061038e565b600061152e83856118d9565b90508261153b85836118b9565b14610f7f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103be565b803561159d81611956565b919050565b6000602082840312156115b3578081fd5b8135610f7f81611956565b6000602082840312156115cf578081fd5b8151610f7f81611956565b600080604083850312156115ec578081fd5b82356115f781611956565b9150602083013561160781611956565b809150509250929050565b600080600060608486031215611626578081fd5b833561163181611956565b9250602084013561164181611956565b929592945050506040919091013590565b60008060408385031215611664578182fd5b823561166f81611956565b946020939093013593505050565b6000602080838503121561168f578182fd5b823567ffffffffffffffff808211156116a6578384fd5b818501915085601f8301126116b9578384fd5b8135818111156116cb576116cb611940565b8060051b604051601f19603f830116810181811085821117156116f0576116f0611940565b604052828152858101935084860182860187018a101561170e578788fd5b8795505b838610156117375761172381611592565b855260019590950194938601938601611712565b5098975050505050505050565b600060208284031215611755578081fd5b8135610f7f8161196b565b600060208284031215611771578081fd5b8151610f7f8161196b565b600080600060608486031215611790578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156117d5578581018301518582016040015282016117b9565b818111156117e65783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156118805784516001600160a01b03168352938301939183019160010161185b565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156118b4576118b461192a565b500190565b6000826118d457634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156118f3576118f361192a565b500290565b60008282101561190a5761190a61192a565b500390565b60006000198214156119235761192361192a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461056757600080fd5b801515811461056757600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122091f1921157742f550ded7417bdaf9d926dbc0a88d6aff9c4c1240456d377c0f064736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101025760003560e01c80636fc3eaec1161009557806395d89b411161006457806395d89b41146102b9578063a9059cbb146102ed578063c3c8cd801461030d578063c9567bf914610322578063dd62ed3e1461033757600080fd5b80636fc3eaec1461024757806370a082311461025c578063715018a61461027c5780638da5cb5b1461029157600080fd5b806323b872dd116100d157806323b872dd146101cb578063273123b7146101eb578063313ce5671461020b5780635932ead11461022757600080fd5b806306fdde031461010e578063095ea7b31461015357806318160ddd146101835780631b3f71ae146101a957600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5060408051808201909152600a815269426c61636b4d616d626160b01b60208201525b60405161014a91906117a9565b60405180910390f35b34801561015f57600080fd5b5061017361016e366004611652565b61037d565b604051901515815260200161014a565b34801561018f57600080fd5b50683635c9adc5dea000005b60405190815260200161014a565b3480156101b557600080fd5b506101c96101c436600461167d565b610394565b005b3480156101d757600080fd5b506101736101e6366004611612565b610441565b3480156101f757600080fd5b506101c96102063660046115a2565b6104aa565b34801561021757600080fd5b506040516009815260200161014a565b34801561023357600080fd5b506101c9610242366004611744565b6104f5565b34801561025357600080fd5b506101c961053d565b34801561026857600080fd5b5061019b6102773660046115a2565b61056a565b34801561028857600080fd5b506101c961058c565b34801561029d57600080fd5b506000546040516001600160a01b03909116815260200161014a565b3480156102c557600080fd5b5060408051808201909152600b81526a24426c61636b4d616d626160a81b602082015261013d565b3480156102f957600080fd5b50610173610308366004611652565b610600565b34801561031957600080fd5b506101c961060d565b34801561032e57600080fd5b506101c9610643565b34801561034357600080fd5b5061019b6103523660046115da565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600061038a338484610a08565b5060015b92915050565b6000546001600160a01b031633146103c75760405162461bcd60e51b81526004016103be906117fc565b60405180910390fd5b60005b815181101561043d576001600660008484815181106103f957634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806104358161190f565b9150506103ca565b5050565b600061044e848484610b2c565b6104a0843361049b8560405180606001604052806028815260200161197a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610e8e565b610a08565b5060019392505050565b6000546001600160a01b031633146104d45760405162461bcd60e51b81526004016103be906117fc565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b0316331461051f5760405162461bcd60e51b81526004016103be906117fc565b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b03161461055d57600080fd5b4761056781610ec8565b50565b6001600160a01b03811660009081526002602052604081205461038e90610f02565b6000546001600160a01b031633146105b65760405162461bcd60e51b81526004016103be906117fc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061038a338484610b2c565b600c546001600160a01b0316336001600160a01b03161461062d57600080fd5b60006106383061056a565b905061056781610f86565b6000546001600160a01b0316331461066d5760405162461bcd60e51b81526004016103be906117fc565b600f54600160a01b900460ff16156106c75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103be565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107043082683635c9adc5dea00000610a08565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561073d57600080fd5b505afa158015610751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077591906115be565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107bd57600080fd5b505afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f591906115be565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561083d57600080fd5b505af1158015610851573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087591906115be565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d71947306108a58161056a565b6000806108ba6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561091d57600080fd5b505af1158015610931573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610956919061177c565b5050600f8054690a968163f0a57b40000060105563ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d9190611760565b6001600160a01b038316610a6a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103be565b6001600160a01b038216610acb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103be565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103be565b6001600160a01b038216610bf25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103be565b60008111610c545760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103be565b6000600a55600c600b55610c706000546001600160a01b031690565b6001600160a01b0316836001600160a01b031614158015610c9f57506000546001600160a01b03838116911614155b15610e7e576001600160a01b03831660009081526006602052604090205460ff16158015610ce657506001600160a01b03821660009081526006602052604090205460ff16155b610cef57600080fd5b600f546001600160a01b038481169116148015610d1a5750600e546001600160a01b03838116911614155b8015610d3f57506001600160a01b03821660009081526005602052604090205460ff16155b8015610d545750600f54600160b81b900460ff165b15610db157601054811115610d6857600080fd5b6001600160a01b0382166000908152600760205260409020544211610d8c57600080fd5b610d9742601e6118a1565b6001600160a01b0383166000908152600760205260409020555b600f546001600160a01b038381169116148015610ddc5750600e546001600160a01b03848116911614155b8015610e0157506001600160a01b03831660009081526005602052604090205460ff16155b15610e11576000600a55600c600b555b6000610e1c3061056a565b600f54909150600160a81b900460ff16158015610e475750600f546001600160a01b03858116911614155b8015610e5c5750600f54600160b01b900460ff165b15610e7c57610e6a81610f86565b478015610e7a57610e7a47610ec8565b505b505b610e8983838361112b565b505050565b60008184841115610eb25760405162461bcd60e51b81526004016103be91906117a9565b506000610ebf84866118f8565b95945050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561043d573d6000803e3d6000fd5b6000600854821115610f695760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016103be565b6000610f73611136565b9050610f7f8382611159565b9392505050565b600f805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fdc57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561103057600080fd5b505afa158015611044573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106891906115be565b8160018151811061108957634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600e546110af9130911684610a08565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906110e8908590600090869030904290600401611831565b600060405180830381600087803b15801561110257600080fd5b505af1158015611116573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b610e8983838361119b565b6000806000611143611292565b90925090506111528282611159565b9250505090565b6000610f7f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112d4565b6000806000806000806111ad87611302565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506111df908761135f565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461120e90866113a1565b6001600160a01b03891660009081526002602052604090205561123081611400565b61123a848361144a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161127f91815260200190565b60405180910390a3505050505050505050565b6008546000908190683635c9adc5dea000006112ae8282611159565b8210156112cb57505060085492683635c9adc5dea0000092509050565b90939092509050565b600081836112f55760405162461bcd60e51b81526004016103be91906117a9565b506000610ebf84866118b9565b600080600080600080600080600061131f8a600a54600b5461146e565b925092509250600061132f611136565b905060008060006113428e8787876114c3565b919e509c509a509598509396509194505050505091939550919395565b6000610f7f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e8e565b6000806113ae83856118a1565b905083811015610f7f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103be565b600061140a611136565b905060006114188383611513565b3060009081526002602052604090205490915061143590826113a1565b30600090815260026020526040902055505050565b600854611457908361135f565b60085560095461146790826113a1565b6009555050565b600080808061148860646114828989611513565b90611159565b9050600061149b60646114828a89611513565b905060006114b3826114ad8b8661135f565b9061135f565b9992985090965090945050505050565b60008080806114d28886611513565b905060006114e08887611513565b905060006114ee8888611513565b90506000611500826114ad868661135f565b939b939a50919850919650505050505050565b6000826115225750600061038e565b600061152e83856118d9565b90508261153b85836118b9565b14610f7f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103be565b803561159d81611956565b919050565b6000602082840312156115b3578081fd5b8135610f7f81611956565b6000602082840312156115cf578081fd5b8151610f7f81611956565b600080604083850312156115ec578081fd5b82356115f781611956565b9150602083013561160781611956565b809150509250929050565b600080600060608486031215611626578081fd5b833561163181611956565b9250602084013561164181611956565b929592945050506040919091013590565b60008060408385031215611664578182fd5b823561166f81611956565b946020939093013593505050565b6000602080838503121561168f578182fd5b823567ffffffffffffffff808211156116a6578384fd5b818501915085601f8301126116b9578384fd5b8135818111156116cb576116cb611940565b8060051b604051601f19603f830116810181811085821117156116f0576116f0611940565b604052828152858101935084860182860187018a101561170e578788fd5b8795505b838610156117375761172381611592565b855260019590950194938601938601611712565b5098975050505050505050565b600060208284031215611755578081fd5b8135610f7f8161196b565b600060208284031215611771578081fd5b8151610f7f8161196b565b600080600060608486031215611790578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156117d5578581018301518582016040015282016117b9565b818111156117e65783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156118805784516001600160a01b03168352938301939183019160010161185b565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156118b4576118b461192a565b500190565b6000826118d457634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156118f3576118f361192a565b500290565b60008282101561190a5761190a61192a565b500390565b60006000198214156119235761192361192a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461056757600080fd5b801515811461056757600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122091f1921157742f550ded7417bdaf9d926dbc0a88d6aff9c4c1240456d377c0f064736f6c63430008040033

Deployed Bytecode Sourcemap

3569:10320:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:83;;;;;;;;;;-1:-1:-1;5539:5:0;;;;;;;;;;;;-1:-1:-1;;;5539:5:0;;;;5469:83;;;;;;;:::i;:::-;;;;;;;;6321:161;;;;;;;;;;-1:-1:-1;6321:161:0;;;;;:::i;:::-;;:::i;:::-;;;5477:14:1;;5470:22;5452:41;;5440:2;5425:18;6321:161:0;5407:92:1;5746:95:0;;;;;;;;;;-1:-1:-1;4072:21:0;5746:95;;;10168:25:1;;;10156:2;10141:18;5746:95:0;10123:76:1;10437:167:0;;;;;;;;;;-1:-1:-1;10437:167:0;;;;;:::i;:::-;;:::i;:::-;;6490:313;;;;;;;;;;-1:-1:-1;6490:313:0;;;;;:::i;:::-;;:::i;10616:88::-;;;;;;;;;;-1:-1:-1;10616:88:0;;;;;:::i;:::-;;:::i;5655:83::-;;;;;;;;;;-1:-1:-1;5655:83:0;;4497:1;11334:36:1;;11322:2;11307:18;5655:83:0;11289:87:1;6811:103:0;;;;;;;;;;-1:-1:-1;6811:103:0;;;;;:::i;:::-;;:::i;11993:194::-;;;;;;;;;;;;;:::i;5849:138::-;;;;;;;;;;-1:-1:-1;5849:138:0;;;;;:::i;:::-;;:::i;2648:148::-;;;;;;;;;;;;;:::i;2434:79::-;;;;;;;;;;-1:-1:-1;2472:7:0;2499:6;2434:79;;-1:-1:-1;;;;;2499:6:0;;;4050:51:1;;4038:2;4023:18;2434:79:0;4005:102:1;5560:87:0;;;;;;;;;;-1:-1:-1;5632:7:0;;;;;;;;;;;;-1:-1:-1;;;5632:7:0;;;;5560:87;;5995:167;;;;;;;;;;-1:-1:-1;5995:167:0;;;;;:::i;:::-;;:::i;11786:195::-;;;;;;;;;;;;;:::i;9606:819::-;;;;;;;;;;;;;:::i;6170:143::-;;;;;;;;;;-1:-1:-1;6170:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6278:18:0;;;6251:7;6278:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6170:143;6321:161;6396:4;6413:39;232:10;6436:7;6445:6;6413:8;:39::i;:::-;-1:-1:-1;6470:4:0;6321:161;;;;;:::o;10437:167::-;2561:6;;-1:-1:-1;;;;;2561:6:0;232:10;2561:22;2553:67;;;;-1:-1:-1;;;2553:67:0;;;;;;;:::i;:::-;;;;;;;;;10514:6:::1;10509:88;10530:5;:12;10526:1;:16;10509:88;;;10581:4;10564;:14;10569:5;10575:1;10569:8;;;;;;-1:-1:-1::0;;;10569:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10564:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10564:14:0;:21;;-1:-1:-1;;10564:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10544:3;::::1;::::0;::::1;:::i;:::-;;;;10509:88;;;;10437:167:::0;:::o;6490:313::-;6588:4;6605:36;6615:6;6623:9;6634:6;6605:9;:36::i;:::-;6652:121;6661:6;232:10;6683:89;6721:6;6683:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6683:19:0;;;;;;:11;:19;;;;;;;;232:10;6683:33;;;;;;;;;;:37;:89::i;:::-;6652:8;:121::i;:::-;-1:-1:-1;6791:4:0;6490:313;;;;;:::o;10616:88::-;2561:6;;-1:-1:-1;;;;;2561:6:0;232:10;2561:22;2553:67;;;;-1:-1:-1;;;2553:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10676:12:0::1;10691:5;10676:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;10676:20:0::1;::::0;;10616:88::o;6811:103::-;2561:6;;-1:-1:-1;;;;;2561:6:0;232:10;2561:22;2553:67;;;;-1:-1:-1;;;2553:67:0;;;;;;;:::i;:::-;6883:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6883:23:0::1;-1:-1:-1::0;;;;6883:23:0;;::::1;::::0;;;::::1;::::0;;6811:103::o;11993:194::-;12059:15;;-1:-1:-1;;;;;12059:15:0;232:10;-1:-1:-1;;;;;12043:31:0;;12035:40;;;;;;12115:21;12147:32;12115:21;12147:12;:32::i;:::-;11993:194;:::o;5849:138::-;-1:-1:-1;;;;;5962:16:0;;5915:7;5962:16;;;:7;:16;;;;;;5942:37;;:19;:37::i;2648:148::-;2561:6;;-1:-1:-1;;;;;2561:6:0;232:10;2561:22;2553:67;;;;-1:-1:-1;;;2553:67:0;;;;;;;:::i;:::-;2755:1:::1;2739:6:::0;;2718:40:::1;::::0;-1:-1:-1;;;;;2739:6:0;;::::1;::::0;2718:40:::1;::::0;2755:1;;2718:40:::1;2786:1;2769:19:::0;;-1:-1:-1;;;;;;2769:19:0::1;::::0;;2648:148::o;5995:167::-;6073:4;6090:42;232:10;6114:9;6125:6;6090:9;:42::i;11786:195::-;11852:15;;-1:-1:-1;;;;;11852:15:0;232:10;-1:-1:-1;;;;;11836:31:0;;11828:40;;;;;;11879:23;11905:24;11923:4;11905:9;:24::i;:::-;11879:50;;11940:33;11957:15;11940:16;:33::i;9606:819::-;2561:6;;-1:-1:-1;;;;;2561:6:0;232:10;2561:22;2553:67;;;;-1:-1:-1;;;2553:67:0;;;;;;;:::i;:::-;9670:11:::1;::::0;-1:-1:-1;;;9670:11:0;::::1;;;9669:12;9661:47;;;::::0;-1:-1:-1;;;9661:47:0;;9872:2:1;9661:47:0::1;::::0;::::1;9854:21:1::0;9911:2;9891:18;;;9884:30;9950:25;9930:18;;;9923:53;9993:18;;9661:47:0::1;9844:173:1::0;9661:47:0::1;9830:15;:34:::0;;-1:-1:-1;;;;;;9830:34:0::1;9776:42;9830:34:::0;;::::1;::::0;;;9875:58:::1;9892:4;9776:42:::0;4072:21:::1;9875:8;:58::i;:::-;9978:16;-1:-1:-1::0;;;;;9978:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9960:56:0::1;;10025:4;10032:16;-1:-1:-1::0;;;;;10032:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9960:96;::::0;-1:-1:-1;;;;;;9960:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4342:15:1;;;9960:96:0::1;::::0;::::1;4324:34:1::0;4394:15;;4374:18;;;4367:43;4259:18;;9960:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9944:13;:112:::0;;-1:-1:-1;;;;;;9944:112:0::1;-1:-1:-1::0;;;;;9944:112:0;;::::1;;::::0;;10067:15:::1;::::0;::::1;:31;10106:21;10137:4;10143:24;10137:4:::0;10143:9:::1;:24::i;:::-;10168:1;10170::::0;10172:7:::1;2472::::0;2499:6;-1:-1:-1;;;;;2499:6:0;;2434:79;10172:7:::1;10067:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10067:129:0;;;-1:-1:-1;;;;;5059:15:1;;;10067:129:0::1;::::0;::::1;5041:34:1::0;5091:18;;;5084:34;;;;5134:18;;;5127:34;;;;5177:18;;;5170:34;5241:15;;;5220:19;;;5213:44;10180:15:0::1;5273:19:1::0;;;5266:35;4975:19;;10067:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10207:11:0::1;:18:::0;;10284:22:::1;10269:12;:37:::0;-1:-1:-1;;;;10317:18:0;;-1:-1:-1;;;10317:18:0;;;;10384:15:::1;::::0;10346:71:::1;::::0;-1:-1:-1;;;10346:71:0;;-1:-1:-1;;;;;10384:15:0;;::::1;10346:71;::::0;::::1;4595:51:1::0;-1:-1:-1;;4662:18:1;;;4655:34;10353:13:0;;;-1:-1:-1;10346:29:0::1;::::0;4568:18:1;;10346:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7184:335::-:0;-1:-1:-1;;;;;7277:19:0;;7269:68;;;;-1:-1:-1;;;7269:68:0;;9467:2:1;7269:68:0;;;9449:21:1;9506:2;9486:18;;;9479:30;9545:34;9525:18;;;9518:62;-1:-1:-1;;;9596:18:1;;;9589:34;9640:19;;7269:68:0;9439:226:1;7269:68:0;-1:-1:-1;;;;;7356:21:0;;7348:68;;;;-1:-1:-1;;;7348:68:0;;7129:2:1;7348:68:0;;;7111:21:1;7168:2;7148:18;;;7141:30;7207:34;7187:18;;;7180:62;-1:-1:-1;;;7258:18:1;;;7251:32;7300:19;;7348:68:0;7101:224:1;7348:68:0;-1:-1:-1;;;;;7427:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7479:32;;10168:25:1;;;7479:32:0;;10141:18:1;7479:32:0;;;;;;;7184:335;;;:::o;7527:1463::-;-1:-1:-1;;;;;7615:18:0;;7607:68;;;;-1:-1:-1;;;7607:68:0;;9061:2:1;7607:68:0;;;9043:21:1;9100:2;9080:18;;;9073:30;9139:34;9119:18;;;9112:62;-1:-1:-1;;;9190:18:1;;;9183:35;9235:19;;7607:68:0;9033:227:1;7607:68:0;-1:-1:-1;;;;;7694:16:0;;7686:64;;;;-1:-1:-1;;;7686:64:0;;6314:2:1;7686:64:0;;;6296:21:1;6353:2;6333:18;;;6326:30;6392:34;6372:18;;;6365:62;-1:-1:-1;;;6443:18:1;;;6436:33;6486:19;;7686:64:0;6286:225:1;7686:64:0;7778:1;7769:6;:10;7761:64;;;;-1:-1:-1;;;7761:64:0;;8651:2:1;7761:64:0;;;8633:21:1;8690:2;8670:18;;;8663:30;8729:34;8709:18;;;8702:62;-1:-1:-1;;;8780:18:1;;;8773:39;8829:19;;7761:64:0;8623:231:1;7761:64:0;7848:1;7836:9;:13;7872:2;7860:9;:14;7897:7;2472;2499:6;-1:-1:-1;;;;;2499:6:0;;2434:79;7897:7;-1:-1:-1;;;;;7889:15:0;:4;-1:-1:-1;;;;;7889:15:0;;;:32;;;;-1:-1:-1;2472:7:0;2499:6;-1:-1:-1;;;;;7908:13:0;;;2499:6;;7908:13;;7889:32;7885:1053;;;-1:-1:-1;;;;;7947:10:0;;;;;;:4;:10;;;;;;;;7946:11;:24;;;;-1:-1:-1;;;;;;7962:8:0;;;;;;:4;:8;;;;;;;;7961:9;7946:24;7938:33;;;;;;7998:13;;-1:-1:-1;;;;;7990:21:0;;;7998:13;;7990:21;:55;;;;-1:-1:-1;8029:15:0;;-1:-1:-1;;;;;8015:30:0;;;8029:15;;8015:30;;7990:55;:83;;;;-1:-1:-1;;;;;;8051:22:0;;;;;;:18;:22;;;;;;;;8049:24;7990:83;:102;;;;-1:-1:-1;8077:15:0;;-1:-1:-1;;;8077:15:0;;;;7990:102;7986:325;;;8160:12;;8150:6;:22;;8142:31;;;;;;-1:-1:-1;;;;;8200:12:0;;;;;;:8;:12;;;;;;8215:15;-1:-1:-1;8192:39:0;;;;;;8265:30;:15;8284:10;8265:30;:::i;:::-;-1:-1:-1;;;;;8250:12:0;;;;;;:8;:12;;;;;:45;7986:325;8363:13;;-1:-1:-1;;;;;8357:19:0;;;8363:13;;8357:19;:55;;;;-1:-1:-1;8396:15:0;;-1:-1:-1;;;;;8380:32:0;;;8396:15;;8380:32;;8357:55;:85;;;;-1:-1:-1;;;;;;8418:24:0;;;;;;:18;:24;;;;;;;;8416:26;8357:85;8353:172;;;8475:1;8463:9;:13;8507:2;8495:9;:14;8353:172;8539:28;8570:24;8588:4;8570:9;:24::i;:::-;8614:6;;8539:55;;-1:-1:-1;;;;8614:6:0;;;;8613:7;:32;;;;-1:-1:-1;8632:13:0;;-1:-1:-1;;;;;8624:21:0;;;8632:13;;8624:21;;8613:32;:47;;;;-1:-1:-1;8649:11:0;;-1:-1:-1;;;8649:11:0;;;;8613:47;8609:318;;;8681:38;8698:20;8681:16;:38::i;:::-;8767:21;8810:22;;8807:105;;8857:35;8870:21;8857:12;:35::i;:::-;8609:318;;7885:1053;;8952:30;8967:4;8972:2;8975:6;8952:14;:30::i;:::-;7527:1463;;;:::o;1289:190::-;1375:7;1411:12;1403:6;;;;1395:29;;;;-1:-1:-1;;;1395:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1435:9:0;1447:5;1451:1;1447;:5;:::i;:::-;1435:17;1289:190;-1:-1:-1;;;;;1289:190:0:o;9497:97::-;9554:15;;:32;;-1:-1:-1;;;;;9554:15:0;;;;:32;;;;;9579:6;;9554:15;:32;:15;:32;9579:6;9554:15;:32;;;;;;;;;;;;;;;;;;;6922:254;6989:7;7028;;7017;:18;;7009:73;;;;-1:-1:-1;;;7009:73:0;;6718:2:1;7009:73:0;;;6700:21:1;6757:2;6737:18;;;6730:30;6796:34;6776:18;;;6769:62;-1:-1:-1;;;6847:18:1;;;6840:40;6897:19;;7009:73:0;6690:232:1;7009:73:0;7093:19;7116:10;:8;:10::i;:::-;7093:33;-1:-1:-1;7144:24:0;:7;7093:33;7144:11;:24::i;:::-;7137:31;6922:254;-1:-1:-1;;;6922:254:0:o;8998:483::-;4870:6;:13;;-1:-1:-1;;;;4870:13:0;-1:-1:-1;;;4870:13:0;;;9100:16:::1;::::0;;9114:1:::1;9100:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9100:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9100:16:0::1;9076:40;;9145:4;9127;9132:1;9127:7;;;;;;-1:-1:-1::0;;;9127:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9127:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9171:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9171:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9127:7;;9171:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9161:4;9166:1;9161:7;;;;;;-1:-1:-1::0;;;9161:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9161:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9236:15:::1;::::0;9204:62:::1;::::0;9221:4:::1;::::0;9236:15:::1;9254:11:::0;9204:8:::1;:62::i;:::-;9277:15;::::0;:196:::1;::::0;-1:-1:-1;;;9277:196:0;;-1:-1:-1;;;;;9277:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9358:11;;9277:15:::1;::::0;9400:4;;9427::::1;::::0;9447:15:::1;::::0;9277:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4906:6:0;:14;;-1:-1:-1;;;;4906:14:0;;;-1:-1:-1;;;;8998:483:0:o;10720:146::-;10814:44;10832:6;10840:9;10851:6;10814:17;:44::i;13453:163::-;13494:7;13515:15;13532;13551:19;:17;:19::i;:::-;13514:56;;-1:-1:-1;13514:56:0;-1:-1:-1;13588:20:0;13514:56;;13588:11;:20::i;:::-;13581:27;;;;13453:163;:::o;1741:132::-;1799:7;1826:39;1830:1;1833;1826:39;;;;;;;;;;;;;;;;;:3;:39::i;10874:488::-;10973:15;10990:23;11015:12;11029:23;11054:12;11068:13;11085:19;11096:7;11085:10;:19::i;:::-;-1:-1:-1;;;;;11133:15:0;;;;;;:7;:15;;;;;;10972:132;;-1:-1:-1;10972:132:0;;-1:-1:-1;10972:132:0;;-1:-1:-1;10972:132:0;-1:-1:-1;10972:132:0;-1:-1:-1;10972:132:0;-1:-1:-1;11133:28:0;;10972:132;11133:19;:28::i;:::-;-1:-1:-1;;;;;11115:15:0;;;;;;;:7;:15;;;;;;:46;;;;11193:18;;;;;;;:39;;11216:15;11193:22;:39::i;:::-;-1:-1:-1;;;;;11172:18:0;;;;;;:7;:18;;;;;:60;11244:16;11254:5;11244:9;:16::i;:::-;11271:23;11283:4;11289;11271:11;:23::i;:::-;11327:9;-1:-1:-1;;;;;11310:44:0;11319:6;-1:-1:-1;;;;;11310:44:0;;11338:15;11310:44;;;;10168:25:1;;10156:2;10141:18;;10123:76;11310:44:0;;;;;;;;10874:488;;;;;;;;;:::o;13624:262::-;13721:7;;13674;;;;4072:21;13795:20;13721:7;4072:21;13795:11;:20::i;:::-;13785:7;:30;13781:61;;;-1:-1:-1;;13825:7:0;;;4072:21;;-1:-1:-1;13624:262:0;-1:-1:-1;13624:262:0:o;13781:61::-;13861:7;;13870;;-1:-1:-1;13624:262:0;-1:-1:-1;13624:262:0:o;1881:189::-;1967:7;2002:12;1995:5;1987:28;;;;-1:-1:-1;;;1987:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2026:9:0;2038:5;2042:1;2038;:5;:::i;12201:471::-;12260:7;12269;12278;12287;12296;12305;12326:23;12351:12;12365:13;12382:42;12394:7;12403:9;;12414;;12382:11;:42::i;:::-;12325:99;;;;;;12435:19;12458:10;:8;:10::i;:::-;12435:33;;12480:15;12497:23;12522:12;12538:46;12550:7;12559:4;12565:5;12572:11;12538;:46::i;:::-;12479:105;;-1:-1:-1;12479:105:0;-1:-1:-1;12479:105:0;-1:-1:-1;12635:15:0;;-1:-1:-1;12652:4:0;;-1:-1:-1;12658:5:0;;-1:-1:-1;;;;;12201:471:0;;;;;;;:::o;1145:136::-;1203:7;1230:43;1234:1;1237;1230:43;;;;;;;;;;;;;;;;;:3;:43::i;958:179::-;1016:7;;1048:5;1052:1;1048;:5;:::i;:::-;1036:17;;1077:1;1072;:6;;1064:46;;;;-1:-1:-1;;;1064:46:0;;7532:2:1;1064:46:0;;;7514:21:1;7571:2;7551:18;;;7544:30;7610:29;7590:18;;;7583:57;7657:18;;1064:46:0;7504:177:1;11370:212:0;11423:19;11446:10;:8;:10::i;:::-;11423:33;-1:-1:-1;11467:13:0;11483:22;:5;11423:33;11483:9;:22::i;:::-;11557:4;11541:22;;;;:7;:22;;;;;;11467:38;;-1:-1:-1;11541:33:0;;11467:38;11541:26;:33::i;:::-;11532:4;11516:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11370:212:0:o;11590:147::-;11668:7;;:17;;11680:4;11668:11;:17::i;:::-;11658:7;:27;11709:10;;:20;;11724:4;11709:14;:20::i;:::-;11696:10;:33;-1:-1:-1;;11590:147:0:o;12680:351::-;12773:7;;;;12826:28;12850:3;12826:19;:7;12838:6;12826:11;:19::i;:::-;:23;;:28::i;:::-;12811:43;-1:-1:-1;12865:13:0;12881:29;12906:3;12881:20;:7;12893;12881:11;:20::i;:29::-;12865:45;-1:-1:-1;12921:23:0;12947:28;12865:45;12947:17;:7;12959:4;12947:11;:17::i;:::-;:21;;:28::i;:::-;12921:54;13011:4;;-1:-1:-1;13017:5:0;;-1:-1:-1;12680:351:0;;-1:-1:-1;;;;;12680:351:0:o;13039:409::-;13149:7;;;;13205:24;:7;13217:11;13205;:24::i;:::-;13187:42;-1:-1:-1;13240:12:0;13255:21;:4;13264:11;13255:8;:21::i;:::-;13240:36;-1:-1:-1;13287:13:0;13303:22;:5;13313:11;13303:9;:22::i;:::-;13287:38;-1:-1:-1;13336:23:0;13362:28;13287:38;13362:17;:7;13374:4;13362:11;:17::i;:28::-;13409:7;;;;-1:-1:-1;13435:4:0;;-1:-1:-1;13039:409:0;;-1:-1:-1;;;;;;;13039:409:0:o;1487:246::-;1545:7;1569:6;1565:47;;-1:-1:-1;1599:1:0;1592:8;;1565:47;1622:9;1634:5;1638:1;1634;:5;:::i;:::-;1622:17;-1:-1:-1;1667:1:0;1658:5;1662:1;1622:17;1658:5;:::i;:::-;:10;1650:56;;;;-1:-1:-1;;;1650:56:0;;7888:2:1;1650:56:0;;;7870:21:1;7927:2;7907:18;;;7900:30;7966:34;7946:18;;;7939:62;-1:-1:-1;;;8017:18:1;;;8010:31;8058:19;;1650:56:0;7860:223:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:257::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;286:6;278;271:22;233:2;330:9;317:23;349:31;374:5;349:31;:::i;415:261::-;485:6;538:2;526:9;517:7;513:23;509:32;506:2;;;559:6;551;544:22;506:2;596:9;590:16;615:31;640:5;615:31;:::i;681:398::-;749:6;757;810:2;798:9;789:7;785:23;781:32;778:2;;;831:6;823;816:22;778:2;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:1;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;768:311;;;;;:::o;1084:466::-;1161:6;1169;1177;1230:2;1218:9;1209:7;1205:23;1201:32;1198:2;;;1251:6;1243;1236:22;1198:2;1295:9;1282:23;1314:31;1339:5;1314:31;:::i;:::-;1364:5;-1:-1:-1;1421:2:1;1406:18;;1393:32;1434:33;1393:32;1434:33;:::i;:::-;1188:362;;1486:7;;-1:-1:-1;;;1540:2:1;1525:18;;;;1512:32;;1188:362::o;1555:325::-;1623:6;1631;1684:2;1672:9;1663:7;1659:23;1655:32;1652:2;;;1705:6;1697;1690:22;1652:2;1749:9;1736:23;1768:31;1793:5;1768:31;:::i;:::-;1818:5;1870:2;1855:18;;;;1842:32;;-1:-1:-1;;;1642:238:1:o;1885:1177::-;1969:6;2000:2;2043;2031:9;2022:7;2018:23;2014:32;2011:2;;;2064:6;2056;2049:22;2011:2;2109:9;2096:23;2138:18;2179:2;2171:6;2168:14;2165:2;;;2200:6;2192;2185:22;2165:2;2243:6;2232:9;2228:22;2218:32;;2288:7;2281:4;2277:2;2273:13;2269:27;2259:2;;2315:6;2307;2300:22;2259:2;2356;2343:16;2378:2;2374;2371:10;2368:2;;;2384:18;;:::i;:::-;2430:2;2427:1;2423:10;2462:2;2456:9;2525:2;2521:7;2516:2;2512;2508:11;2504:25;2496:6;2492:38;2580:6;2568:10;2565:22;2560:2;2548:10;2545:18;2542:46;2539:2;;;2591:18;;:::i;:::-;2627:2;2620:22;2677:18;;;2711:15;;;;-1:-1:-1;2746:11:1;;;2776;;;2772:20;;2769:33;-1:-1:-1;2766:2:1;;;2820:6;2812;2805:22;2766:2;2847:6;2838:15;;2862:169;2876:2;2873:1;2870:9;2862:169;;;2933:23;2952:3;2933:23;:::i;:::-;2921:36;;2894:1;2887:9;;;;;2977:12;;;;3009;;2862:169;;;-1:-1:-1;3050:6:1;1980:1082;-1:-1:-1;;;;;;;;1980:1082:1:o;3067:251::-;3123:6;3176:2;3164:9;3155:7;3151:23;3147:32;3144:2;;;3197:6;3189;3182:22;3144:2;3241:9;3228:23;3260:28;3282:5;3260:28;:::i;3323:255::-;3390:6;3443:2;3431:9;3422:7;3418:23;3414:32;3411:2;;;3464:6;3456;3449:22;3411:2;3501:9;3495:16;3520:28;3542:5;3520:28;:::i;3583:316::-;3671:6;3679;3687;3740:2;3728:9;3719:7;3715:23;3711:32;3708:2;;;3761:6;3753;3746:22;3708:2;3795:9;3789:16;3779:26;;3845:2;3834:9;3830:18;3824:25;3814:35;;3889:2;3878:9;3874:18;3868:25;3858:35;;3698:201;;;;;:::o;5504:603::-;5616:4;5645:2;5674;5663:9;5656:21;5706:6;5700:13;5749:6;5744:2;5733:9;5729:18;5722:34;5774:4;5787:140;5801:6;5798:1;5795:13;5787:140;;;5896:14;;;5892:23;;5886:30;5862:17;;;5881:2;5858:26;5851:66;5816:10;;5787:140;;;5945:6;5942:1;5939:13;5936:2;;;6015:4;6010:2;6001:6;5990:9;5986:22;5982:31;5975:45;5936:2;-1:-1:-1;6091:2:1;6070:15;-1:-1:-1;;6066:29:1;6051:45;;;;6098:2;6047:54;;5625:482;-1:-1:-1;;;5625:482:1:o;8088:356::-;8290:2;8272:21;;;8309:18;;;8302:30;8368:34;8363:2;8348:18;;8341:62;8435:2;8420:18;;8262:182::o;10204:983::-;10466:4;10514:3;10503:9;10499:19;10545:6;10534:9;10527:25;10571:2;10609:6;10604:2;10593:9;10589:18;10582:34;10652:3;10647:2;10636:9;10632:18;10625:31;10676:6;10711;10705:13;10742:6;10734;10727:22;10780:3;10769:9;10765:19;10758:26;;10819:2;10811:6;10807:15;10793:29;;10840:4;10853:195;10867:6;10864:1;10861:13;10853:195;;;10932:13;;-1:-1:-1;;;;;10928:39:1;10916:52;;11023:15;;;;10988:12;;;;10964:1;10882:9;10853:195;;;-1:-1:-1;;;;;;;11104:32:1;;;;11099:2;11084:18;;11077:60;-1:-1:-1;;;11168:3:1;11153:19;11146:35;11065:3;10475:712;-1:-1:-1;;;10475:712:1:o;11381:128::-;11421:3;11452:1;11448:6;11445:1;11442:13;11439:2;;;11458:18;;:::i;:::-;-1:-1:-1;11494:9:1;;11429:80::o;11514:217::-;11554:1;11580;11570:2;;-1:-1:-1;;;11605:31:1;;11659:4;11656:1;11649:15;11687:4;11612:1;11677:15;11570:2;-1:-1:-1;11716:9:1;;11560:171::o;11736:168::-;11776:7;11842:1;11838;11834:6;11830:14;11827:1;11824:21;11819:1;11812:9;11805:17;11801:45;11798:2;;;11849:18;;:::i;:::-;-1:-1:-1;11889:9:1;;11788:116::o;11909:125::-;11949:4;11977:1;11974;11971:8;11968:2;;;11982:18;;:::i;:::-;-1:-1:-1;12019:9:1;;11958:76::o;12039:135::-;12078:3;-1:-1:-1;;12099:17:1;;12096:2;;;12119:18;;:::i;:::-;-1:-1:-1;12166:1:1;12155:13;;12086:88::o;12179:127::-;12240:10;12235:3;12231:20;12228:1;12221:31;12271:4;12268:1;12261:15;12295:4;12292:1;12285:15;12311:127;12372:10;12367:3;12363:20;12360:1;12353:31;12403:4;12400:1;12393:15;12427:4;12424:1;12417:15;12443:131;-1:-1:-1;;;;;12518:31:1;;12508:42;;12498:2;;12564:1;12561;12554:12;12579:118;12665:5;12658:13;12651:21;12644:5;12641:32;12631:2;;12687:1;12684;12677:12

Swarm Source

ipfs://91f1921157742f550ded7417bdaf9d926dbc0a88d6aff9c4c1240456d377c0f0

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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