ETH Price: $1,957.75 (-4.55%)
 

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
Approve162726272022-12-27 0:52:471158 days ago1672102367IN
0xDc05bEC4...eaEc741F9
0 ETH0.0007825616.8
Approve162714352022-12-26 20:52:231158 days ago1672087943IN
0xDc05bEC4...eaEc741F9
0 ETH0.000538911.56914976
Approve162663782022-12-26 3:55:591159 days ago1672026959IN
0xDc05bEC4...eaEc741F9
0 ETH0.0002805911.54845359
Approve162650192022-12-25 23:22:471159 days ago1672010567IN
0xDc05bEC4...eaEc741F9
0 ETH0.0005604512.03186924
Approve162648422022-12-25 22:47:231159 days ago1672008443IN
0xDc05bEC4...eaEc741F9
0 ETH0.0005705212.24805945
Approve162637602022-12-25 19:10:231159 days ago1671995423IN
0xDc05bEC4...eaEc741F9
0 ETH0.0006115313.1284399
Approve162628062022-12-25 15:58:471159 days ago1671983927IN
0xDc05bEC4...eaEc741F9
0 ETH0.0004810610.32744086
Approve162626482022-12-25 15:26:591159 days ago1671982019IN
0xDc05bEC4...eaEc741F9
0 ETH0.0005515111.84
Approve162626252022-12-25 15:22:231159 days ago1671981743IN
0xDc05bEC4...eaEc741F9
0 ETH0.0007551516.21158536
Approve162626012022-12-25 15:17:351159 days ago1671981455IN
0xDc05bEC4...eaEc741F9
0 ETH0.000328813.53290202
Approve162625952022-12-25 15:16:231159 days ago1671981383IN
0xDc05bEC4...eaEc741F9
0 ETH0.0006333313.59645931
Approve162625622022-12-25 15:09:471159 days ago1671980987IN
0xDc05bEC4...eaEc741F9
0 ETH0.000563912.10600565
Approve162625042022-12-25 14:58:111159 days ago1671980291IN
0xDc05bEC4...eaEc741F9
0 ETH0.000481710.34120396
Approve162624782022-12-25 14:52:591159 days ago1671979979IN
0xDc05bEC4...eaEc741F9
0 ETH0.0006478313.90780924
Approve162624542022-12-25 14:48:111159 days ago1671979691IN
0xDc05bEC4...eaEc741F9
0 ETH0.0006274213.46964736
Approve162624152022-12-25 14:40:111159 days ago1671979211IN
0xDc05bEC4...eaEc741F9
0 ETH0.0009316220
Approve162623882022-12-25 14:34:471159 days ago1671978887IN
0xDc05bEC4...eaEc741F9
0 ETH0.0007918717
Approve162623462022-12-25 14:26:231159 days ago1671978383IN
0xDc05bEC4...eaEc741F9
0 ETH0.0005133111.01980502
Approve162622782022-12-25 14:12:471159 days ago1671977567IN
0xDc05bEC4...eaEc741F9
0 ETH0.0004957910.64364169
Approve162621012022-12-25 13:37:231160 days ago1671975443IN
0xDc05bEC4...eaEc741F9
0 ETH0.0005467811.73827132
Approve162620372022-12-25 13:24:351160 days ago1671974675IN
0xDc05bEC4...eaEc741F9
0 ETH0.0005425811.64825679
Approve162619992022-12-25 13:16:591160 days ago1671974219IN
0xDc05bEC4...eaEc741F9
0 ETH0.0004679710.0464214
Approve162619432022-12-25 13:05:471160 days ago1671973547IN
0xDc05bEC4...eaEc741F9
0 ETH0.0005378311.54618332
Approve162619122022-12-25 12:59:351160 days ago1671973175IN
0xDc05bEC4...eaEc741F9
0 ETH0.0005898712.66349391
Approve162618412022-12-25 12:45:231160 days ago1671972323IN
0xDc05bEC4...eaEc741F9
0 ETH0.00126527.15720074
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer163140482023-01-01 19:36:231152 days ago1672601783
0xDc05bEC4...eaEc741F9
0.00112751 ETH
Transfer163140482023-01-01 19:36:231152 days ago1672601783
0xDc05bEC4...eaEc741F9
0.00112751 ETH
Transfer162726282022-12-27 0:52:591158 days ago1672102379
0xDc05bEC4...eaEc741F9
0.00090264 ETH
Transfer162726282022-12-27 0:52:591158 days ago1672102379
0xDc05bEC4...eaEc741F9
0.00090264 ETH
Transfer162717762022-12-26 22:01:111158 days ago1672092071
0xDc05bEC4...eaEc741F9
0.00836612 ETH
Transfer162717762022-12-26 22:01:111158 days ago1672092071
0xDc05bEC4...eaEc741F9
0.00836612 ETH
Transfer162714422022-12-26 20:53:471158 days ago1672088027
0xDc05bEC4...eaEc741F9
0.00061294 ETH
Transfer162714422022-12-26 20:53:471158 days ago1672088027
0xDc05bEC4...eaEc741F9
0.00061294 ETH
Transfer162686052022-12-26 11:23:111159 days ago1672053791
0xDc05bEC4...eaEc741F9
0.006593 ETH
Transfer162686052022-12-26 11:23:111159 days ago1672053791
0xDc05bEC4...eaEc741F9
0.006593 ETH
Transfer162676922022-12-26 8:19:471159 days ago1672042787
0xDc05bEC4...eaEc741F9
0.00090514 ETH
Transfer162676922022-12-26 8:19:471159 days ago1672042787
0xDc05bEC4...eaEc741F9
0.00090514 ETH
Transfer162671262022-12-26 6:26:231159 days ago1672035983
0xDc05bEC4...eaEc741F9
0.00056308 ETH
Transfer162671262022-12-26 6:26:231159 days ago1672035983
0xDc05bEC4...eaEc741F9
0.00056308 ETH
Transfer162657962022-12-26 1:58:471159 days ago1672019927
0xDc05bEC4...eaEc741F9
0.00164562 ETH
Transfer162657962022-12-26 1:58:471159 days ago1672019927
0xDc05bEC4...eaEc741F9
0.00164562 ETH
Transfer162650212022-12-25 23:23:111159 days ago1672010591
0xDc05bEC4...eaEc741F9
0.00086392 ETH
Transfer162650212022-12-25 23:23:111159 days ago1672010591
0xDc05bEC4...eaEc741F9
0.00086392 ETH
Transfer162649522022-12-25 23:09:231159 days ago1672009763
0xDc05bEC4...eaEc741F9
0.00261017 ETH
Transfer162649522022-12-25 23:09:231159 days ago1672009763
0xDc05bEC4...eaEc741F9
0.00261017 ETH
Transfer162648542022-12-25 22:49:471159 days ago1672008587
0xDc05bEC4...eaEc741F9
0.00178255 ETH
Transfer162648542022-12-25 22:49:471159 days ago1672008587
0xDc05bEC4...eaEc741F9
0.00178255 ETH
Transfer162644082022-12-25 21:20:231159 days ago1672003223
0xDc05bEC4...eaEc741F9
0.00075534 ETH
Transfer162644082022-12-25 21:20:231159 days ago1672003223
0xDc05bEC4...eaEc741F9
0.00075534 ETH
Transfer162640012022-12-25 19:58:471159 days ago1671998327
0xDc05bEC4...eaEc741F9
0.00025002 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:
SAAP

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-12-25
*/

