ETH Price: $2,608.75 (-0.48%)

Contract

0x50506Cd6692f6CE956740ccb8F760B3663aA3137
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve155583962022-09-18 5:37:23760 days ago1663479443IN
0x50506Cd6...663aA3137
0 ETH0.000114454.71049298
Approve153820672022-08-21 5:18:37788 days ago1661059117IN
0x50506Cd6...663aA3137
0 ETH0.000153313.29130551
Approve153465072022-08-15 14:22:46794 days ago1660573366IN
0x50506Cd6...663aA3137
0 ETH0.0007394615.87478243
Approve153348992022-08-13 18:02:36796 days ago1660413756IN
0x50506Cd6...663aA3137
0 ETH0.0004938910.60283825
Approve153348832022-08-13 17:59:03796 days ago1660413543IN
0x50506Cd6...663aA3137
0 ETH0.000338147.25926889
Transfer153333402022-08-13 12:11:24796 days ago1660392684IN
0x50506Cd6...663aA3137
0 ETH0.001588567.96403977
Transfer153333222022-08-13 12:08:15796 days ago1660392495IN
0x50506Cd6...663aA3137
0 ETH0.0027819213.63978548
Approve153329332022-08-13 10:45:05796 days ago1660387505IN
0x50506Cd6...663aA3137
0 ETH0.000400048.58813076
Approve153322522022-08-13 8:02:15796 days ago1660377735IN
0x50506Cd6...663aA3137
0 ETH0.000450829.67822168
Approve153318602022-08-13 6:38:18796 days ago1660372698IN
0x50506Cd6...663aA3137
0 ETH0.000458039.83304029
Approve153312902022-08-13 4:28:02796 days ago1660364882IN
0x50506Cd6...663aA3137
0 ETH0.0011441524.56261186
Approve153310752022-08-13 3:40:33796 days ago1660362033IN
0x50506Cd6...663aA3137
0 ETH0.0004864810.44393212
Approve153309632022-08-13 3:16:44796 days ago1660360604IN
0x50506Cd6...663aA3137
0 ETH0.000415048.91014254
Approve153309562022-08-13 3:15:13796 days ago1660360513IN
0x50506Cd6...663aA3137
0 ETH0.000346267.43356796
Approve153309502022-08-13 3:13:24796 days ago1660360404IN
0x50506Cd6...663aA3137
0 ETH0.000314976.76184922
Approve153309212022-08-13 3:07:49796 days ago1660360069IN
0x50506Cd6...663aA3137
0 ETH0.000365337.84307716
Approve153309132022-08-13 3:06:20796 days ago1660359980IN
0x50506Cd6...663aA3137
0 ETH0.000338797.273291
Approve153309012022-08-13 3:05:01796 days ago1660359901IN
0x50506Cd6...663aA3137
0 ETH0.000457969.83156382
Approve153308932022-08-13 3:03:35796 days ago1660359815IN
0x50506Cd6...663aA3137
0 ETH0.0005811612.47652688
Approve153308682022-08-13 2:56:55796 days ago1660359415IN
0x50506Cd6...663aA3137
0 ETH0.0006064613.01962979
Approve153308482022-08-13 2:52:37796 days ago1660359157IN
0x50506Cd6...663aA3137
0 ETH0.0006638914.25247141
Approve153308472022-08-13 2:52:17796 days ago1660359137IN
0x50506Cd6...663aA3137
0 ETH0.000729515.66097497
Approve153308352022-08-13 2:48:26796 days ago1660358906IN
0x50506Cd6...663aA3137
0 ETH0.0007128715.30388438
Approve153308052022-08-13 2:39:48796 days ago1660358388IN
0x50506Cd6...663aA3137
0 ETH0.000448359.6252527
Approve153307912022-08-13 2:36:59796 days ago1660358219IN
0x50506Cd6...663aA3137
0 ETH0.0004696410.08242097
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
153820722022-08-21 5:19:48788 days ago1661059188
0x50506Cd6...663aA3137
0.00417955 ETH
153820722022-08-21 5:19:48788 days ago1661059188
0x50506Cd6...663aA3137
0.00417955 ETH
153480802022-08-15 20:18:03794 days ago1660594683
0x50506Cd6...663aA3137
0.00814342 ETH
153480802022-08-15 20:18:03794 days ago1660594683
0x50506Cd6...663aA3137
0.00814342 ETH
153465142022-08-15 14:24:49794 days ago1660573489
0x50506Cd6...663aA3137
0.00305475 ETH
153465142022-08-15 14:24:49794 days ago1660573489
0x50506Cd6...663aA3137
0.00305475 ETH
153356502022-08-13 20:57:31796 days ago1660424251
0x50506Cd6...663aA3137
0.00161332 ETH
153356502022-08-13 20:57:31796 days ago1660424251
0x50506Cd6...663aA3137
0.00161332 ETH
153349012022-08-13 18:03:25796 days ago1660413805
0x50506Cd6...663aA3137
0.00300756 ETH
153349012022-08-13 18:03:25796 days ago1660413805
0x50506Cd6...663aA3137
0.00300756 ETH
153348852022-08-13 17:59:13796 days ago1660413553
0x50506Cd6...663aA3137
0.00096599 ETH
153348852022-08-13 17:59:13796 days ago1660413553
0x50506Cd6...663aA3137
0.00096599 ETH
153347512022-08-13 17:34:43796 days ago1660412083
0x50506Cd6...663aA3137
0.00354088 ETH
153347512022-08-13 17:34:43796 days ago1660412083
0x50506Cd6...663aA3137
0.00354088 ETH
153342162022-08-13 15:32:56796 days ago1660404776
0x50506Cd6...663aA3137
0.0068245 ETH
153342162022-08-13 15:32:56796 days ago1660404776
0x50506Cd6...663aA3137
0.0068245 ETH
153333762022-08-13 12:20:46796 days ago1660393246
0x50506Cd6...663aA3137
0.00715009 ETH
153333762022-08-13 12:20:46796 days ago1660393246
0x50506Cd6...663aA3137
0.00715009 ETH
153333442022-08-13 12:12:54796 days ago1660392774
0x50506Cd6...663aA3137
0.00498595 ETH
153333442022-08-13 12:12:54796 days ago1660392774
0x50506Cd6...663aA3137
0.00498595 ETH
153333402022-08-13 12:11:24796 days ago1660392684
0x50506Cd6...663aA3137
0.00529186 ETH
153333402022-08-13 12:11:24796 days ago1660392684
0x50506Cd6...663aA3137
0.00529186 ETH
153333292022-08-13 12:09:19796 days ago1660392559
0x50506Cd6...663aA3137
0.00582725 ETH
153333292022-08-13 12:09:19796 days ago1660392559
0x50506Cd6...663aA3137
0.00582725 ETH
153333222022-08-13 12:08:15796 days ago1660392495
0x50506Cd6...663aA3137
0.00089047 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PulseGrow

Compiler Version
v0.8.15+commit.e14f2714

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-13
*/

/*


Tokenomics
Total supply: 1,000,000,000
Max wallet: 2%
Max tx: 2%
Tax: 2%


//Telegram: https://t.me/PulseGrow
//Twitter: https://twitter.com/PulseGrow

*/



pragma solidity ^0.8.7;
// 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 PulseGrow 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 = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet;
    
    string private constant _name = "Pulse Grow";
    string private constant _symbol = "PLSG";
    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;
    uint256 private _maxWalletSize = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(0x4170B4B0D3972342A6c68948392413559558495a);
        _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 = 7;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 0;
                _feeAddr2 = 7;
            }
            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 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;
        _maxTxAmount = _tTotal.mul(2).div(100);
        _maxWalletSize = _tTotal.mul(2).div(100);
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function addbot(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function 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

[{"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":"bots_","type":"address[]"}],"name":"addbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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"}]

60806040526200001a670de0b6b3a7640000600019620001d3565b6200002890600019620001f6565b600855600e805462ffffff60a81b19169055670de0b6b3a7640000600f8190556010553480156200005857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031916734170b4b0d3972342a6c68948392413559558495a17905560085460026000620000cf3390565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060016005600062000109620001c460201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600c54909116835291208054909216179055620001683390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620001b691815260200190565b60405180910390a36200021c565b6000546001600160a01b031690565b600082620001f157634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156200021757634e487b7160e01b600052601160045260246000fd5b500390565b611bbd806200022c6000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a0578063b87f137a11610064578063b87f137a1461033b578063c3c8cd801461035b578063c9567bf914610370578063ccfee5d614610385578063dd62ed3e146103a557600080fd5b8063715018a61461029c578063751039fc146102b15780638da5cb5b146102c657806395d89b41146102ee578063a9059cbb1461031b57600080fd5b8063313ce567116100e7578063313ce5671461020b5780635932ead114610227578063677daa57146102475780636fc3eaec1461026757806370a082311461027c57600080fd5b806306fdde031461012f578063095ea7b31461017457806318160ddd146101a457806323b872dd146101c9578063273123b7146101e957600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600a81526950756c73652047726f7760b01b60208201525b60405161016b9190611740565b60405180910390f35b34801561018057600080fd5b5061019461018f3660046117ba565b6103eb565b604051901515815260200161016b565b3480156101b057600080fd5b50670de0b6b3a76400005b60405190815260200161016b565b3480156101d557600080fd5b506101946101e43660046117e6565b610402565b3480156101f557600080fd5b50610209610204366004611827565b61046b565b005b34801561021757600080fd5b506040516009815260200161016b565b34801561023357600080fd5b50610209610242366004611852565b6104bf565b34801561025357600080fd5b5061020961026236600461186f565b610507565b34801561027357600080fd5b50610209610561565b34801561028857600080fd5b506101bb610297366004611827565b61058e565b3480156102a857600080fd5b506102096105b0565b3480156102bd57600080fd5b50610209610624565b3480156102d257600080fd5b506000546040516001600160a01b03909116815260200161016b565b3480156102fa57600080fd5b50604080518082019091526004815263504c534760e01b602082015261015e565b34801561032757600080fd5b506101946103363660046117ba565b610661565b34801561034757600080fd5b5061020961035636600461186f565b61066e565b34801561036757600080fd5b506102096106c2565b34801561037c57600080fd5b506102096106f8565b34801561039157600080fd5b506102096103a036600461189e565b610aac565b3480156103b157600080fd5b506101bb6103c0366004611963565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103f8338484610b3e565b5060015b92915050565b600061040f848484610c62565b610461843361045c85604051806060016040528060288152602001611b60602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061106c565b610b3e565b5060019392505050565b6000546001600160a01b0316331461049e5760405162461bcd60e51b81526004016104959061199c565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104e95760405162461bcd60e51b81526004016104959061199c565b600e8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b031633146105315760405162461bcd60e51b81526004016104959061199c565b6000811161053e57600080fd5b61055b6064610555670de0b6b3a7640000846110a6565b9061112f565b600f5550565b600c546001600160a01b0316336001600160a01b03161461058157600080fd5b4761058b81611171565b50565b6001600160a01b0381166000908152600260205260408120546103fc906111ab565b6000546001600160a01b031633146105da5760405162461bcd60e51b81526004016104959061199c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461064e5760405162461bcd60e51b81526004016104959061199c565b670de0b6b3a7640000600f819055601055565b60006103f8338484610c62565b6000546001600160a01b031633146106985760405162461bcd60e51b81526004016104959061199c565b600081116106a557600080fd5b6106bc6064610555670de0b6b3a7640000846110a6565b60105550565b600c546001600160a01b0316336001600160a01b0316146106e257600080fd5b60006106ed3061058e565b905061058b81611228565b6000546001600160a01b031633146107225760405162461bcd60e51b81526004016104959061199c565b600e54600160a01b900460ff161561077c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610495565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107b83082670de0b6b3a7640000610b3e565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906119d1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610867573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088b91906119d1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fc91906119d1565b600e80546001600160a01b0319166001600160a01b03928316179055600d541663f305d719473061092c8161058e565b6000806109416000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109a9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109ce91906119ee565b5050600e805461ffff60b01b191661010160b01b179055506109fe6064610555670de0b6b3a764000060026110a6565b600f55610a196064610555670de0b6b3a764000060026110a6565b601055600e8054600160a01b60ff60a01b19821617909155600d5460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015610a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa89190611a1c565b5050565b6000546001600160a01b03163314610ad65760405162461bcd60e51b81526004016104959061199c565b60005b8151811015610aa857600160066000848481518110610afa57610afa611a39565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b3681611a65565b915050610ad9565b6001600160a01b038316610ba05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610495565b6001600160a01b038216610c015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610495565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cc65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610495565b6001600160a01b038216610d285760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610495565b60008111610d8a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610495565b6000600a556007600b55610da66000546001600160a01b031690565b6001600160a01b0316836001600160a01b031614158015610dd557506000546001600160a01b03838116911614155b1561105c576001600160a01b03831660009081526006602052604090205460ff16158015610e1c57506001600160a01b03821660009081526006602052604090205460ff16155b610e2557600080fd5b600e546001600160a01b038481169116148015610e505750600d546001600160a01b03838116911614155b8015610e7557506001600160a01b03821660009081526005602052604090205460ff16155b8015610e8a5750600e54600160b81b900460ff165b15610f8f57600f54811115610ee15760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610495565b60105481610eee8461058e565b610ef89190611a7e565b1115610f465760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610495565b6001600160a01b0382166000908152600760205260409020544211610f6a57600080fd5b610f7542601e611a7e565b6001600160a01b0383166000908152600760205260409020555b600e546001600160a01b038381169116148015610fba5750600d546001600160a01b03848116911614155b8015610fdf57506001600160a01b03831660009081526005602052604090205460ff16155b15610fef576000600a556007600b555b6000610ffa3061058e565b600e54909150600160a81b900460ff161580156110255750600e546001600160a01b03858116911614155b801561103a5750600e54600160b01b900460ff165b1561105a5761104881611228565b4780156110585761105847611171565b505b505b6110678383836113a2565b505050565b600081848411156110905760405162461bcd60e51b81526004016104959190611740565b50600061109d8486611a96565b95945050505050565b6000826000036110b8575060006103fc565b60006110c48385611aad565b9050826110d18583611acc565b146111285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610495565b9392505050565b600061112883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113ad565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610aa8573d6000803e3d6000fd5b60006008548211156112125760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610495565b600061121c6113db565b9050611128838261112f565b600e805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061127057611270611a39565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed91906119d1565b8160018151811061130057611300611a39565b6001600160a01b039283166020918202929092010152600d546113269130911684610b3e565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061135f908590600090869030904290600401611aee565b600060405180830381600087803b15801561137957600080fd5b505af115801561138d573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b6110678383836113fe565b600081836113ce5760405162461bcd60e51b81526004016104959190611740565b50600061109d8486611acc565b60008060006113e86114f5565b90925090506113f7828261112f565b9250505090565b60008060008060008061141087611535565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506114429087611592565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461147190866115d4565b6001600160a01b03891660009081526002602052604090205561149381611633565b61149d848361167d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114e291815260200190565b60405180910390a3505050505050505050565b6008546000908190670de0b6b3a7640000611510828261112f565b82101561152c57505060085492670de0b6b3a764000092509050565b90939092509050565b60008060008060008060008060006115528a600a54600b546116a1565b92509250925060006115626113db565b905060008060006115758e8787876116f0565b919e509c509a509598509396509194505050505091939550919395565b600061112883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061106c565b6000806115e18385611a7e565b9050838110156111285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610495565b600061163d6113db565b9050600061164b83836110a6565b3060009081526002602052604090205490915061166890826115d4565b30600090815260026020526040902055505050565b60085461168a9083611592565b60085560095461169a90826115d4565b6009555050565b60008080806116b5606461055589896110a6565b905060006116c860646105558a896110a6565b905060006116e0826116da8b86611592565b90611592565b9992985090965090945050505050565b60008080806116ff88866110a6565b9050600061170d88876110a6565b9050600061171b88886110a6565b9050600061172d826116da8686611592565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561176d57858101830151858201604001528201611751565b8181111561177f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461058b57600080fd5b80356117b581611795565b919050565b600080604083850312156117cd57600080fd5b82356117d881611795565b946020939093013593505050565b6000806000606084860312156117fb57600080fd5b833561180681611795565b9250602084013561181681611795565b929592945050506040919091013590565b60006020828403121561183957600080fd5b813561112881611795565b801515811461058b57600080fd5b60006020828403121561186457600080fd5b813561112881611844565b60006020828403121561188157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156118b157600080fd5b823567ffffffffffffffff808211156118c957600080fd5b818501915085601f8301126118dd57600080fd5b8135818111156118ef576118ef611888565b8060051b604051601f19603f8301168101818110858211171561191457611914611888565b60405291825284820192508381018501918883111561193257600080fd5b938501935b8285101561195757611948856117aa565b84529385019392850192611937565b98975050505050505050565b6000806040838503121561197657600080fd5b823561198181611795565b9150602083013561199181611795565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119e357600080fd5b815161112881611795565b600080600060608486031215611a0357600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a2e57600080fd5b815161112881611844565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611a7757611a77611a4f565b5060010190565b60008219821115611a9157611a91611a4f565b500190565b600082821015611aa857611aa8611a4f565b500390565b6000816000190483118215151615611ac757611ac7611a4f565b500290565b600082611ae957634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b3e5784516001600160a01b031683529383019391830191600101611b19565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209b203005f99ea930c620cb9de0749ab4159023715947843aa53a7ec2db1f086364736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063715018a6116100a0578063b87f137a11610064578063b87f137a1461033b578063c3c8cd801461035b578063c9567bf914610370578063ccfee5d614610385578063dd62ed3e146103a557600080fd5b8063715018a61461029c578063751039fc146102b15780638da5cb5b146102c657806395d89b41146102ee578063a9059cbb1461031b57600080fd5b8063313ce567116100e7578063313ce5671461020b5780635932ead114610227578063677daa57146102475780636fc3eaec1461026757806370a082311461027c57600080fd5b806306fdde031461012f578063095ea7b31461017457806318160ddd146101a457806323b872dd146101c9578063273123b7146101e957600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600a81526950756c73652047726f7760b01b60208201525b60405161016b9190611740565b60405180910390f35b34801561018057600080fd5b5061019461018f3660046117ba565b6103eb565b604051901515815260200161016b565b3480156101b057600080fd5b50670de0b6b3a76400005b60405190815260200161016b565b3480156101d557600080fd5b506101946101e43660046117e6565b610402565b3480156101f557600080fd5b50610209610204366004611827565b61046b565b005b34801561021757600080fd5b506040516009815260200161016b565b34801561023357600080fd5b50610209610242366004611852565b6104bf565b34801561025357600080fd5b5061020961026236600461186f565b610507565b34801561027357600080fd5b50610209610561565b34801561028857600080fd5b506101bb610297366004611827565b61058e565b3480156102a857600080fd5b506102096105b0565b3480156102bd57600080fd5b50610209610624565b3480156102d257600080fd5b506000546040516001600160a01b03909116815260200161016b565b3480156102fa57600080fd5b50604080518082019091526004815263504c534760e01b602082015261015e565b34801561032757600080fd5b506101946103363660046117ba565b610661565b34801561034757600080fd5b5061020961035636600461186f565b61066e565b34801561036757600080fd5b506102096106c2565b34801561037c57600080fd5b506102096106f8565b34801561039157600080fd5b506102096103a036600461189e565b610aac565b3480156103b157600080fd5b506101bb6103c0366004611963565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103f8338484610b3e565b5060015b92915050565b600061040f848484610c62565b610461843361045c85604051806060016040528060288152602001611b60602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061106c565b610b3e565b5060019392505050565b6000546001600160a01b0316331461049e5760405162461bcd60e51b81526004016104959061199c565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104e95760405162461bcd60e51b81526004016104959061199c565b600e8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b031633146105315760405162461bcd60e51b81526004016104959061199c565b6000811161053e57600080fd5b61055b6064610555670de0b6b3a7640000846110a6565b9061112f565b600f5550565b600c546001600160a01b0316336001600160a01b03161461058157600080fd5b4761058b81611171565b50565b6001600160a01b0381166000908152600260205260408120546103fc906111ab565b6000546001600160a01b031633146105da5760405162461bcd60e51b81526004016104959061199c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461064e5760405162461bcd60e51b81526004016104959061199c565b670de0b6b3a7640000600f819055601055565b60006103f8338484610c62565b6000546001600160a01b031633146106985760405162461bcd60e51b81526004016104959061199c565b600081116106a557600080fd5b6106bc6064610555670de0b6b3a7640000846110a6565b60105550565b600c546001600160a01b0316336001600160a01b0316146106e257600080fd5b60006106ed3061058e565b905061058b81611228565b6000546001600160a01b031633146107225760405162461bcd60e51b81526004016104959061199c565b600e54600160a01b900460ff161561077c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610495565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107b83082670de0b6b3a7640000610b3e565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906119d1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610867573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088b91906119d1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fc91906119d1565b600e80546001600160a01b0319166001600160a01b03928316179055600d541663f305d719473061092c8161058e565b6000806109416000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109a9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109ce91906119ee565b5050600e805461ffff60b01b191661010160b01b179055506109fe6064610555670de0b6b3a764000060026110a6565b600f55610a196064610555670de0b6b3a764000060026110a6565b601055600e8054600160a01b60ff60a01b19821617909155600d5460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015610a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa89190611a1c565b5050565b6000546001600160a01b03163314610ad65760405162461bcd60e51b81526004016104959061199c565b60005b8151811015610aa857600160066000848481518110610afa57610afa611a39565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b3681611a65565b915050610ad9565b6001600160a01b038316610ba05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610495565b6001600160a01b038216610c015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610495565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cc65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610495565b6001600160a01b038216610d285760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610495565b60008111610d8a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610495565b6000600a556007600b55610da66000546001600160a01b031690565b6001600160a01b0316836001600160a01b031614158015610dd557506000546001600160a01b03838116911614155b1561105c576001600160a01b03831660009081526006602052604090205460ff16158015610e1c57506001600160a01b03821660009081526006602052604090205460ff16155b610e2557600080fd5b600e546001600160a01b038481169116148015610e505750600d546001600160a01b03838116911614155b8015610e7557506001600160a01b03821660009081526005602052604090205460ff16155b8015610e8a5750600e54600160b81b900460ff165b15610f8f57600f54811115610ee15760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610495565b60105481610eee8461058e565b610ef89190611a7e565b1115610f465760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610495565b6001600160a01b0382166000908152600760205260409020544211610f6a57600080fd5b610f7542601e611a7e565b6001600160a01b0383166000908152600760205260409020555b600e546001600160a01b038381169116148015610fba5750600d546001600160a01b03848116911614155b8015610fdf57506001600160a01b03831660009081526005602052604090205460ff16155b15610fef576000600a556007600b555b6000610ffa3061058e565b600e54909150600160a81b900460ff161580156110255750600e546001600160a01b03858116911614155b801561103a5750600e54600160b01b900460ff165b1561105a5761104881611228565b4780156110585761105847611171565b505b505b6110678383836113a2565b505050565b600081848411156110905760405162461bcd60e51b81526004016104959190611740565b50600061109d8486611a96565b95945050505050565b6000826000036110b8575060006103fc565b60006110c48385611aad565b9050826110d18583611acc565b146111285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610495565b9392505050565b600061112883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113ad565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610aa8573d6000803e3d6000fd5b60006008548211156112125760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610495565b600061121c6113db565b9050611128838261112f565b600e805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061127057611270611a39565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed91906119d1565b8160018151811061130057611300611a39565b6001600160a01b039283166020918202929092010152600d546113269130911684610b3e565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061135f908590600090869030904290600401611aee565b600060405180830381600087803b15801561137957600080fd5b505af115801561138d573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b6110678383836113fe565b600081836113ce5760405162461bcd60e51b81526004016104959190611740565b50600061109d8486611acc565b60008060006113e86114f5565b90925090506113f7828261112f565b9250505090565b60008060008060008061141087611535565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506114429087611592565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461147190866115d4565b6001600160a01b03891660009081526002602052604090205561149381611633565b61149d848361167d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114e291815260200190565b60405180910390a3505050505050505050565b6008546000908190670de0b6b3a7640000611510828261112f565b82101561152c57505060085492670de0b6b3a764000092509050565b90939092509050565b60008060008060008060008060006115528a600a54600b546116a1565b92509250925060006115626113db565b905060008060006115758e8787876116f0565b919e509c509a509598509396509194505050505091939550919395565b600061112883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061106c565b6000806115e18385611a7e565b9050838110156111285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610495565b600061163d6113db565b9050600061164b83836110a6565b3060009081526002602052604090205490915061166890826115d4565b30600090815260026020526040902055505050565b60085461168a9083611592565b60085560095461169a90826115d4565b6009555050565b60008080806116b5606461055589896110a6565b905060006116c860646105558a896110a6565b905060006116e0826116da8b86611592565b90611592565b9992985090965090945050505050565b60008080806116ff88866110a6565b9050600061170d88876110a6565b9050600061171b88886110a6565b9050600061172d826116da8686611592565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561176d57858101830151858201604001528201611751565b8181111561177f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461058b57600080fd5b80356117b581611795565b919050565b600080604083850312156117cd57600080fd5b82356117d881611795565b946020939093013593505050565b6000806000606084860312156117fb57600080fd5b833561180681611795565b9250602084013561181681611795565b929592945050506040919091013590565b60006020828403121561183957600080fd5b813561112881611795565b801515811461058b57600080fd5b60006020828403121561186457600080fd5b813561112881611844565b60006020828403121561188157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156118b157600080fd5b823567ffffffffffffffff808211156118c957600080fd5b818501915085601f8301126118dd57600080fd5b8135818111156118ef576118ef611888565b8060051b604051601f19603f8301168101818110858211171561191457611914611888565b60405291825284820192508381018501918883111561193257600080fd5b938501935b8285101561195757611948856117aa565b84529385019392850192611937565b98975050505050505050565b6000806040838503121561197657600080fd5b823561198181611795565b9150602083013561199181611795565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119e357600080fd5b815161112881611795565b600080600060608486031215611a0357600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a2e57600080fd5b815161112881611844565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611a7757611a77611a4f565b5060010190565b60008219821115611a9157611a91611a4f565b500190565b600082821015611aa857611aa8611a4f565b500390565b6000816000190483118215151615611ac757611ac7611a4f565b500290565b600082611ae957634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b3e5784516001600160a01b031683529383019391830191600101611b19565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209b203005f99ea930c620cb9de0749ab4159023715947843aa53a7ec2db1f086364736f6c634300080f0033