/**


Samurai Apes Token | $SAAP

$SAAP is a meme cryptocurrency token operating on the ERC-20 Blockchain technology (Ethereum). 
With the great experience, knowledge and wisdom of the core team.

Socials 
Telegram : https://t.me/SamuraiApes
Twitter : https://twitter.com/SamuraiApesERC
*/

pragma solidity 0.8.9;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract SAAP 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 = 100000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

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

    string private constant _name = unicode"Samurai Apes Token";
    string private constant _symbol = unicode"SAAP";
    uint8 private constant _decimals = 5;

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

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

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");


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

            }


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

        _tokenTransfer(from,to,amount);
    }

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

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

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

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

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

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

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

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

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

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

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

    receive() external payable {}

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

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


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

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

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

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

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

Contract Security Audit

Contract ABI

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

6080604052620000126005600a62000445565b62000022906305f5e10062000456565b62000030906000196200048e565b6200003e90600019620004a5565b600855600f805462ffffff60a81b19169055620000a260646200008e60026200006a6005600a62000445565b6200007a906305f5e10062000456565b6200021860201b62000a8e1790919060201c565b620002ac60201b62000b141790919060201c565b601055620000bf60646200008e60026200006a6005600a62000445565b601155348015620000cf57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d80546001600160a01b03191633908117909155600854600091825260026020526040822055600190600590620001516000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600593849052828120805486166001908117909155600d54909216815291909120805490931617909155600c55620001b73390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001f16005600a62000445565b62000201906305f5e10062000456565b60405190815260200160405180910390a36200052e565b6000826200022957506000620002a6565b600062000237838562000456565b905082620002468583620004bf565b14620002a35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620002a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620002f660201b60201c565b600081836200031a5760405162461bcd60e51b81526004016200029a9190620004d6565b506000620003298486620004bf565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003895781600019048211156200036d576200036d62000332565b808516156200037b57918102915b93841c93908002906200034d565b509250929050565b600082620003a257506001620002a6565b81620003b157506000620002a6565b8160018114620003ca5760028114620003d557620003f5565b6001915050620002a6565b60ff841115620003e957620003e962000332565b50506001821b620002a6565b5060208310610133831016604e8410600b84101617156200041a575081810a620002a6565b62000426838362000348565b80600019048211156200043d576200043d62000332565b029392505050565b6000620002a360ff84168362000391565b600081600019048311821515161562000473576200047362000332565b500290565b634e487b7160e01b600052601260045260246000fd5b600082620004a057620004a062000478565b500690565b600082821015620004ba57620004ba62000332565b500390565b600082620004d157620004d162000478565b500490565b600060208083528351808285015260005b818110156200050557858101830151858201604001528201620004e7565b8181111562000518576000604083870101525b50601f01601f1916929092016040019392505050565b611bb4806200053e6000396000f3fe60806040526004361061010d5760003560e01c8063751039fc11610095578063a9059cbb11610064578063a9059cbb146102eb578063c3c8cd801461030b578063c9567bf914610320578063ccfee5d614610335578063dd62ed3e1461035557600080fd5b8063751039fc14610261578063843f7be2146102765780638da5cb5b1461029657806395d89b41146102be57600080fd5b8063313ce567116100dc578063313ce567146101d95780635932ead1146101f55780636fc3eaec1461021757806370a082311461022c578063715018a61461024c57600080fd5b806306fdde0314610119578063095ea7b31461016657806318160ddd1461019657806323b872dd146101b957600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152601281527129b0b6bab930b49020b832b9902a37b5b2b760711b60208201525b60405161015d9190611642565b60405180910390f35b34801561017257600080fd5b506101866101813660046116bc565b61039b565b604051901515815260200161015d565b3480156101a257600080fd5b506101ab6103b2565b60405190815260200161015d565b3480156101c557600080fd5b506101866101d43660046116e8565b6103d3565b3480156101e557600080fd5b506040516005815260200161015d565b34801561020157600080fd5b50610215610210366004611737565b61043c565b005b34801561022357600080fd5b5061021561048d565b34801561023857600080fd5b506101ab610247366004611754565b6104ba565b34801561025857600080fd5b506102156104dc565b34801561026d57600080fd5b50610215610550565b34801561028257600080fd5b50610215610291366004611771565b6105b6565b3480156102a257600080fd5b506000546040516001600160a01b03909116815260200161015d565b3480156102ca57600080fd5b506040805180820190915260048152630534141560e41b6020820152610150565b3480156102f757600080fd5b506101866103063660046116bc565b6105f3565b34801561031757600080fd5b50610215610600565b34801561032c57600080fd5b50610215610636565b34801561034157600080fd5b506102156103503660046117a0565b6109fc565b34801561036157600080fd5b506101ab610370366004611865565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103a8338484610b56565b5060015b92915050565b60006103c06005600a611998565b6103ce906305f5e1006119a7565b905090565b60006103e0848484610c7a565b610432843361042d85604051806060016040528060288152602001611b57602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610fe2565b610b56565b5060019392505050565b6000546001600160a01b0316331461046f5760405162461bcd60e51b8152600401610466906119c6565b60405180910390fd5b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600d546001600160a01b0316336001600160a01b0316146104ad57600080fd5b476104b78161101c565b50565b6001600160a01b0381166000908152600260205260408120546103ac90611056565b6000546001600160a01b031633146105065760405162461bcd60e51b8152600401610466906119c6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461057a5760405162461bcd60e51b8152600401610466906119c6565b6105866005600a611998565b610594906305f5e1006119a7565b6010556105a36005600a611998565b6105b1906305f5e1006119a7565b601155565b6000546001600160a01b031633146105e05760405162461bcd60e51b8152600401610466906119c6565b600c5481106105ee57600080fd5b600c55565b60006103a8338484610c7a565b600d546001600160a01b0316336001600160a01b03161461062057600080fd5b600061062b306104ba565b90506104b7816110d3565b6000546001600160a01b031633146106605760405162461bcd60e51b8152600401610466906119c6565b600f54600160a01b900460ff16156106ba5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610466565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561070230826106f46005600a611998565b61042d906305f5e1006119a7565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561073b57600080fd5b505afa15801561074f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077391906119fb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107bb57600080fd5b505afa1580156107cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f391906119fb565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561083b57600080fd5b505af115801561084f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087391906119fb565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d71947306108a3816104ba565b6000806108b86000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561091b57600080fd5b505af115801561092f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109549190611a18565b5050600f805463ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156109c057600080fd5b505af11580156109d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f89190611a46565b5050565b6000546001600160a01b03163314610a265760405162461bcd60e51b8152600401610466906119c6565b60005b81518110156109f857600160066000848481518110610a4a57610a4a611a63565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a8681611a79565b915050610a29565b600082610a9d575060006103ac565b6000610aa983856119a7565b905082610ab68583611a94565b14610b0d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610466565b9392505050565b6000610b0d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061125c565b6001600160a01b038316610bb85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610466565b6001600160a01b038216610c195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610466565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cde5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610466565b6001600160a01b038216610d405760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610466565b60008111610da25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610466565b6000546001600160a01b03848116911614801590610dce57506000546001600160a01b03838116911614155b15610fc7576001600160a01b03831660009081526006602052604090205460ff16158015610e1557506001600160a01b03821660009081526006602052604090205460ff16155b610e1e57600080fd5b6000600a55600c54600b55600f546001600160a01b038481169116148015610e545750600e546001600160a01b03838116911614155b8015610e7957506001600160a01b03821660009081526005602052604090205460ff16155b8015610e8e5750600f54600160b81b900460ff165b15610f4a57601054811115610ee55760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610466565b60115481610ef2846104ba565b610efc9190611ab6565b1115610f4a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610466565b6000610f55306104ba565b600f54909150600160a81b900460ff16158015610f805750600f546001600160a01b03858116911614155b8015610f955750600f54600160b01b900460ff165b8015610fa15750600081115b15610fc157610faf816110d3565b478015610fbf57610fbf4761101c565b505b50610fd2565b6000600a819055600b555b610fdd83838361128a565b505050565b600081848411156110065760405162461bcd60e51b81526004016104669190611642565b5060006110138486611ace565b95945050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156109f8573d6000803e3d6000fd5b60006008548211156110bd5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610466565b60006110c7611295565b9050610b0d8382610b14565b600f805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061111b5761111b611a63565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561116f57600080fd5b505afa158015611183573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a791906119fb565b816001815181106111ba576111ba611a63565b6001600160a01b039283166020918202929092010152600e546111e09130911684610b56565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611219908590600090869030904290600401611ae5565b600060405180830381600087803b15801561123357600080fd5b505af1158015611247573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b6000818361127d5760405162461bcd60e51b81526004016104669190611642565b5060006110138486611a94565b610fdd8383836112b8565b60008060006112a26113af565b90925090506112b18282610b14565b9250505090565b6000806000806000806112ca87611431565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506112fc908761148e565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461132b90866114d0565b6001600160a01b03891660009081526002602052604090205561134d8161152f565b6113578483611579565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161139c91815260200190565b60405180910390a3505050505050505050565b6008546000908190816113c46005600a611998565b6113d2906305f5e1006119a7565b90506113fa6113e36005600a611998565b6113f1906305f5e1006119a7565b60085490610b14565b821015611428576008546114106005600a611998565b61141e906305f5e1006119a7565b9350935050509091565b90939092509050565b600080600080600080600080600061144e8a600a54600b5461159d565b925092509250600061145e611295565b905060008060006114718e8787876115f2565b919e509c509a509598509396509194505050505091939550919395565b6000610b0d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fe2565b6000806114dd8385611ab6565b905083811015610b0d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610466565b6000611539611295565b905060006115478383610a8e565b3060009081526002602052604090205490915061156490826114d0565b30600090815260026020526040902055505050565b600854611586908361148e565b60085560095461159690826114d0565b6009555050565b60008080806115b760646115b18989610a8e565b90610b14565b905060006115ca60646115b18a89610a8e565b905060006115e2826115dc8b8661148e565b9061148e565b9992985090965090945050505050565b60008080806116018886610a8e565b9050600061160f8887610a8e565b9050600061161d8888610a8e565b9050600061162f826115dc868661148e565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561166f57858101830151858201604001528201611653565b81811115611681576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146104b757600080fd5b80356116b781611697565b919050565b600080604083850312156116cf57600080fd5b82356116da81611697565b946020939093013593505050565b6000806000606084860312156116fd57600080fd5b833561170881611697565b9250602084013561171881611697565b929592945050506040919091013590565b80151581146104b757600080fd5b60006020828403121561174957600080fd5b8135610b0d81611729565b60006020828403121561176657600080fd5b8135610b0d81611697565b60006020828403121561178357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156117b357600080fd5b823567ffffffffffffffff808211156117cb57600080fd5b818501915085601f8301126117df57600080fd5b8135818111156117f1576117f161178a565b8060051b604051601f19603f830116810181811085821117156118165761181661178a565b60405291825284820192508381018501918883111561183457600080fd5b938501935b828510156118595761184a856116ac565b84529385019392850192611839565b98975050505050505050565b6000806040838503121561187857600080fd5b823561188381611697565b9150602083013561189381611697565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118ef5781600019048211156118d5576118d561189e565b808516156118e257918102915b93841c93908002906118b9565b509250929050565b600082611906575060016103ac565b81611913575060006103ac565b816001811461192957600281146119335761194f565b60019150506103ac565b60ff8411156119445761194461189e565b50506001821b6103ac565b5060208310610133831016604e8410600b8410161715611972575081810a6103ac565b61197c83836118b4565b80600019048211156119905761199061189e565b029392505050565b6000610b0d60ff8416836118f7565b60008160001904831182151516156119c1576119c161189e565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a0d57600080fd5b8151610b0d81611697565b600080600060608486031215611a2d57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a5857600080fd5b8151610b0d81611729565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611a8d57611a8d61189e565b5060010190565b600082611ab157634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611ac957611ac961189e565b500190565b600082821015611ae057611ae061189e565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b355784516001600160a01b031683529383019391830191600101611b10565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122080da1034eb60d5a08810f81e424fa8336194bc602a69a4dcae9f4beaf646106b64736f6c63430008090033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063751039fc11610095578063a9059cbb11610064578063a9059cbb146102eb578063c3c8cd801461030b578063c9567bf914610320578063ccfee5d614610335578063dd62ed3e1461035557600080fd5b8063751039fc14610261578063843f7be2146102765780638da5cb5b1461029657806395d89b41146102be57600080fd5b8063313ce567116100dc578063313ce567146101d95780635932ead1146101f55780636fc3eaec1461021757806370a082311461022c578063715018a61461024c57600080fd5b806306fdde0314610119578063095ea7b31461016657806318160ddd1461019657806323b872dd146101b957600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152601281527129b0b6bab930b49020b832b9902a37b5b2b760711b60208201525b60405161015d9190611642565b60405180910390f35b34801561017257600080fd5b506101866101813660046116bc565b61039b565b604051901515815260200161015d565b3480156101a257600080fd5b506101ab6103b2565b60405190815260200161015d565b3480156101c557600080fd5b506101866101d43660046116e8565b6103d3565b3480156101e557600080fd5b506040516005815260200161015d565b34801561020157600080fd5b50610215610210366004611737565b61043c565b005b34801561022357600080fd5b5061021561048d565b34801561023857600080fd5b506101ab610247366004611754565b6104ba565b34801561025857600080fd5b506102156104dc565b34801561026d57600080fd5b50610215610550565b34801561028257600080fd5b50610215610291366004611771565b6105b6565b3480156102a257600080fd5b506000546040516001600160a01b03909116815260200161015d565b3480156102ca57600080fd5b506040805180820190915260048152630534141560e41b6020820152610150565b3480156102f757600080fd5b506101866103063660046116bc565b6105f3565b34801561031757600080fd5b50610215610600565b34801561032c57600080fd5b50610215610636565b34801561034157600080fd5b506102156103503660046117a0565b6109fc565b34801561036157600080fd5b506101ab610370366004611865565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103a8338484610b56565b5060015b92915050565b60006103c06005600a611998565b6103ce906305f5e1006119a7565b905090565b60006103e0848484610c7a565b610432843361042d85604051806060016040528060288152602001611b57602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610fe2565b610b56565b5060019392505050565b6000546001600160a01b0316331461046f5760405162461bcd60e51b8152600401610466906119c6565b60405180910390fd5b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600d546001600160a01b0316336001600160a01b0316146104ad57600080fd5b476104b78161101c565b50565b6001600160a01b0381166000908152600260205260408120546103ac90611056565b6000546001600160a01b031633146105065760405162461bcd60e51b8152600401610466906119c6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461057a5760405162461bcd60e51b8152600401610466906119c6565b6105866005600a611998565b610594906305f5e1006119a7565b6010556105a36005600a611998565b6105b1906305f5e1006119a7565b601155565b6000546001600160a01b031633146105e05760405162461bcd60e51b8152600401610466906119c6565b600c5481106105ee57600080fd5b600c55565b60006103a8338484610c7a565b600d546001600160a01b0316336001600160a01b03161461062057600080fd5b600061062b306104ba565b90506104b7816110d3565b6000546001600160a01b031633146106605760405162461bcd60e51b8152600401610466906119c6565b600f54600160a01b900460ff16156106ba5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610466565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561070230826106f46005600a611998565b61042d906305f5e1006119a7565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561073b57600080fd5b505afa15801561074f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077391906119fb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107bb57600080fd5b505afa1580156107cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f391906119fb565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561083b57600080fd5b505af115801561084f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087391906119fb565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d71947306108a3816104ba565b6000806108b86000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561091b57600080fd5b505af115801561092f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109549190611a18565b5050600f805463ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156109c057600080fd5b505af11580156109d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f89190611a46565b5050565b6000546001600160a01b03163314610a265760405162461bcd60e51b8152600401610466906119c6565b60005b81518110156109f857600160066000848481518110610a4a57610a4a611a63565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a8681611a79565b915050610a29565b600082610a9d575060006103ac565b6000610aa983856119a7565b905082610ab68583611a94565b14610b0d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610466565b9392505050565b6000610b0d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061125c565b6001600160a01b038316610bb85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610466565b6001600160a01b038216610c195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610466565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cde5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610466565b6001600160a01b038216610d405760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610466565b60008111610da25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610466565b6000546001600160a01b03848116911614801590610dce57506000546001600160a01b03838116911614155b15610fc7576001600160a01b03831660009081526006602052604090205460ff16158015610e1557506001600160a01b03821660009081526006602052604090205460ff16155b610e1e57600080fd5b6000600a55600c54600b55600f546001600160a01b038481169116148015610e545750600e546001600160a01b03838116911614155b8015610e7957506001600160a01b03821660009081526005602052604090205460ff16155b8015610e8e5750600f54600160b81b900460ff165b15610f4a57601054811115610ee55760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610466565b60115481610ef2846104ba565b610efc9190611ab6565b1115610f4a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610466565b6000610f55306104ba565b600f54909150600160a81b900460ff16158015610f805750600f546001600160a01b03858116911614155b8015610f955750600f54600160b01b900460ff165b8015610fa15750600081115b15610fc157610faf816110d3565b478015610fbf57610fbf4761101c565b505b50610fd2565b6000600a819055600b555b610fdd83838361128a565b505050565b600081848411156110065760405162461bcd60e51b81526004016104669190611642565b5060006110138486611ace565b95945050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156109f8573d6000803e3d6000fd5b60006008548211156110bd5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610466565b60006110c7611295565b9050610b0d8382610b14565b600f805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061111b5761111b611a63565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561116f57600080fd5b505afa158015611183573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a791906119fb565b816001815181106111ba576111ba611a63565b6001600160a01b039283166020918202929092010152600e546111e09130911684610b56565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611219908590600090869030904290600401611ae5565b600060405180830381600087803b15801561123357600080fd5b505af1158015611247573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b6000818361127d5760405162461bcd60e51b81526004016104669190611642565b5060006110138486611a94565b610fdd8383836112b8565b60008060006112a26113af565b90925090506112b18282610b14565b9250505090565b6000806000806000806112ca87611431565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506112fc908761148e565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461132b90866114d0565b6001600160a01b03891660009081526002602052604090205561134d8161152f565b6113578483611579565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161139c91815260200190565b60405180910390a3505050505050505050565b6008546000908190816113c46005600a611998565b6113d2906305f5e1006119a7565b90506113fa6113e36005600a611998565b6113f1906305f5e1006119a7565b60085490610b14565b821015611428576008546114106005600a611998565b61141e906305f5e1006119a7565b9350935050509091565b90939092509050565b600080600080600080600080600061144e8a600a54600b5461159d565b925092509250600061145e611295565b905060008060006114718e8787876115f2565b919e509c509a509598509396509194505050505091939550919395565b6000610b0d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fe2565b6000806114dd8385611ab6565b905083811015610b0d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610466565b6000611539611295565b905060006115478383610a8e565b3060009081526002602052604090205490915061156490826114d0565b30600090815260026020526040902055505050565b600854611586908361148e565b60085560095461159690826114d0565b6009555050565b60008080806115b760646115b18989610a8e565b90610b14565b905060006115ca60646115b18a89610a8e565b905060006115e2826115dc8b8661148e565b9061148e565b9992985090965090945050505050565b60008080806116018886610a8e565b9050600061160f8887610a8e565b9050600061161d8888610a8e565b9050600061162f826115dc868661148e565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561166f57858101830151858201604001528201611653565b81811115611681576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146104b757600080fd5b80356116b781611697565b919050565b600080604083850312156116cf57600080fd5b82356116da81611697565b946020939093013593505050565b6000806000606084860312156116fd57600080fd5b833561170881611697565b9250602084013561171881611697565b929592945050506040919091013590565b80151581146104b757600080fd5b60006020828403121561174957600080fd5b8135610b0d81611729565b60006020828403121561176657600080fd5b8135610b0d81611697565b60006020828403121561178357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156117b357600080fd5b823567ffffffffffffffff808211156117cb57600080fd5b818501915085601f8301126117df57600080fd5b8135818111156117f1576117f161178a565b8060051b604051601f19603f830116810181811085821117156118165761181661178a565b60405291825284820192508381018501918883111561183457600080fd5b938501935b828510156118595761184a856116ac565b84529385019392850192611839565b98975050505050505050565b6000806040838503121561187857600080fd5b823561188381611697565b9150602083013561189381611697565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118ef5781600019048211156118d5576118d561189e565b808516156118e257918102915b93841c93908002906118b9565b509250929050565b600082611906575060016103ac565b81611913575060006103ac565b816001811461192957600281146119335761194f565b60019150506103ac565b60ff8411156119445761194461189e565b50506001821b6103ac565b5060208310610133831016604e8410600b8410161715611972575081810a6103ac565b61197c83836118b4565b80600019048211156119905761199061189e565b029392505050565b6000610b0d60ff8416836118f7565b60008160001904831182151516156119c1576119c161189e565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a0d57600080fd5b8151610b0d81611697565b600080600060608486031215611a2d57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a5857600080fd5b8151610b0d81611729565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611a8d57611a8d61189e565b5060010190565b600082611ab157634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611ac957611ac961189e565b500190565b600082821015611ae057611ae061189e565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b355784516001600160a01b031683529383019391830191600101611b10565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122080da1034eb60d5a08810f81e424fa8336194bc602a69a4dcae9f4beaf646106b64736f6c63430008090033

Deployed Bytecode Sourcemap

3819:10195:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5610:83;;;;;;;;;;-1:-1:-1;5680:5:0;;;;;;;;;;;;-1:-1:-1;;;5680:5:0;;;;5610:83;;;;;;;:::i;:::-;;;;;;;;6462:161;;;;;;;;;;-1:-1:-1;6462:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;6462:161:0;1211:187:1;5887:95:0;;;;;;;;;;;;;:::i;:::-;;;1549:25:1;;;1537:2;1522:18;5887:95:0;1403:177:1;6631:313:0;;;;;;;;;;-1:-1:-1;6631:313:0;;;;;:::i;:::-;;:::i;5796:83::-;;;;;;;;;;-1:-1:-1;5796:83:0;;4740:1;2188:36:1;;2176:2;2161:18;5796:83:0;2046:184:1;6952:103:0;;;;;;;;;;-1:-1:-1;6952:103:0;;;;;:::i;:::-;;:::i;:::-;;12129:193;;;;;;;;;;;;;:::i;5990:138::-;;;;;;;;;;-1:-1:-1;5990:138:0;;;;;:::i;:::-;;:::i;2900:148::-;;;;;;;;;;;;;:::i;9680:118::-;;;;;;;;;;;;;:::i;9541:131::-;;;;;;;;;;-1:-1:-1;9541:131:0;;;;;:::i;:::-;;:::i;2686:79::-;;;;;;;;;;-1:-1:-1;2724:7:0;2751:6;2686:79;;-1:-1:-1;;;;;2751:6:0;;;3187:51:1;;3175:2;3160:18;2686:79:0;3041:203:1;5701:87:0;;;;;;;;;;-1:-1:-1;5773:7:0;;;;;;;;;;;;-1:-1:-1;;;5773:7:0;;;;5701:87;;6136:167;;;;;;;;;;-1:-1:-1;6136:167:0;;;;;:::i;:::-;;:::i;11927:194::-;;;;;;;;;;;;;:::i;9910:773::-;;;;;;;;;;;;;:::i;10695:163::-;;;;;;;;;;-1:-1:-1;10695:163:0;;;;;:::i;:::-;;:::i;6311:143::-;;;;;;;;;;-1:-1:-1;6311:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6419:18:0;;;6392:7;6419:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6311:143;6462:161;6537:4;6554:39;484:10;6577:7;6586:6;6554:8;:39::i;:::-;-1:-1:-1;6611:4:0;6462:161;;;;;:::o;5887:95::-;5940:7;4328:13;4740:1;4328:2;:13;:::i;:::-;4316:25;;:9;:25;:::i;:::-;5960:14;;5887:95;:::o;6631:313::-;6729:4;6746:36;6756:6;6764:9;6775:6;6746:9;:36::i;:::-;6793:121;6802:6;484:10;6824:89;6862:6;6824:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6824:19:0;;;;;;:11;:19;;;;;;;;484:10;6824:33;;;;;;;;;;:37;:89::i;:::-;6793:8;:121::i;:::-;-1:-1:-1;6932:4:0;6631:313;;;;;:::o;6952:103::-;2813:6;;-1:-1:-1;;;;;2813:6:0;484:10;2813:22;2805:67;;;;-1:-1:-1;;;2805:67:0;;;;;;;:::i;:::-;;;;;;;;;7024:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7024:23:0::1;-1:-1:-1::0;;;;7024:23:0;;::::1;::::0;;;::::1;::::0;;6952:103::o;12129:193::-;12195:14;;-1:-1:-1;;;;;12195:14:0;484:10;-1:-1:-1;;;;;12179:30:0;;12171:39;;;;;;12250:21;12282:32;12250:21;12282:12;:32::i;:::-;12160:162;12129:193::o;5990:138::-;-1:-1:-1;;;;;6103:16:0;;6056:7;6103:16;;;:7;:16;;;;;;6083:37;;:19;:37::i;2900:148::-;2813:6;;-1:-1:-1;;;;;2813:6:0;484:10;2813:22;2805:67;;;;-1:-1:-1;;;2805:67:0;;;;;;;:::i;:::-;3007:1:::1;2991:6:::0;;2970:40:::1;::::0;-1:-1:-1;;;;;2991:6:0;;::::1;::::0;2970:40:::1;::::0;3007:1;;2970:40:::1;3038:1;3021:19:::0;;-1:-1:-1;;;;;;3021:19:0::1;::::0;;2900:148::o;9680:118::-;2813:6;;-1:-1:-1;;;;;2813:6:0;484:10;2813:22;2805:67;;;;-1:-1:-1;;;2805:67:0;;;;;;;:::i;:::-;4328:13:::1;4740:1;4328:2;:13;:::i;:::-;4316:25;::::0;:9:::1;:25;:::i;:::-;9733:12;:22:::0;4328:13:::1;4740:1;4328:2;:13;:::i;:::-;4316:25;::::0;:9:::1;:25;:::i;:::-;9766:14;:24:::0;9680:118::o;9541:131::-;2813:6;;-1:-1:-1;;;;;2813:6:0;484:10;2813:22;2805:67;;;;-1:-1:-1;;;2805:67:0;;;;;;;:::i;:::-;9623:12:::1;;9616:6;:19;9608:28;;;::::0;::::1;;9645:12;:19:::0;9541:131::o;6136:167::-;6214:4;6231:42;484:10;6255:9;6266:6;6231:9;:42::i;11927:194::-;11993:14;;-1:-1:-1;;;;;11993:14:0;484:10;-1:-1:-1;;;;;11977:30:0;;11969:39;;;;;;12019:23;12045:24;12063:4;12045:9;:24::i;:::-;12019:50;;12080:33;12097:15;12080:16;:33::i;9910:773::-;2813:6;;-1:-1:-1;;;;;2813:6:0;484:10;2813:22;2805:67;;;;-1:-1:-1;;;2805:67:0;;;;;;;:::i;:::-;9974:11:::1;::::0;-1:-1:-1;;;9974:11:0;::::1;;;9973:12;9965:47;;;::::0;-1:-1:-1;;;9965:47:0;;7151:2:1;9965:47:0::1;::::0;::::1;7133:21:1::0;7190:2;7170:18;;;7163:30;7229:25;7209:18;;;7202:53;7272:18;;9965:47:0::1;6949:347:1::0;9965:47:0::1;10134:15;:34:::0;;-1:-1:-1;;;;;;10134:34:0::1;10080:42;10134:34:::0;;::::1;::::0;;;10179:58:::1;10196:4;10080:42:::0;4328:13:::1;4740:1;4328:2;:13;:::i;:::-;4316:25;::::0;:9:::1;:25;:::i;10179:58::-;10282:16;-1:-1:-1::0;;;;;10282:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10264:56:0::1;;10329:4;10336:16;-1:-1:-1::0;;;;;10336:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10264:96;::::0;-1:-1:-1;;;;;;10264:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7787:15:1;;;10264:96:0::1;::::0;::::1;7769:34:1::0;7839:15;;7819:18;;;7812:43;7704:18;;10264:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10248:13;:112:::0;;-1:-1:-1;;;;;;10248:112:0::1;-1:-1:-1::0;;;;;10248:112:0;;::::1;;::::0;;10371:15:::1;::::0;::::1;:31;10410:21;10441:4;10447:24;10441:4:::0;10447:9:::1;:24::i;:::-;10472:1;10474::::0;10476:7:::1;2724::::0;2751:6;-1:-1:-1;;;;;2751:6:0;;2686:79;10476:7:::1;10371:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10371:129:0;;;-1:-1:-1;;;;;8225:15:1;;;10371:129:0::1;::::0;::::1;8207:34:1::0;8257:18;;;8250:34;;;;8300:18;;;8293:34;;;;8343:18;;;8336:34;8407:15;;;8386:19;;;8379:44;10484:15:0::1;8439:19:1::0;;;8432:35;8141:19;;10371:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10511:11:0::1;:18:::0;;-1:-1:-1;;;;10575:18:0;;-1:-1:-1;;;10575:18:0;;;;10642:15:::1;::::0;10604:71:::1;::::0;-1:-1:-1;;;10604:71:0;;-1:-1:-1;;;;;10642:15:0;;::::1;10604:71;::::0;::::1;8963:51:1::0;-1:-1:-1;;9030:18:1;;;9023:34;10611:13:0;;;-1:-1:-1;10604:29:0::1;::::0;8936:18:1;;10604:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9954:729;9910:773::o:0;10695:163::-;2813:6;;-1:-1:-1;;;;;2813:6:0;484:10;2813:22;2805:67;;;;-1:-1:-1;;;2805:67:0;;;;;;;:::i;:::-;10768:6:::1;10763:88;10784:5;:12;10780:1;:16;10763:88;;;10835:4;10818;:14;10823:5;10829:1;10823:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10818:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10818:14:0;:21;;-1:-1:-1;;10818:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10798:3;::::1;::::0;::::1;:::i;:::-;;;;10763:88;;1739:246:::0;1797:7;1821:6;1817:47;;-1:-1:-1;1851:1:0;1844:8;;1817:47;1874:9;1886:5;1890:1;1886;:5;:::i;:::-;1874:17;-1:-1:-1;1919:1:0;1910:5;1914:1;1874:17;1910:5;:::i;:::-;:10;1902:56;;;;-1:-1:-1;;;1902:56:0;;10014:2:1;1902:56:0;;;9996:21:1;10053:2;10033:18;;;10026:30;10092:34;10072:18;;;10065:62;-1:-1:-1;;;10143:18:1;;;10136:31;10184:19;;1902:56:0;9812:397:1;1902:56:0;1976:1;1739:246;-1:-1:-1;;;1739:246:0:o;1993:132::-;2051:7;2078:39;2082:1;2085;2078:39;;;;;;;;;;;;;;;;;:3;:39::i;7325:335::-;-1:-1:-1;;;;;7418:19:0;;7410:68;;;;-1:-1:-1;;;7410:68:0;;10416:2:1;7410:68:0;;;10398:21:1;10455:2;10435:18;;;10428:30;10494:34;10474:18;;;10467:62;-1:-1:-1;;;10545:18:1;;;10538:34;10589:19;;7410:68:0;10214:400:1;7410:68:0;-1:-1:-1;;;;;7497:21:0;;7489:68;;;;-1:-1:-1;;;7489:68:0;;10821:2:1;7489:68:0;;;10803:21:1;10860:2;10840:18;;;10833:30;10899:34;10879:18;;;10872:62;-1:-1:-1;;;10950:18:1;;;10943:32;10992:19;;7489:68:0;10619:398:1;7489:68:0;-1:-1:-1;;;;;7568:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7620:32;;1549:25:1;;;7620:32:0;;1522:18:1;7620:32:0;;;;;;;7325:335;;;:::o;7668:1374::-;-1:-1:-1;;;;;7756:18:0;;7748:68;;;;-1:-1:-1;;;7748:68:0;;11224:2:1;7748:68:0;;;11206:21:1;11263:2;11243:18;;;11236:30;11302:34;11282:18;;;11275:62;-1:-1:-1;;;11353:18:1;;;11346:35;11398:19;;7748:68:0;11022:401:1;7748:68:0;-1:-1:-1;;;;;7835:16:0;;7827:64;;;;-1:-1:-1;;;7827:64:0;;11630:2:1;7827:64:0;;;11612:21:1;11669:2;11649:18;;;11642:30;11708:34;11688:18;;;11681:62;-1:-1:-1;;;11759:18:1;;;11752:33;11802:19;;7827:64:0;11428:399:1;7827:64:0;7919:1;7910:6;:10;7902:64;;;;-1:-1:-1;;;7902:64:0;;12034:2:1;7902:64:0;;;12016:21:1;12073:2;12053:18;;;12046:30;12112:34;12092:18;;;12085:62;-1:-1:-1;;;12163:18:1;;;12156:39;12212:19;;7902:64:0;11832:405:1;7902:64:0;2724:7;2751:6;-1:-1:-1;;;;;7985:15:0;;;2751:6;;7985:15;;;;:32;;-1:-1:-1;2724:7:0;2751:6;-1:-1:-1;;;;;8004:13:0;;;2751:6;;8004:13;;7985:32;7981:1011;;;-1:-1:-1;;;;;8043:10:0;;;;;;:4;:10;;;;;;;;8042:11;:24;;;;-1:-1:-1;;;;;;8058:8:0;;;;;;:4;:8;;;;;;;;8057:9;8042:24;8034:33;;;;;;8094:1;8082:9;:13;8122:12;;8110:9;:24;8161:13;;-1:-1:-1;;;;;8153:21:0;;;8161:13;;8153:21;:55;;;;-1:-1:-1;8192:15:0;;-1:-1:-1;;;;;8178:30:0;;;8192:15;;8178:30;;8153:55;:83;;;;-1:-1:-1;;;;;;8214:22:0;;;;;;:18;:22;;;;;;;;8212:24;8153:83;:102;;;;-1:-1:-1;8240:15:0;;-1:-1:-1;;;8240:15:0;;;;8153:102;8149:332;;;8323:12;;8313:6;:22;;8305:60;;;;-1:-1:-1;;;8305:60:0;;12444:2:1;8305:60:0;;;12426:21:1;12483:2;12463:18;;;12456:30;12522:27;12502:18;;;12495:55;12567:18;;8305:60:0;12242:349:1;8305:60:0;8418:14;;8408:6;8392:13;8402:2;8392:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8384:79;;;;-1:-1:-1;;;8384:79:0;;12931:2:1;8384:79:0;;;12913:21:1;12970:2;12950:18;;;12943:30;13009:28;12989:18;;;12982:56;13055:18;;8384:79:0;12729:350:1;8384:79:0;8499:28;8530:24;8548:4;8530:9;:24::i;:::-;8574:6;;8499:55;;-1:-1:-1;;;;8574:6:0;;;;8573:7;:32;;;;-1:-1:-1;8592:13:0;;-1:-1:-1;;;;;8584:21:0;;;8592:13;;8584:21;;8573:32;:47;;;;-1:-1:-1;8609:11:0;;-1:-1:-1;;;8609:11:0;;;;8573:47;:73;;;;;8645:1;8624:20;:22;8573:73;8569:344;;;8667:38;8684:20;8667:16;:38::i;:::-;8753:21;8796:22;;8793:105;;8843:35;8856:21;8843:12;:35::i;:::-;8648:265;8569:344;8019:905;7981:1011;;;8953:1;8941:9;:13;;;8967:9;:13;7981:1011;9004:30;9019:4;9024:2;9027:6;9004:14;:30::i;:::-;7668:1374;;;:::o;1541:190::-;1627:7;1663:12;1655:6;;;;1647:29;;;;-1:-1:-1;;;1647:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1687:9:0;1699:5;1703:1;1699;:5;:::i;:::-;1687:17;1541:190;-1:-1:-1;;;;;1541:190:0:o;9806:96::-;9863:14;;:31;;-1:-1:-1;;;;;9863:14:0;;;;:31;;;;;9887:6;;9863:14;:31;:14;:31;9887:6;9863:14;:31;;;;;;;;;;;;;;;;;;;7063:254;7130:7;7169;;7158;:18;;7150:73;;;;-1:-1:-1;;;7150:73:0;;13416:2:1;7150:73:0;;;13398:21:1;13455:2;13435:18;;;13428:30;13494:34;13474:18;;;13467:62;-1:-1:-1;;;13545:18:1;;;13538:40;13595:19;;7150:73:0;13214:406:1;7150:73:0;7234:19;7257:10;:8;:10::i;:::-;7234:33;-1:-1:-1;7285:24:0;:7;7234:33;7285:11;:24::i;9050:483::-;5188:6;:13;;-1:-1:-1;;;;5188:13:0;-1:-1:-1;;;5188:13:0;;;9152:16:::1;::::0;;9166:1:::1;9152:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9152:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9152:16:0::1;9128:40;;9197:4;9179;9184:1;9179:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9179:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9223:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9223:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9179:7;;9223:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9213:4;9218:1;9213:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9213:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9288:15:::1;::::0;9256:62:::1;::::0;9273:4:::1;::::0;9288:15:::1;9306:11:::0;9256:8:::1;:62::i;:::-;9329:15;::::0;:196:::1;::::0;-1:-1:-1;;;9329:196:0;;-1:-1:-1;;;;;9329:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9410:11;;9329:15:::1;::::0;9452:4;;9479::::1;::::0;9499:15:::1;::::0;9329:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5224:6:0;:14;;-1:-1:-1;;;;5224:14:0;;;-1:-1:-1;;;;9050:483:0:o;2133:189::-;2219:7;2254:12;2247:5;2239:28;;;;-1:-1:-1;;;2239:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2278:9:0;2290:5;2294:1;2290;:5;:::i;10866:146::-;10960:44;10978:6;10986:9;10997:6;10960:17;:44::i;13584:163::-;13625:7;13646:15;13663;13682:19;:17;:19::i;:::-;13645:56;;-1:-1:-1;13645:56:0;-1:-1:-1;13719:20:0;13645:56;;13719:11;:20::i;:::-;13712:27;;;;13584:163;:::o;11020:487::-;11119:15;11136:23;11161:12;11175:23;11200:12;11214:13;11231:19;11242:7;11231:10;:19::i;:::-;-1:-1:-1;;;;;11279:15:0;;;;;;:7;:15;;;;;;11118:132;;-1:-1:-1;11118:132:0;;-1:-1:-1;11118:132:0;;-1:-1:-1;11118:132:0;-1:-1:-1;11118:132:0;-1:-1:-1;11118:132:0;-1:-1:-1;11279:28:0;;11118:132;11279:19;:28::i;:::-;-1:-1:-1;;;;;11261:15:0;;;;;;;:7;:15;;;;;;:46;;;;11339:18;;;;;;;:39;;11362:15;11339:22;:39::i;:::-;-1:-1:-1;;;;;11318:18:0;;;;;;:7;:18;;;;;:60;11389:16;11399:5;11389:9;:16::i;:::-;11416:23;11428:4;11434;11416:11;:23::i;:::-;11472:9;-1:-1:-1;;;;;11455:44:0;11464:6;-1:-1:-1;;;;;11455:44:0;;11483:15;11455:44;;;;1549:25:1;;1537:2;1522:18;;1403:177;11455:44:0;;;;;;;;11107:400;;;;;;11020:487;;;:::o;13755:256::-;13852:7;;13805;;;;;4328:13;4740:1;4328:2;:13;:::i;:::-;4316:25;;:9;:25;:::i;:::-;13870;-1:-1:-1;13920:20:0;4328:13;4740:1;4328:2;:13;:::i;:::-;4316:25;;:9;:25;:::i;:::-;13920:7;;;:11;:20::i;:::-;13910:7;:30;13906:61;;;13950:7;;4328:13;4740:1;4328:2;:13;:::i;:::-;4316:25;;:9;:25;:::i;:::-;13942;;;;;;13755:256;;:::o;13906:61::-;13986:7;;13995;;-1:-1:-1;13755:256:0;-1:-1:-1;13755:256:0:o;12332:471::-;12391:7;12400;12409;12418;12427;12436;12457:23;12482:12;12496:13;12513:42;12525:7;12534:9;;12545;;12513:11;:42::i;:::-;12456:99;;;;;;12566:19;12589:10;:8;:10::i;:::-;12566:33;;12611:15;12628:23;12653:12;12669:46;12681:7;12690:4;12696:5;12703:11;12669;:46::i;:::-;12610:105;;-1:-1:-1;12610:105:0;-1:-1:-1;12610:105:0;-1:-1:-1;12766:15:0;;-1:-1:-1;12783:4:0;;-1:-1:-1;12789:5:0;;-1:-1:-1;;;;;12332:471:0;;;;;;;:::o;1397:136::-;1455:7;1482:43;1486:1;1489;1482:43;;;;;;;;;;;;;;;;;:3;:43::i;1210:179::-;1268:7;;1300:5;1304:1;1300;:5;:::i;:::-;1288:17;;1329:1;1324;:6;;1316:46;;;;-1:-1:-1;;;1316:46:0;;14812:2:1;1316:46:0;;;14794:21:1;14851:2;14831:18;;;14824:30;14890:29;14870:18;;;14863:57;14937:18;;1316:46:0;14610:351:1;11515:212:0;11568:19;11591:10;:8;:10::i;:::-;11568:33;-1:-1:-1;11612:13:0;11628:22;:5;11568:33;11628:9;:22::i;:::-;11702:4;11686:22;;;;:7;:22;;;;;;11612:38;;-1:-1:-1;11686:33:0;;11612:38;11686:26;:33::i;:::-;11677:4;11661:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11515:212:0:o;11735:147::-;11813:7;;:17;;11825:4;11813:11;:17::i;:::-;11803:7;:27;11854:10;;:20;;11869:4;11854:14;:20::i;:::-;11841:10;:33;-1:-1:-1;;11735:147:0:o;12811:351::-;12904:7;;;;12957:28;12981:3;12957:19;:7;12969:6;12957:11;:19::i;:::-;:23;;:28::i;:::-;12942:43;-1:-1:-1;12996:13:0;13012:29;13037:3;13012:20;:7;13024;13012:11;:20::i;:29::-;12996:45;-1:-1:-1;13052:23:0;13078:28;12996:45;13078:17;:7;13090:4;13078:11;:17::i;:::-;:21;;:28::i;:::-;13052:54;13142:4;;-1:-1:-1;13148:5:0;;-1:-1:-1;12811:351:0;;-1:-1:-1;;;;;12811:351:0:o;13170:409::-;13280:7;;;;13336:24;:7;13348:11;13336;:24::i;:::-;13318:42;-1:-1:-1;13371:12:0;13386:21;:4;13395:11;13386:8;:21::i;:::-;13371:36;-1:-1:-1;13418:13:0;13434:22;:5;13444:11;13434:9;:22::i;:::-;13418:38;-1:-1:-1;13467:23:0;13493:28;13418:38;13493:17;:7;13505:4;13493:11;:17::i;:28::-;13540:7;;;;-1:-1:-1;13566:4:0;;-1:-1:-1;13170:409:0;;-1:-1:-1;;;;;;;13170: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;2235:118::-;2321:5;2314:13;2307:21;2300:5;2297:32;2287:60;;2343:1;2340;2333:12;2358:241;2414:6;2467:2;2455:9;2446:7;2442:23;2438:32;2435:52;;;2483:1;2480;2473:12;2435:52;2522:9;2509:23;2541:28;2563:5;2541:28;:::i;2604:247::-;2663:6;2716:2;2704:9;2695:7;2691:23;2687:32;2684:52;;;2732:1;2729;2722:12;2684:52;2771:9;2758:23;2790:31;2815:5;2790:31;:::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:127::-;4961:10;4956:3;4952:20;4949:1;4942:31;4992:4;4989:1;4982:15;5016:4;5013:1;5006:15;5032:422;5121:1;5164:5;5121:1;5178:270;5199:7;5189:8;5186:21;5178:270;;;5258:4;5254:1;5250:6;5246:17;5240:4;5237:27;5234:53;;;5267:18;;:::i;:::-;5317:7;5307:8;5303:22;5300:55;;;5337:16;;;;5300:55;5416:22;;;;5376:15;;;;5178:270;;;5182:3;5032:422;;;;;:::o;5459:806::-;5508:5;5538:8;5528:80;;-1:-1:-1;5579:1:1;5593:5;;5528:80;5627:4;5617:76;;-1:-1:-1;5664:1:1;5678:5;;5617:76;5709:4;5727:1;5722:59;;;;5795:1;5790:130;;;;5702:218;;5722:59;5752:1;5743:10;;5766:5;;;5790:130;5827:3;5817:8;5814:17;5811:43;;;5834:18;;:::i;:::-;-1:-1:-1;;5890:1:1;5876:16;;5905:5;;5702:218;;6004:2;5994:8;5991:16;5985:3;5979:4;5976:13;5972:36;5966:2;5956:8;5953:16;5948:2;5942:4;5939:12;5935:35;5932:77;5929:159;;;-1:-1:-1;6041:19:1;;;6073:5;;5929:159;6120:34;6145:8;6139:4;6120:34;:::i;:::-;6190:6;6186:1;6182:6;6178:19;6169:7;6166:32;6163:58;;;6201:18;;:::i;:::-;6239:20;;5459:806;-1:-1:-1;;;5459:806:1:o;6270:140::-;6328:5;6357:47;6398:4;6388:8;6384:19;6378:4;6357:47;:::i;6415:168::-;6455:7;6521:1;6517;6513:6;6509:14;6506:1;6503:21;6498:1;6491:9;6484:17;6480:45;6477:71;;;6528:18;;:::i;:::-;-1:-1:-1;6568:9:1;;6415:168::o;6588:356::-;6790:2;6772:21;;;6809:18;;;6802:30;6868:34;6863:2;6848:18;;6841:62;6935:2;6920:18;;6588:356::o;7301:251::-;7371:6;7424:2;7412:9;7403:7;7399:23;7395:32;7392:52;;;7440:1;7437;7430:12;7392:52;7472:9;7466:16;7491:31;7516:5;7491:31;:::i;8478:306::-;8566:6;8574;8582;8635:2;8623:9;8614:7;8610:23;8606:32;8603:52;;;8651:1;8648;8641:12;8603:52;8680:9;8674:16;8664:26;;8730:2;8719:9;8715:18;8709:25;8699:35;;8774:2;8763:9;8759:18;8753:25;8743:35;;8478:306;;;;;:::o;9068:245::-;9135:6;9188:2;9176:9;9167:7;9163:23;9159:32;9156:52;;;9204:1;9201;9194:12;9156:52;9236:9;9230:16;9255:28;9277:5;9255:28;:::i;9318:127::-;9379:10;9374:3;9370:20;9367:1;9360:31;9410:4;9407:1;9400:15;9434:4;9431:1;9424:15;9450:135;9489:3;-1:-1:-1;;9510:17:1;;9507:43;;;9530:18;;:::i;:::-;-1:-1:-1;9577:1:1;9566:13;;9450:135::o;9590:217::-;9630:1;9656;9646:132;;9700:10;9695:3;9691:20;9688:1;9681:31;9735:4;9732:1;9725:15;9763:4;9760:1;9753:15;9646:132;-1:-1:-1;9792:9:1;;9590:217::o;12596:128::-;12636:3;12667:1;12663:6;12660:1;12657:13;12654:39;;;12673:18;;:::i;:::-;-1:-1:-1;12709:9:1;;12596:128::o;13084:125::-;13124:4;13152:1;13149;13146:8;13143:34;;;13157:18;;:::i;:::-;-1:-1:-1;13194:9:1;;13084:125::o;13625:980::-;13887:4;13935:3;13924:9;13920:19;13966:6;13955:9;13948:25;13992:2;14030:6;14025:2;14014:9;14010:18;14003:34;14073:3;14068:2;14057:9;14053:18;14046:31;14097:6;14132;14126:13;14163:6;14155;14148:22;14201:3;14190:9;14186:19;14179:26;;14240:2;14232:6;14228:15;14214:29;;14261:1;14271:195;14285:6;14282:1;14279:13;14271:195;;;14350:13;;-1:-1:-1;;;;;14346:39:1;14334:52;;14441:15;;;;14406:12;;;;14382:1;14300:9;14271:195;;;-1:-1:-1;;;;;;;14522:32:1;;;;14517:2;14502:18;;14495:60;-1:-1:-1;;;14586:3:1;14571:19;14564:35;14483:3;13625:980;-1:-1:-1;;;13625:980:1:o

Swarm Source

ipfs://80da1034eb60d5a08810f81e424fa8336194bc602a69a4dcae9f4beaf646106b

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.