Deployed Bytecode Sourcemap

3695:10775:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5410:83;;;;;;;;;;-1:-1:-1;5480:5:0;;;;;;;;;;;;-1:-1:-1;;;5480:5:0;;;;5410:83;;;;;;;:::i;:::-;;;;;;;;6262:161;;;;;;;;;;-1:-1:-1;6262:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;6262:161:0;1211:187:1;5687:95:0;;;;;;;;;;-1:-1:-1;4197:18:0;5687:95;;;1549:25:1;;;1537:2;1522:18;5687:95:0;1403:177:1;6431:313:0;;;;;;;;;;-1:-1:-1;6431:313:0;;;;;:::i;:::-;;:::i;11199:88::-;;;;;;;;;;-1:-1:-1;11199:88:0;;;;;:::i;:::-;;:::i;:::-;;5596:83;;;;;;;;;;-1:-1:-1;5596:83:0;;4565:1;2440:36:1;;2428:2;2413:18;5596:83:0;2298:184:1;6752:103:0;;;;;;;;;;-1:-1:-1;6752:103:0;;;;;:::i;:::-;;:::i;9681:163::-;;;;;;;;;;-1:-1:-1;9681:163:0;;;;;:::i;:::-;;:::i;12575:193::-;;;;;;;;;;;;;:::i;5790:138::-;;;;;;;;;;-1:-1:-1;5790:138:0;;;;;:::i;:::-;;:::i;2774:148::-;;;;;;;;;;;;;:::i;9555:118::-;;;;;;;;;;;;;:::i;2560:79::-;;;;;;;;;;-1:-1:-1;2598:7:0;2625:6;2560:79;;-1:-1:-1;;;;;2625:6:0;;;3187:51:1;;3175:2;3160:18;2560:79:0;3041:203:1;5501:87:0;;;;;;;;;;-1:-1:-1;5573:7:0;;;;;;;;;;;;-1:-1:-1;;;5573:7:0;;;;5501:87;;5936:167;;;;;;;;;;-1:-1:-1;5936:167:0;;;;;:::i;:::-;;:::i;9852:::-;;;;;;;;;;-1:-1:-1;9852:167:0;;;;;:::i;:::-;;:::i;12369:194::-;;;;;;;;;;;;;:::i;10141:871::-;;;;;;;;;;;;;:::i;11024:163::-;;;;;;;;;;-1:-1:-1;11024:163:0;;;;;:::i;:::-;;:::i;6111:143::-;;;;;;;;;;-1:-1:-1;6111:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6219:18:0;;;6192:7;6219:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6111:143;6262:161;6337:4;6354:39;358:10;6377:7;6386:6;6354:8;:39::i;:::-;-1:-1:-1;6411:4:0;6262:161;;;;;:::o;6431:313::-;6529:4;6546:36;6556:6;6564:9;6575:6;6546:9;:36::i;:::-;6593:121;6602:6;358:10;6624:89;6662:6;6624:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6624:19:0;;;;;;:11;:19;;;;;;;;358:10;6624:33;;;;;;;;;;:37;:89::i;:::-;6593:8;:121::i;:::-;-1:-1:-1;6732:4:0;6431:313;;;;;:::o;11199:88::-;2687:6;;-1:-1:-1;;;;;2687:6:0;358:10;2687:22;2679:67;;;;-1:-1:-1;;;2679:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;11259:12:0::1;11274:5;11259:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;11259:20:0::1;::::0;;11199:88::o;6752:103::-;2687:6;;-1:-1:-1;;;;;2687:6:0;358:10;2687:22;2679:67;;;;-1:-1:-1;;;2679:67:0;;;;;;;:::i;:::-;6824:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6824:23:0::1;-1:-1:-1::0;;;;6824:23:0;;::::1;::::0;;;::::1;::::0;;6752:103::o;9681:163::-;2687:6;;-1:-1:-1;;;;;2687:6:0;358:10;2687:22;2679:67;;;;-1:-1:-1;;;2679:67:0;;;;;;;:::i;:::-;9776:1:::1;9765:10;:12;9757:21;;;::::0;::::1;;9804:32;9832:3;9804:23;4197:18;9816:10:::0;9804:11:::1;:23::i;:::-;:27:::0;::::1;:32::i;:::-;9789:12;:47:::0;-1:-1:-1;9681:163:0:o;12575:193::-;12641:14;;-1:-1:-1;;;;;12641:14:0;358:10;-1:-1:-1;;;;;12625:30:0;;12617:39;;;;;;12696:21;12728:32;12696:21;12728:12;:32::i;:::-;12606:162;12575:193::o;5790:138::-;-1:-1:-1;;;;;5903:16:0;;5856:7;5903:16;;;:7;:16;;;;;;5883:37;;:19;:37::i;2774:148::-;2687:6;;-1:-1:-1;;;;;2687:6:0;358:10;2687:22;2679:67;;;;-1:-1:-1;;;2679:67:0;;;;;;;:::i;:::-;2881:1:::1;2865:6:::0;;2844:40:::1;::::0;-1:-1:-1;;;;;2865:6:0;;::::1;::::0;2844:40:::1;::::0;2881:1;;2844:40:::1;2912:1;2895:19:::0;;-1:-1:-1;;;;;;2895:19:0::1;::::0;;2774:148::o;9555:118::-;2687:6;;-1:-1:-1;;;;;2687:6:0;358:10;2687:22;2679:67;;;;-1:-1:-1;;;2679:67:0;;;;;;;:::i;:::-;4197:18:::1;9608:12;:22:::0;;;9641:14:::1;:24:::0;9555:118::o;5936:167::-;6014:4;6031:42;358:10;6055:9;6066:6;6031:9;:42::i;9852:167::-;2687:6;;-1:-1:-1;;;;;2687:6:0;358:10;2687:22;2679:67;;;;-1:-1:-1;;;2679:67:0;;;;;;;:::i;:::-;9949:1:::1;9938:10;:12;9930:21;;;::::0;::::1;;9979:32;10007:3;9979:23;4197:18;9991:10:::0;9979:11:::1;:23::i;:32::-;9962:14;:49:::0;-1:-1:-1;9852:167:0:o;12369:194::-;12435:14;;-1:-1:-1;;;;;12435:14:0;358:10;-1:-1:-1;;;;;12419:30:0;;12411:39;;;;;;12461:23;12487:24;12505:4;12487:9;:24::i;:::-;12461:50;;12522:33;12539:15;12522:16;:33::i;10141:871::-;2687:6;;-1:-1:-1;;;;;2687:6:0;358:10;2687:22;2679:67;;;;-1:-1:-1;;;2679:67:0;;;;;;;:::i;:::-;10205:11:::1;::::0;-1:-1:-1;;;10205:11:0;::::1;;;10204:12;10196:47;;;::::0;-1:-1:-1;;;10196:47:0;;5463:2:1;10196:47:0::1;::::0;::::1;5445:21:1::0;5502:2;5482:18;;;5475:30;5541:25;5521:18;;;5514:53;5584:18;;10196:47:0::1;5261:347:1::0;10196:47:0::1;10365:15;:34:::0;;-1:-1:-1;;;;;;10365:34:0::1;10311:42;10365:34:::0;;::::1;::::0;;;10410:58:::1;10427:4;10311:42:::0;4197:18:::1;10410:8;:58::i;:::-;10513:16;-1:-1:-1::0;;;;;10513:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10495:56:0::1;;10560:4;10567:16;-1:-1:-1::0;;;;;10567:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10495:96;::::0;-1:-1:-1;;;;;;10495:96:0::1;::::0;;;;;;-1:-1:-1;;;;;6099:15:1;;;10495:96:0::1;::::0;::::1;6081:34:1::0;6151:15;;6131:18;;;6124:43;6016:18;;10495:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10479:13;:112:::0;;-1:-1:-1;;;;;;10479:112:0::1;-1:-1:-1::0;;;;;10479:112:0;;::::1;;::::0;;10602:15:::1;::::0;::::1;:31;10641:21;10672:4;10678:24;10672:4:::0;10678:9:::1;:24::i;:::-;10703:1;10705::::0;10707:7:::1;2598::::0;2625:6;-1:-1:-1;;;;;2625:6:0;;2560:79;10707:7:::1;10602:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10602:129:0;;;-1:-1:-1;;;;;6537:15:1;;;10602: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;10715:15:0::1;6751:19:1::0;;;6744:35;6453:19;;10602:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10742:11:0::1;:18:::0;;-1:-1:-1;;;;10771:22:0;-1:-1:-1;;;10771:22:0;;;-1:-1:-1;10819:23:0::1;10838:3;10819:14;4197:18;10831:1;10819:11;:14::i;:23::-;10804:12;:38:::0;10870:23:::1;10889:3;10870:14;4197:18;10882:1;10870:11;:14::i;:23::-;10853:14;:40:::0;10904:11:::1;:18:::0;;-1:-1:-1;;;;;;;10904:18:0;::::1;;::::0;;;10971:15:::1;::::0;10933:71:::1;::::0;-1:-1:-1;;;10933:71:0;;-1:-1:-1;;;;;10971:15:0;;::::1;10933:71;::::0;::::1;7275:51:1::0;-1:-1:-1;;7342:18:1;;;7335:34;10940:13:0;;;10933:29:::1;::::0;7248:18:1;;10933:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10185:827;10141:871::o:0;11024:163::-;2687:6;;-1:-1:-1;;;;;2687:6:0;358:10;2687:22;2679:67;;;;-1:-1:-1;;;2679:67:0;;;;;;;:::i;:::-;11097:6:::1;11092:88;11113:5;:12;11109:1;:16;11092:88;;;11164:4;11147;:14;11152:5;11158:1;11152:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11147:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11147:14:0;:21;;-1:-1:-1;;11147:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11127:3;::::1;::::0;::::1;:::i;:::-;;;;11092:88;;7125:335:::0;-1:-1:-1;;;;;7218:19:0;;7210:68;;;;-1:-1:-1;;;7210:68:0;;8236:2:1;7210: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;;7210:68:0;8034:400:1;7210:68:0;-1:-1:-1;;;;;7297:21:0;;7289:68;;;;-1:-1:-1;;;7289:68:0;;8641:2:1;7289: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;;7289:68:0;8439:398:1;7289:68:0;-1:-1:-1;;;;;7368:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7420:32;;1549:25:1;;;7420:32:0;;1522:18:1;7420:32:0;;;;;;;7125:335;;;:::o;7468:1588::-;-1:-1:-1;;;;;7556:18:0;;7548:68;;;;-1:-1:-1;;;7548:68:0;;9044:2:1;7548: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;;7548:68:0;8842:401:1;7548:68:0;-1:-1:-1;;;;;7635:16:0;;7627:64;;;;-1:-1:-1;;;7627:64:0;;9450:2:1;7627: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;;7627:64:0;9248:399:1;7627:64:0;7719:1;7710:6;:10;7702:64;;;;-1:-1:-1;;;7702:64:0;;9854:2:1;7702: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;;7702:64:0;9652:405:1;7702:64:0;7789:1;7777:9;:13;7813:1;7801:9;:13;7837:7;2598;2625:6;-1:-1:-1;;;;;2625:6:0;;2560:79;7837:7;-1:-1:-1;;;;;7829:15:0;:4;-1:-1:-1;;;;;7829:15:0;;;:32;;;;-1:-1:-1;2598:7:0;2625:6;-1:-1:-1;;;;;7848:13:0;;;2625:6;;7848:13;;7829:32;7825:1179;;;-1:-1:-1;;;;;7887:10:0;;;;;;:4;:10;;;;;;;;7886:11;:24;;;;-1:-1:-1;;;;;;7902:8:0;;;;;;:4;:8;;;;;;;;7901:9;7886:24;7878:33;;;;;;7938:13;;-1:-1:-1;;;;;7930:21:0;;;7938:13;;7930:21;:55;;;;-1:-1:-1;7969:15:0;;-1:-1:-1;;;;;7955:30:0;;;7969:15;;7955:30;;7930:55;:83;;;;-1:-1:-1;;;;;;7991:22:0;;;;;;:18;:22;;;;;;;;7989:24;7930:83;:102;;;;-1:-1:-1;8017:15:0;;-1:-1:-1;;;8017:15:0;;;;7930:102;7926:452;;;8100:12;;8090:6;:22;;8082:60;;;;-1:-1:-1;;;8082:60:0;;10264:2:1;8082:60:0;;;10246:21:1;10303:2;10283:18;;;10276:30;10342:27;10322:18;;;10315:55;10387:18;;8082:60:0;10062:349:1;8082:60:0;8195:14;;8185:6;8169:13;8179:2;8169:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8161:79;;;;-1:-1:-1;;;8161:79:0;;10751:2:1;8161:79:0;;;10733:21:1;10790:2;10770:18;;;10763:30;10829:28;10809:18;;;10802:56;10875:18;;8161:79:0;10549:350:1;8161:79:0;-1:-1:-1;;;;;8267:12:0;;;;;;:8;:12;;;;;;8282:15;-1:-1:-1;8259:39:0;;;;;;8332:30;:15;8351:10;8332:30;:::i;:::-;-1:-1:-1;;;;;8317:12:0;;;;;;:8;:12;;;;;:45;7926:452;8430:13;;-1:-1:-1;;;;;8424:19:0;;;8430:13;;8424:19;:55;;;;-1:-1:-1;8463:15:0;;-1:-1:-1;;;;;8447:32:0;;;8463:15;;8447:32;;8424:55;:85;;;;-1:-1:-1;;;;;;8485:24:0;;;;;;:18;:24;;;;;;;;8483:26;8424:85;8420:171;;;8542:1;8530:9;:13;8574:1;8562:9;:13;8420:171;8605:28;8636:24;8654:4;8636:9;:24::i;:::-;8680:6;;8605:55;;-1:-1:-1;;;;8680:6:0;;;;8679:7;:32;;;;-1:-1:-1;8698:13:0;;-1:-1:-1;;;;;8690:21:0;;;8698:13;;8690:21;;8679:32;:47;;;;-1:-1:-1;8715:11:0;;-1:-1:-1;;;8715:11:0;;;;8679:47;8675:318;;;8747:38;8764:20;8747:16;:38::i;:::-;8833:21;8876:22;;8873:105;;8923:35;8936:21;8923:12;:35::i;:::-;8728:265;8675:318;7863:1141;7825:1179;9018:30;9033:4;9038:2;9041:6;9018:14;:30::i;:::-;7468:1588;;;:::o;1415:190::-;1501:7;1537:12;1529:6;;;;1521:29;;;;-1:-1:-1;;;1521:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1561:9:0;1573:5;1577:1;1573;:5;:::i;:::-;1561:17;1415:190;-1:-1:-1;;;;;1415:190:0:o;1613:246::-;1671:7;1695:1;1700;1695:6;1691:47;;-1:-1:-1;1725:1:0;1718:8;;1691:47;1748:9;1760:5;1764:1;1760;:5;:::i;:::-;1748:17;-1:-1:-1;1793:1:0;1784:5;1788:1;1748:17;1784:5;:::i;:::-;:10;1776:56;;;;-1:-1:-1;;;1776:56:0;;11631:2:1;1776: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;;1776:56:0;11429:397:1;1776:56:0;1850:1;1613:246;-1:-1:-1;;;1613:246:0:o;1867:132::-;1925:7;1952:39;1956:1;1959;1952:39;;;;;;;;;;;;;;;;;:3;:39::i;10035:96::-;10092:14;;:31;;-1:-1:-1;;;;;10092:14:0;;;;:31;;;;;10116:6;;10092:14;:31;:14;:31;10116:6;10092:14;:31;;;;;;;;;;;;;;;;;;;6863:254;6930:7;6969;;6958;:18;;6950:73;;;;-1:-1:-1;;;6950:73:0;;12033:2:1;6950: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;;6950:73:0;11831:406:1;6950:73:0;7034:19;7057:10;:8;:10::i;:::-;7034:33;-1:-1:-1;7085:24:0;:7;7034:33;7085:11;:24::i;9064:483::-;4985:6;:13;;-1:-1:-1;;;;4985:13:0;-1:-1:-1;;;4985:13:0;;;9166:16:::1;::::0;;9180:1:::1;9166:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9166:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9166:16:0::1;9142:40;;9211:4;9193;9198:1;9193:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9193:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9237:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9237:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9193:7;;9237:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9227:4;9232:1;9227:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9227:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9302:15:::1;::::0;9270:62:::1;::::0;9287:4:::1;::::0;9302:15:::1;9320:11:::0;9270:8:::1;:62::i;:::-;9343:15;::::0;:196:::1;::::0;-1:-1:-1;;;9343:196:0;;-1:-1:-1;;;;;9343:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9424:11;;9343:15:::1;::::0;9466:4;;9493::::1;::::0;9513:15:::1;::::0;9343:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5021:6:0;:14;;-1:-1:-1;;;;5021:14:0;;;-1:-1:-1;;;;9064:483:0:o;11303:146::-;11397:44;11415:6;11423:9;11434:6;11397:17;:44::i;2007:189::-;2093:7;2128:12;2121:5;2113:28;;;;-1:-1:-1;;;2113:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2152:9:0;2164:5;2168:1;2164;:5;:::i;14034:163::-;14075:7;14096:15;14113;14132:19;:17;:19::i;:::-;14095:56;;-1:-1:-1;14095:56:0;-1:-1:-1;14169:20:0;14095:56;;14169:11;:20::i;:::-;14162:27;;;;14034:163;:::o;11457:488::-;11556:15;11573:23;11598:12;11612:23;11637:12;11651:13;11668:19;11679:7;11668:10;:19::i;:::-;-1:-1:-1;;;;;11716:15:0;;;;;;:7;:15;;;;;;11555:132;;-1:-1:-1;11555:132:0;;-1:-1:-1;11555:132:0;;-1:-1:-1;11555:132:0;-1:-1:-1;11555:132:0;-1:-1:-1;11555:132:0;-1:-1:-1;11716:28:0;;11555:132;11716:19;:28::i;:::-;-1:-1:-1;;;;;11698:15:0;;;;;;;:7;:15;;;;;;:46;;;;11776:18;;;;;;;:39;;11799:15;11776:22;:39::i;:::-;-1:-1:-1;;;;;11755:18:0;;;;;;:7;:18;;;;;:60;11827:16;11837:5;11827:9;:16::i;:::-;11854:23;11866:4;11872;11854:11;:23::i;:::-;11910:9;-1:-1:-1;;;;;11893:44:0;11902:6;-1:-1:-1;;;;;11893:44:0;;11921:15;11893:44;;;;1549:25:1;;1537:2;1522:18;;1403:177;11893:44:0;;;;;;;;11544:401;;;;;;11457:488;;;:::o;14205:262::-;14302:7;;14255;;;;4197:18;14376:20;14302:7;4197:18;14376:11;:20::i;:::-;14366:7;:30;14362:61;;;-1:-1:-1;;14406:7:0;;;4197:18;;-1:-1:-1;14205:262:0;-1:-1:-1;14205:262:0:o;14362:61::-;14442:7;;14451;;-1:-1:-1;14205:262:0;-1:-1:-1;14205:262:0:o;12782:471::-;12841:7;12850;12859;12868;12877;12886;12907:23;12932:12;12946:13;12963:42;12975:7;12984:9;;12995;;12963:11;:42::i;:::-;12906:99;;;;;;13016:19;13039:10;:8;:10::i;:::-;13016:33;;13061:15;13078:23;13103:12;13119:46;13131:7;13140:4;13146:5;13153:11;13119;:46::i;:::-;13060:105;;-1:-1:-1;13060:105:0;-1:-1:-1;13060:105:0;-1:-1:-1;13216:15:0;;-1:-1:-1;13233:4:0;;-1:-1:-1;13239:5:0;;-1:-1:-1;;;;;12782:471:0;;;;;;;:::o;1271:136::-;1329:7;1356:43;1360:1;1363;1356:43;;;;;;;;;;;;;;;;;:3;:43::i;1084:179::-;1142:7;;1174:5;1178:1;1174;:5;:::i;:::-;1162:17;;1203:1;1198;:6;;1190:46;;;;-1:-1:-1;;;1190:46:0;;13429:2:1;1190:46:0;;;13411:21:1;13468:2;13448:18;;;13441:30;13507:29;13487:18;;;13480:57;13554:18;;1190:46:0;13227:351:1;11953:212:0;12006:19;12029:10;:8;:10::i;:::-;12006:33;-1:-1:-1;12050:13:0;12066:22;:5;12006:33;12066:9;:22::i;:::-;12140:4;12124:22;;;;:7;:22;;;;;;12050:38;;-1:-1:-1;12124:33:0;;12050:38;12124:26;:33::i;:::-;12115:4;12099:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11953:212:0:o;12173:147::-;12251:7;;:17;;12263:4;12251:11;:17::i;:::-;12241:7;:27;12292:10;;:20;;12307:4;12292:14;:20::i;:::-;12279:10;:33;-1:-1:-1;;12173:147:0:o;13261:351::-;13354:7;;;;13407:28;13431:3;13407:19;:7;13419:6;13407:11;:19::i;:28::-;13392:43;-1:-1:-1;13446:13:0;13462:29;13487:3;13462:20;:7;13474;13462:11;:20::i;:29::-;13446:45;-1:-1:-1;13502:23:0;13528:28;13446:45;13528:17;:7;13540:4;13528:11;:17::i;:::-;:21;;:28::i;:::-;13502:54;13592:4;;-1:-1:-1;13598:5:0;;-1:-1:-1;13261:351:0;;-1:-1:-1;;;;;13261:351:0:o;13620:409::-;13730:7;;;;13786:24;:7;13798:11;13786;:24::i;:::-;13768:42;-1:-1:-1;13821:12:0;13836:21;:4;13845:11;13836:8;:21::i;:::-;13821:36;-1:-1:-1;13868:13:0;13884:22;:5;13894:11;13884:9;:22::i;:::-;13868:38;-1:-1:-1;13917:23:0;13943:28;13868:38;13943:17;:7;13955:4;13943:11;:17::i;:28::-;13990:7;;;;-1:-1:-1;14016:4:0;;-1:-1:-1;13620:409:0;;-1:-1:-1;;;;;;;13620: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;7954:17;;;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://9b203005f99ea930c620cb9de0749ab4159023715947843aa53a7ec2db1f0863

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.