ETH Price: $1,980.07 (+0.17%)
 

Overview

ETH Balance

0.000546984914080591 ETH

Eth Value

$1.08 (@ $1,980.07/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve140765052022-01-25 19:02:201488 days ago1643137340IN
0xa28F5Da0...ce2Ea698a
0 ETH0.01444755542
Approve140765042022-01-25 19:01:571488 days ago1643137317IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00524561196.78936201
Approve140765042022-01-25 19:01:571488 days ago1643137317IN
0xa28F5Da0...ce2Ea698a
0 ETH0.023278500
Approve140765042022-01-25 19:01:571488 days ago1643137317IN
0xa28F5Da0...ce2Ea698a
0 ETH0.023278500
Approve140765042022-01-25 19:01:571488 days ago1643137317IN
0xa28F5Da0...ce2Ea698a
0 ETH0.023278500
Approve140765042022-01-25 19:01:571488 days ago1643137317IN
0xa28F5Da0...ce2Ea698a
0 ETH0.023278500
Approve140765042022-01-25 19:01:571488 days ago1643137317IN
0xa28F5Da0...ce2Ea698a
0 ETH0.023278500
Approve140765042022-01-25 19:01:571488 days ago1643137317IN
0xa28F5Da0...ce2Ea698a
0 ETH0.023278500
Approve140765042022-01-25 19:01:571488 days ago1643137317IN
0xa28F5Da0...ce2Ea698a
0 ETH0.023278500
Set Exclude From...140764972022-01-25 19:01:231488 days ago1643137283IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00823522173.94813147
Approve140764962022-01-25 19:00:591488 days ago1643137259IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00930942349.2432498
Approve140764842022-01-25 18:58:541488 days ago1643137134IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00633006135.96664792
Approve140764392022-01-25 18:49:271488 days ago1643136567IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00736301158.15401766
Approve140764322022-01-25 18:48:111488 days ago1643136491IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00779235167.37588613
Set Trading Enab...140764222022-01-25 18:46:431488 days ago1643136403IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00595412207.0641456
Approve140764222022-01-25 18:46:431488 days ago1643136403IN
0xa28F5Da0...ce2Ea698a
0 ETH0.02006438430.9731023
Approve140764142022-01-25 18:45:141488 days ago1643136314IN
0xa28F5Da0...ce2Ea698a
0 ETH0.01087094233.50249477
Approve140764112022-01-25 18:44:221488 days ago1643136262IN
0xa28F5Da0...ce2Ea698a
0 ETH0.01111299238.701571
Approve140764002022-01-25 18:41:061488 days ago1643136066IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00885238190.14481781
Approve140764002022-01-25 18:41:061488 days ago1643136066IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00885238190.14481781
Approve140764002022-01-25 18:41:061488 days ago1643136066IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00885238190.14481781
Approve140763982022-01-25 18:40:081488 days ago1643136008IN
0xa28F5Da0...ce2Ea698a
0 ETH0.0078472168.55403878
Approve140763972022-01-25 18:40:021488 days ago1643136002IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00813207174.67303622
Approve140763962022-01-25 18:39:451488 days ago1643135985IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00424871159.3904184
Approve140763962022-01-25 18:39:451488 days ago1643135985IN
0xa28F5Da0...ce2Ea698a
0 ETH0.00826861177.60574812
View all transactions

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-140764222022-01-25 18:46:431488 days ago1643136403
0xa28F5Da0...ce2Ea698a
0.07402887 ETH
-140764222022-01-25 18:46:431488 days ago1643136403
0xa28F5Da0...ce2Ea698a
0.09085636 ETH
-140763862022-01-25 18:37:511488 days ago1643135871
0xa28F5Da0...ce2Ea698a
0.01425345 ETH
-140763462022-01-25 18:29:221488 days ago1643135362
0xa28F5Da0...ce2Ea698a
0.00054698 ETH
-140763462022-01-25 18:29:221488 days ago1643135362
0xa28F5Da0...ce2Ea698a
0.00054698 ETH
-140763442022-01-25 18:29:001488 days ago1643135340
0xa28F5Da0...ce2Ea698a
5 ETH
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:
THE_BOY_WHO_SAVED_CRYPTO

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

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

// THE BOY WHO SAVED CRYPTO'S OFFICIAL LINKS:
// https://t.me/sminemtokenerc
// https://www.sminem.capital/
// www.twitter.com/sminemerctoken



// File: contracts/FirstBlockBots.sol

abstract contract FirstBlockBots {
    mapping(address => bool) public isBot;
    uint256 notBanBlock;

    function startAntibot() internal {
        notBanBlock = block.number + 1;
    }

    function isAutoBanBots() public view returns (bool) {
        return block.number < notBanBlock;
    }

    function trySetBot(address account) internal {
        if (!isAutoBanBots()) return;
        isBot[account] = true;
    }

    function checkBot(address account) internal view {
        require(!isBot[account], "bot detected");
    }
}

// File: contracts/IERC20.sol

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
    );
}
// File: contracts/ERC20.sol

pragma solidity ^0.8.7;


abstract contract ERC20 is IERC20 {
    uint256 internal constant _totalSupply = 1234567890;
    string _name;
    string _symbol;
    uint8 constant _decimals = 0;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() external view returns (string memory) {
        return _name;
    }

    function symbol() external view returns (string memory) {
        return _symbol;
    }

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

    function totalSupply() external view override returns (uint256) {
        return _totalSupply - _balances[address(0)];
    }

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

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual;

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

    function approve(address spender, uint256 amount)
        external
        override
        returns (bool)
    {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount);
        if (currentAllowance < _totalSupply) {
            unchecked {
                _approve(sender, msg.sender, currentAllowance - amount);
            }
        }
        return true;
    }
}
// File: contracts/MaxBuyDynamic.sol



abstract contract MaxBuyDynamic is ERC20 {
    uint256 public maxBuy;
    uint256 constant maxBuyIncrementMinutesTimer = 2; // increment maxbuy minutes
    uint256 constant maxBuyIncrementPercentil = 1; // increment maxbyu percentil 1000=100%
    uint256 public maxBuyIncrementValue; // value for increment maxBuy
    uint256 public incrementTime; // last increment time

    function startMaxBuyDynamic() internal {
        incrementTime = block.timestamp;
        maxBuyIncrementValue = (_totalSupply * maxBuyIncrementPercentil) / 1000;
    }

    function checkAndIncrementMaxBuyLimit(uint256 amount) internal {
        // increment maxBuy
        uint256 incrementCount = (block.timestamp - incrementTime) /
            (maxBuyIncrementMinutesTimer * 1 minutes);
        if (incrementCount > 0) {
            if (maxBuy < _totalSupply) {
                unchecked {
                    maxBuy += maxBuyIncrementValue * incrementCount;
                }
            }
            incrementTime = block.timestamp;
        }
        // maxBuy limitation
        require(amount <= maxBuy);
    }

    function getMaxBuy() external view returns (uint256) {
        uint256 incrementCount = (block.timestamp - incrementTime) /
            (maxBuyIncrementMinutesTimer * 1 minutes);
        if (incrementCount == 0) return maxBuy;

        return maxBuy + maxBuyIncrementValue * incrementCount;
    }

    function setMaxBuyPercentil(uint256 percentil) internal {
        maxBuy = (_totalSupply * percentil) / 1000;
    }
}

// File: contracts/IUniswapV2Router02.sol

pragma solidity ^0.8.7;

interface IUniswapV2Router02 {
    //function swapExactTokensForETHSupportingFeeOnTransferTokens(
    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
// File: contracts/IUniswapV2Factory.sol

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
// File: contracts/Ownable.sol

abstract contract Ownable {
    address _owner;

    modifier onlyOwner() {
        require(msg.sender == _owner);
        _;
    }

    constructor() {
        _owner = msg.sender;
    }

    function transferOwnership(address newOwner) external onlyOwner {
        _owner = newOwner;
    }
}

// File: contracts/TradableErc20.sol

pragma solidity ^0.8.7;

//import "hardhat/console.sol";






abstract contract TradableErc20 is MaxBuyDynamic, FirstBlockBots, Ownable {
    IUniswapV2Router02 internal constant _uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapV2Pair;
    bool public tradingEnable;
    mapping(address => bool) _isExcludedFromFee;
    bool _inSwap;
    mapping(address => uint256) _buyTimes;
    uint256 _sellDelay = 24; // sell delay in hours
    uint256 public tax24HoursPercent = 30;
    uint256 public maxWalletValue;

    modifier lockTheSwap() {
        _inSwap = true;
        _;
        _inSwap = false;
    }

    constructor(string memory name_, string memory symbol_)
        ERC20(name_, symbol_)
    {
        _isExcludedFromFee[address(0)] = true;
    }

    receive() external payable {}

    function makeLiquidity() public onlyOwner {
        require(uniswapV2Pair == address(0));
        address pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
            address(this),
            _uniswapV2Router.WETH()
        );
        uint256 initialSupply = getSupplyForMakeLiquidity();
        _balances[address(this)] = initialSupply;
        _allowances[address(this)][address(_uniswapV2Router)] = _totalSupply; // approve uniswap router to transfer infinity contract tokens
        _isExcludedFromFee[pair] = true;
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            initialSupply,
            0,
            0,
            msg.sender,
            block.timestamp
        );

        uniswapV2Pair = pair;
        tradingEnable = true;

        startAntibot();
        startMaxBuyDynamic();
        setMaxWalletValuePercentil(10);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        // get start balances
        uint256 startBalanceFrom = _balances[from];
        uint256 startBalanceTo = _balances[to];
        require(startBalanceFrom >= amount, "not enough token for transfer");

        // buy
        if (from == uniswapV2Pair && !_isExcludedFromFee[to]) {
            // trading enable
            require(tradingEnable, "trading disabled");
            // max buy limit
            if (!isAutoBanBots()) checkAndIncrementMaxBuyLimit(amount);
            trySetBot(to);
            // calculate fee
            uint256 devFee = amount / 20; // 5% to contract
            uint256 burnFee = amount / 50; // 2% burn
            // transfers
            unchecked {
                _balances[from] = startBalanceFrom - amount;
                _balances[to] = startBalanceTo + amount - devFee - burnFee;
                _balances[address(this)] += devFee;
                _balances[address(0)] += burnFee;
            }
            emit Transfer(from, to, amount);
            emit Transfer(to, address(this), devFee);
            emit Transfer(to, address(0), burnFee);
            // save buy time
            _buyTimes[to] = block.timestamp;
            // max wallet limit
            require(_balances[to] <= maxWalletValue, "max wallet limit");
            // transfer end
            return;
        }

        // sell
        if (!_inSwap && uniswapV2Pair != address(0) && to == uniswapV2Pair) {
            // trading enable
            require(tradingEnable, "trading disabled");
            // antibot
            checkBot(from);
            // get start balances
            uint256 contractBalance = _balances[address(this)];
            uint256 zeroBalance = _balances[address(0)];
            // calculate fee
            uint256 devFee = amount / 20; // 5%
            uint256 burnCount = getSellBurnCount(from, amount); // burn count
            // transfer tokens calculations
            uint256 amountTransfered = amount - devFee + burnCount;
            contractBalance += devFee;
            zeroBalance += burnCount;
            // calculate swap contract tokens count
            uint256 swapCount;
            if (contractBalance > 0) {
                // burn contract token surplus
                uint256 maxContractBalance = _balances[uniswapV2Pair] / 25; // 4% max contract balance
                if (contractBalance > maxContractBalance) {
                    uint256 contractBurnCount;
                    unchecked {
                        contractBurnCount =
                            contractBalance -
                            maxContractBalance;
                        contractBalance = maxContractBalance;
                        zeroBalance += contractBurnCount;
                    }
                    emit Transfer(address(this), address(0), contractBurnCount);
                }
                // swap contract tokens count
                swapCount = contractBalance;
                uint256 maxSwapCount = 2 * amountTransfered;
                if (swapCount > maxSwapCount) swapCount = maxSwapCount;
            }

            // swap contract tokens
            _balances[address(this)] = contractBalance;
            emit Transfer(from, address(this), devFee);
            if (swapCount > 0) swapTokensForEth(swapCount);

            // transfer tokens write
            unchecked {
                _balances[from] = startBalanceFrom - amount;
                _balances[to] = startBalanceTo + amountTransfered;
                _balances[address(0)] = zeroBalance;
            }
            emit Transfer(from, to, amount);
            emit Transfer(from, address(0), burnCount);
            return;
        }

        // transfer
        unchecked {
            _balances[from] = startBalanceFrom - amount;
            _balances[to] = startBalanceTo + amount;
        }
        emit Transfer(from, to, amount);

        // account limitations
        if (!_isExcludedFromFee[to]) {
            uint256 burnCount = getSellBurnCount(from, amount); // burn count
            _balances[to] -= burnCount;
            _balances[address(0)] += burnCount;
            emit Transfer(to, address(0), burnCount);
            // max wallet limit
            require(_balances[to] <= maxWalletValue, "max wallet limit");
        }
    }

    function getSellBurnCount(address account, uint256 amount)
        public
        view
        returns (uint256)
    {
        // calculate fee percent
        uint256 buyTime = _buyTimes[account];
        uint256 timeEnd = buyTime + _sellDelay * 1 hours;
        if (block.timestamp >= timeEnd) return amount / 20; // 5%
        uint256 timeLeft = timeEnd - block.timestamp;
        return
            amount /
            20 +
            (amount * tax24HoursPercent * timeLeft) /
            (100 * _sellDelay * 1 hours); // 5% + delay tax
    }

    function setMaxWalletValuePercentil(uint256 percentil) public onlyOwner {
        maxWalletValue = (_totalSupply * percentil) / 1000;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        // make the swap
        _uniswapV2Router.swapExactTokensForETH(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
    }

    function setExcludeFromFee(address[] memory accounts, bool value)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < accounts.length; ++i) {
            _isExcludedFromFee[accounts[i]] = value;
        }
    }

    function setTradingEnable(bool value) external onlyOwner {
        tradingEnable = value;
    }

    function setBots(address[] memory accounts, bool value) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; ++i) {
            isBot[accounts[i]] = value;
        }
    }

    function getSupplyForMakeLiquidity() internal virtual returns (uint256);
}

// File: contracts/Withdrawable.sol

abstract contract Withdrawable {
    address internal _withdrawAddress;

    modifier onlyWithdrawer() {
        require(msg.sender == _withdrawAddress);
        _;
    }

    function withdraw() external onlyWithdrawer {
        _withdraw();
    }

    function _withdraw() internal {
        payable(_withdrawAddress).transfer(address(this).balance);
    }

    function setWithdrawAddress(address newWithdrawAddress)
        external
        onlyWithdrawer
    {
        _withdrawAddress = newWithdrawAddress;
    }
}

// File: contracts/THE_BOY_WHO_SAVED_CRYPTO.sol

pragma solidity ^0.8.7;



contract THE_BOY_WHO_SAVED_CRYPTO is TradableErc20, Withdrawable {
    constructor() TradableErc20("THE BOY WHO SAVED CRYPTO", "SMINEM") {
        _withdrawAddress = address(0xd9C17345999274A94526339C7B04B0C8900b39C0);
        setMaxBuyPercentil(2);
    }

    function getSupplyForMakeLiquidity() internal pure override returns (uint256) {
        return _totalSupply;
    }

    function withdrawByOwner() external onlyOwner{
        _withdraw();
    }
}

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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getMaxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getSellBurnCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"incrementTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isAutoBanBots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"makeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyIncrementValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentil","type":"uint256"}],"name":"setMaxWalletValuePercentil","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setTradingEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWithdrawAddress","type":"address"}],"name":"setWithdrawAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tax24HoursPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawByOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526018600e55601e600f553480156200001b57600080fd5b50604080518082018252601881527f54484520424f592057484f2053415645442043525950544f0000000000000000602080830191825283518085019094526006845265534d494e454d60d01b90840152815191929183918391620000839160009162000140565b5080516200009990600190602084019062000140565b5050600980546001600160a01b0319908116331790915560008052600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76805460ff191660011790556011805490911673d9c17345999274a94526339c7b04b0c8900b39c017905550620001159150600290506200011b565b62000274565b6103e86200012e8263499602d262000209565b6200013a9190620001e6565b60045550565b8280546200014e9062000237565b90600052602060002090601f016020900481019282620001725760008555620001bd565b82601f106200018d57805160ff1916838001178555620001bd565b82800160010185558215620001bd579182015b82811115620001bd578251825591602001919060010190620001a0565b50620001cb929150620001cf565b5090565b5b80821115620001cb5760008155600101620001d0565b6000826200020457634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156200023257634e487b7160e01b600052601160045260246000fd5b500290565b600181811c908216806200024c57607f821691505b602082108114156200026e57634e487b7160e01b600052602260045260246000fd5b50919050565b611b7c80620002846000396000f3fe6080604052600436106101c65760003560e01c806370db69d6116100f7578063a9059cbb11610095578063b203919e11610064578063b203919e146104f0578063c74e665114610505578063dd62ed3e1461051b578063f2fde38b1461056157600080fd5b8063a9059cbb14610484578063abee5c4c146104a4578063aff41b7b146104c4578063b0b04ab2146104da57600080fd5b806395d89b41116100d157806395d89b411461042457806396790d4a1461043957806399bf32661461044e5780639c0db5f31461046457600080fd5b806370db69d6146103ce5780637439c236146103e457806391ba073c1461040457600080fd5b80633ab1a4941161016457806349bd5a5e1161013e57806349bd5a5e146103295780636c90b57f146103615780636f570dca1461038157806370a082311461039857600080fd5b80633ab1a494146102c45780633bbac579146102e45780633ccfd60b1461031457600080fd5b80631693e8d4116101a05780631693e8d41461024457806318160ddd1461026557806323b872dd14610288578063313ce567146102a857600080fd5b806305f2327e146101d257806306fdde03146101e9578063095ea7b31461021457600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610581565b005b3480156101f557600080fd5b506101fe6105a2565b60405161020b9190611923565b60405180910390f35b34801561022057600080fd5b5061023461022f3660046117b7565b610634565b604051901515815260200161020b565b34801561025057600080fd5b50600a5461023490600160a01b900460ff1681565b34801561027157600080fd5b5061027a61064b565b60405190815260200161020b565b34801561029457600080fd5b506102346102a3366004611776565b610678565b3480156102b457600080fd5b506040516000815260200161020b565b3480156102d057600080fd5b506101e76102df3660046116fc565b6106da565b3480156102f057600080fd5b506102346102ff3660046116fc565b60076020526000908152604090205460ff1681565b34801561032057600080fd5b506101e7610713565b34801561033557600080fd5b50600a54610349906001600160a01b031681565b6040516001600160a01b03909116815260200161020b565b34801561036d57600080fd5b506101e761037c3660046117e3565b61072a565b34801561038d57600080fd5b506008544310610234565b3480156103a457600080fd5b5061027a6103b33660046116fc565b6001600160a01b031660009081526002602052604090205490565b3480156103da57600080fd5b5061027a60045481565b3480156103f057600080fd5b506101e76103ff3660046118c1565b6107ab565b34801561041057600080fd5b5061027a61041f3660046117b7565b6107e0565b34801561043057600080fd5b506101fe61089c565b34801561044557600080fd5b5061027a6108ab565b34801561045a57600080fd5b5061027a60065481565b34801561047057600080fd5b506101e761047f3660046117e3565b610901565b34801561049057600080fd5b5061023461049f3660046117b7565b61097d565b3480156104b057600080fd5b506101e76104bf3660046118dc565b61098a565b3480156104d057600080fd5b5061027a60055481565b3480156104e657600080fd5b5061027a600f5481565b3480156104fc57600080fd5b506101e76109c2565b34801561051157600080fd5b5061027a60105481565b34801561052757600080fd5b5061027a61053636600461173d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561056d57600080fd5b506101e761057c3660046116fc565b610cca565b6009546001600160a01b0316331461059857600080fd5b6105a0610d03565b565b6060600080546105b190611a59565b80601f01602080910402602001604051908101604052809291908181526020018280546105dd90611a59565b801561062a5780601f106105ff5761010080835404028352916020019161062a565b820191906000526020600020905b81548152906001019060200180831161060d57829003601f168201915b5050505050905090565b6000610641338484610d3f565b5060015b92915050565b60008080526002602052600080516020611b07833981519152546106739063499602d2611a42565b905090565b6000610685848484610da0565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156106b657600080fd5b63499602d28110156106cf576106cf8533858403610d3f565b506001949350505050565b6011546001600160a01b031633146106f157600080fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b0316331461059857600080fd5b6009546001600160a01b0316331461074157600080fd5b60005b82518110156107a65781600b600085848151811061076457610764611ac5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561079f81611a94565b9050610744565b505050565b6009546001600160a01b031633146107c257600080fd5b600a8054911515600160a01b0260ff60a01b19909216919091179055565b6001600160a01b0382166000908152600d6020526040812054600e54829061080a90610e10611a23565b61081490836119e9565b905080421061083157610828601485611a01565b92505050610645565b600061083d4283611a42565b9050600e54606461084e9190611a23565b61085a90610e10611a23565b81600f54876108699190611a23565b6108739190611a23565b61087d9190611a01565b610888601487611a01565b61089291906119e9565b9695505050505050565b6060600180546105b190611a59565b6000806108ba6002603c611a23565b6006546108c79042611a42565b6108d19190611a01565b9050806108e057505060045490565b806005546108ee9190611a23565b6004546108fb91906119e9565b91505090565b6009546001600160a01b0316331461091857600080fd5b60005b82518110156107a657816007600085848151811061093b5761093b611ac5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561097681611a94565b905061091b565b6000610641338484610da0565b6009546001600160a01b031633146109a157600080fd5b6103e86109b28263499602d2611a23565b6109bc9190611a01565b60105550565b6009546001600160a01b031633146109d957600080fd5b600a546001600160a01b0316156109ef57600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3e57600080fd5b505afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190611720565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ad257600080fd5b505afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611720565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610b5257600080fd5b505af1158015610b66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8a9190611720565b9050600063499602d230600081815260026020908152604080832085905560038252808320737a250d5630b4cf539739df2c5dacb4c659f2488d80855290835281842063499602d290556001600160a01b0388168452600b909252808320805460ff191660011790555163f305d71960e01b81526004810193909352602483018490526044830182905260648301919091523360848301524260a483015291925063f305d71990479060c4016060604051808303818588803b158015610c4f57600080fd5b505af1158015610c63573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c8891906118f5565b5050600a80546001600160a81b0319166001600160a01b03851617600160a01b17905550610cb461142e565b610cbc61143e565b610cc6600a61098a565b5050565b6009546001600160a01b03163314610ce157600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6011546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610d3c573d6000803e3d6000fd5b50565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0380841660009081526002602052604080822054928516825290205482821015610e185760405162461bcd60e51b815260206004820152601d60248201527f6e6f7420656e6f75676820746f6b656e20666f72207472616e7366657200000060448201526064015b60405180910390fd5b600a546001600160a01b038681169116148015610e4e57506001600160a01b0384166000908152600b602052604090205460ff16155b1561102a57600a54600160a01b900460ff16610e9f5760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610e0f565b6008544310610eb157610eb183611463565b610eba846114c2565b6000610ec7601485611a01565b90506000610ed6603286611a01565b6001600160a01b038089166000818152600260205260408082208a8a039055928a16808252838220888b018890038690039055308252838220805488019055908052600080516020611b0783398151915280548501905591519293509091600080516020611b2783398151915290610f519089815260200190565b60405180910390a360405182815230906001600160a01b03881690600080516020611b278339815191529060200160405180910390a36040518181526000906001600160a01b03881690600080516020611b278339815191529060200160405180910390a36001600160a01b0386166000908152600d6020908152604080832042905560105460029092529091205411156110215760405162461bcd60e51b815260206004820152601060248201526f1b585e081dd85b1b195d081b1a5b5a5d60821b6044820152606401610e0f565b50505050505050565b600c5460ff161580156110475750600a546001600160a01b031615155b80156110605750600a546001600160a01b038581169116145b156112b857600a54600160a01b900460ff166110b15760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610e0f565b6110ba856114f2565b30600090815260026020526040812054818052600080516020611b078339815191525490916110ea601487611a01565b905060006110f889886107e0565b9050600081611107848a611a42565b61111191906119e9565b905061111d83866119e9565b945061112982856119e9565b9350600085156111bf57600a546001600160a01b031660009081526002602052604081205461115a90601990611a01565b90508087111561119e5760405190968790039586019587916000903090600080516020611b27833981519152906111949085815260200190565b60405180910390a3505b86915060006111ae846002611a23565b9050808311156111bc578092505b50505b3060008181526002602052604090819020889055516001600160a01b038d1690600080516020611b27833981519152906111fc9088815260200190565b60405180910390a38015611213576112138161154a565b6001600160a01b03808c166000818152600260205260408082208d8d039055928d168082528382208b87019055908052600080516020611b078339815191528890559151600080516020611b2783398151915290611274908d815260200190565b60405180910390a36040518381526000906001600160a01b038d1690600080516020611b278339815191529060200160405180910390a35050505050505050505050565b6001600160a01b0380861660008181526002602052604080822087870390559287168082529083902084870190559151600080516020611b27833981519152906113059087815260200190565b60405180910390a36001600160a01b0384166000908152600b602052604090205460ff1661142757600061133986856107e0565b6001600160a01b038616600090815260026020526040812080549293508392909190611366908490611a42565b909155505060008080526002602052600080516020611b0783398151915280548392906113949084906119e9565b90915550506040518181526000906001600160a01b03871690600080516020611b278339815191529060200160405180910390a36010546001600160a01b03861660009081526002602052604090205411156114255760405162461bcd60e51b815260206004820152601060248201526f1b585e081dd85b1b195d081b1a5b5a5d60821b6044820152606401610e0f565b505b5050505050565b6114394360016119e9565b600855565b426006556103e8611454600163499602d2611a23565b61145e9190611a01565b600555565b60006114716002603c611a23565b60065461147e9042611a42565b6114889190611a01565b905080156114b35763499602d260045410156114ae576005546004805491830290910190555b426006555b600454821115610cc657600080fd5b60085443106114ce5750565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6001600160a01b03811660009081526007602052604090205460ff1615610d3c5760405162461bcd60e51b815260206004820152600c60248201526b189bdd0819195d1958dd195960a21b6044820152606401610e0f565b600c805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061158c5761158c611ac5565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156115f957600080fd5b505afa15801561160d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116319190611720565b8160018151811061164457611644611ac5565b6001600160a01b03909216602092830291909101909101526040516318cbafe560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d906318cbafe59061169c908590600090869030904290600401611978565b600060405180830381600087803b1580156116b657600080fd5b505af11580156116ca573d6000803e3d6000fd5b5050600c805460ff1916905550505050565b80356116e781611af1565b919050565b803580151581146116e757600080fd5b60006020828403121561170e57600080fd5b813561171981611af1565b9392505050565b60006020828403121561173257600080fd5b815161171981611af1565b6000806040838503121561175057600080fd5b823561175b81611af1565b9150602083013561176b81611af1565b809150509250929050565b60008060006060848603121561178b57600080fd5b833561179681611af1565b925060208401356117a681611af1565b929592945050506040919091013590565b600080604083850312156117ca57600080fd5b82356117d581611af1565b946020939093013593505050565b600080604083850312156117f657600080fd5b823567ffffffffffffffff8082111561180e57600080fd5b818501915085601f83011261182257600080fd5b813560208282111561183657611836611adb565b8160051b604051601f19603f8301168101818110868211171561185b5761185b611adb565b604052838152828101945085830182870184018b101561187a57600080fd5b600096505b848710156118a457611890816116dc565b86526001969096019594830194830161187f565b5096506118b490508782016116ec565b9450505050509250929050565b6000602082840312156118d357600080fd5b611719826116ec565b6000602082840312156118ee57600080fd5b5035919050565b60008060006060848603121561190a57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561195057858101830151858201604001528201611934565b81811115611962576000604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119c85784516001600160a01b0316835293830193918301916001016119a3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156119fc576119fc611aaf565b500190565b600082611a1e57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611a3d57611a3d611aaf565b500290565b600082821015611a5457611a54611aaf565b500390565b600181811c90821680611a6d57607f821691505b60208210811415611a8e57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611aa857611aa8611aaf565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d3c57600080fdfeac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077bddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122090deefe51ff6836494f3c4767bf96157213976b5513ec9180d25c52e285db1ae64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806370db69d6116100f7578063a9059cbb11610095578063b203919e11610064578063b203919e146104f0578063c74e665114610505578063dd62ed3e1461051b578063f2fde38b1461056157600080fd5b8063a9059cbb14610484578063abee5c4c146104a4578063aff41b7b146104c4578063b0b04ab2146104da57600080fd5b806395d89b41116100d157806395d89b411461042457806396790d4a1461043957806399bf32661461044e5780639c0db5f31461046457600080fd5b806370db69d6146103ce5780637439c236146103e457806391ba073c1461040457600080fd5b80633ab1a4941161016457806349bd5a5e1161013e57806349bd5a5e146103295780636c90b57f146103615780636f570dca1461038157806370a082311461039857600080fd5b80633ab1a494146102c45780633bbac579146102e45780633ccfd60b1461031457600080fd5b80631693e8d4116101a05780631693e8d41461024457806318160ddd1461026557806323b872dd14610288578063313ce567146102a857600080fd5b806305f2327e146101d257806306fdde03146101e9578063095ea7b31461021457600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610581565b005b3480156101f557600080fd5b506101fe6105a2565b60405161020b9190611923565b60405180910390f35b34801561022057600080fd5b5061023461022f3660046117b7565b610634565b604051901515815260200161020b565b34801561025057600080fd5b50600a5461023490600160a01b900460ff1681565b34801561027157600080fd5b5061027a61064b565b60405190815260200161020b565b34801561029457600080fd5b506102346102a3366004611776565b610678565b3480156102b457600080fd5b506040516000815260200161020b565b3480156102d057600080fd5b506101e76102df3660046116fc565b6106da565b3480156102f057600080fd5b506102346102ff3660046116fc565b60076020526000908152604090205460ff1681565b34801561032057600080fd5b506101e7610713565b34801561033557600080fd5b50600a54610349906001600160a01b031681565b6040516001600160a01b03909116815260200161020b565b34801561036d57600080fd5b506101e761037c3660046117e3565b61072a565b34801561038d57600080fd5b506008544310610234565b3480156103a457600080fd5b5061027a6103b33660046116fc565b6001600160a01b031660009081526002602052604090205490565b3480156103da57600080fd5b5061027a60045481565b3480156103f057600080fd5b506101e76103ff3660046118c1565b6107ab565b34801561041057600080fd5b5061027a61041f3660046117b7565b6107e0565b34801561043057600080fd5b506101fe61089c565b34801561044557600080fd5b5061027a6108ab565b34801561045a57600080fd5b5061027a60065481565b34801561047057600080fd5b506101e761047f3660046117e3565b610901565b34801561049057600080fd5b5061023461049f3660046117b7565b61097d565b3480156104b057600080fd5b506101e76104bf3660046118dc565b61098a565b3480156104d057600080fd5b5061027a60055481565b3480156104e657600080fd5b5061027a600f5481565b3480156104fc57600080fd5b506101e76109c2565b34801561051157600080fd5b5061027a60105481565b34801561052757600080fd5b5061027a61053636600461173d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561056d57600080fd5b506101e761057c3660046116fc565b610cca565b6009546001600160a01b0316331461059857600080fd5b6105a0610d03565b565b6060600080546105b190611a59565b80601f01602080910402602001604051908101604052809291908181526020018280546105dd90611a59565b801561062a5780601f106105ff5761010080835404028352916020019161062a565b820191906000526020600020905b81548152906001019060200180831161060d57829003601f168201915b5050505050905090565b6000610641338484610d3f565b5060015b92915050565b60008080526002602052600080516020611b07833981519152546106739063499602d2611a42565b905090565b6000610685848484610da0565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156106b657600080fd5b63499602d28110156106cf576106cf8533858403610d3f565b506001949350505050565b6011546001600160a01b031633146106f157600080fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b0316331461059857600080fd5b6009546001600160a01b0316331461074157600080fd5b60005b82518110156107a65781600b600085848151811061076457610764611ac5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561079f81611a94565b9050610744565b505050565b6009546001600160a01b031633146107c257600080fd5b600a8054911515600160a01b0260ff60a01b19909216919091179055565b6001600160a01b0382166000908152600d6020526040812054600e54829061080a90610e10611a23565b61081490836119e9565b905080421061083157610828601485611a01565b92505050610645565b600061083d4283611a42565b9050600e54606461084e9190611a23565b61085a90610e10611a23565b81600f54876108699190611a23565b6108739190611a23565b61087d9190611a01565b610888601487611a01565b61089291906119e9565b9695505050505050565b6060600180546105b190611a59565b6000806108ba6002603c611a23565b6006546108c79042611a42565b6108d19190611a01565b9050806108e057505060045490565b806005546108ee9190611a23565b6004546108fb91906119e9565b91505090565b6009546001600160a01b0316331461091857600080fd5b60005b82518110156107a657816007600085848151811061093b5761093b611ac5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561097681611a94565b905061091b565b6000610641338484610da0565b6009546001600160a01b031633146109a157600080fd5b6103e86109b28263499602d2611a23565b6109bc9190611a01565b60105550565b6009546001600160a01b031633146109d957600080fd5b600a546001600160a01b0316156109ef57600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3e57600080fd5b505afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190611720565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ad257600080fd5b505afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611720565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610b5257600080fd5b505af1158015610b66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8a9190611720565b9050600063499602d230600081815260026020908152604080832085905560038252808320737a250d5630b4cf539739df2c5dacb4c659f2488d80855290835281842063499602d290556001600160a01b0388168452600b909252808320805460ff191660011790555163f305d71960e01b81526004810193909352602483018490526044830182905260648301919091523360848301524260a483015291925063f305d71990479060c4016060604051808303818588803b158015610c4f57600080fd5b505af1158015610c63573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c8891906118f5565b5050600a80546001600160a81b0319166001600160a01b03851617600160a01b17905550610cb461142e565b610cbc61143e565b610cc6600a61098a565b5050565b6009546001600160a01b03163314610ce157600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6011546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610d3c573d6000803e3d6000fd5b50565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0380841660009081526002602052604080822054928516825290205482821015610e185760405162461bcd60e51b815260206004820152601d60248201527f6e6f7420656e6f75676820746f6b656e20666f72207472616e7366657200000060448201526064015b60405180910390fd5b600a546001600160a01b038681169116148015610e4e57506001600160a01b0384166000908152600b602052604090205460ff16155b1561102a57600a54600160a01b900460ff16610e9f5760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610e0f565b6008544310610eb157610eb183611463565b610eba846114c2565b6000610ec7601485611a01565b90506000610ed6603286611a01565b6001600160a01b038089166000818152600260205260408082208a8a039055928a16808252838220888b018890038690039055308252838220805488019055908052600080516020611b0783398151915280548501905591519293509091600080516020611b2783398151915290610f519089815260200190565b60405180910390a360405182815230906001600160a01b03881690600080516020611b278339815191529060200160405180910390a36040518181526000906001600160a01b03881690600080516020611b278339815191529060200160405180910390a36001600160a01b0386166000908152600d6020908152604080832042905560105460029092529091205411156110215760405162461bcd60e51b815260206004820152601060248201526f1b585e081dd85b1b195d081b1a5b5a5d60821b6044820152606401610e0f565b50505050505050565b600c5460ff161580156110475750600a546001600160a01b031615155b80156110605750600a546001600160a01b038581169116145b156112b857600a54600160a01b900460ff166110b15760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610e0f565b6110ba856114f2565b30600090815260026020526040812054818052600080516020611b078339815191525490916110ea601487611a01565b905060006110f889886107e0565b9050600081611107848a611a42565b61111191906119e9565b905061111d83866119e9565b945061112982856119e9565b9350600085156111bf57600a546001600160a01b031660009081526002602052604081205461115a90601990611a01565b90508087111561119e5760405190968790039586019587916000903090600080516020611b27833981519152906111949085815260200190565b60405180910390a3505b86915060006111ae846002611a23565b9050808311156111bc578092505b50505b3060008181526002602052604090819020889055516001600160a01b038d1690600080516020611b27833981519152906111fc9088815260200190565b60405180910390a38015611213576112138161154a565b6001600160a01b03808c166000818152600260205260408082208d8d039055928d168082528382208b87019055908052600080516020611b078339815191528890559151600080516020611b2783398151915290611274908d815260200190565b60405180910390a36040518381526000906001600160a01b038d1690600080516020611b278339815191529060200160405180910390a35050505050505050505050565b6001600160a01b0380861660008181526002602052604080822087870390559287168082529083902084870190559151600080516020611b27833981519152906113059087815260200190565b60405180910390a36001600160a01b0384166000908152600b602052604090205460ff1661142757600061133986856107e0565b6001600160a01b038616600090815260026020526040812080549293508392909190611366908490611a42565b909155505060008080526002602052600080516020611b0783398151915280548392906113949084906119e9565b90915550506040518181526000906001600160a01b03871690600080516020611b278339815191529060200160405180910390a36010546001600160a01b03861660009081526002602052604090205411156114255760405162461bcd60e51b815260206004820152601060248201526f1b585e081dd85b1b195d081b1a5b5a5d60821b6044820152606401610e0f565b505b5050505050565b6114394360016119e9565b600855565b426006556103e8611454600163499602d2611a23565b61145e9190611a01565b600555565b60006114716002603c611a23565b60065461147e9042611a42565b6114889190611a01565b905080156114b35763499602d260045410156114ae576005546004805491830290910190555b426006555b600454821115610cc657600080fd5b60085443106114ce5750565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6001600160a01b03811660009081526007602052604090205460ff1615610d3c5760405162461bcd60e51b815260206004820152600c60248201526b189bdd0819195d1958dd195960a21b6044820152606401610e0f565b600c805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061158c5761158c611ac5565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156115f957600080fd5b505afa15801561160d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116319190611720565b8160018151811061164457611644611ac5565b6001600160a01b03909216602092830291909101909101526040516318cbafe560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d906318cbafe59061169c908590600090869030904290600401611978565b600060405180830381600087803b1580156116b657600080fd5b505af11580156116ca573d6000803e3d6000fd5b5050600c805460ff1916905550505050565b80356116e781611af1565b919050565b803580151581146116e757600080fd5b60006020828403121561170e57600080fd5b813561171981611af1565b9392505050565b60006020828403121561173257600080fd5b815161171981611af1565b6000806040838503121561175057600080fd5b823561175b81611af1565b9150602083013561176b81611af1565b809150509250929050565b60008060006060848603121561178b57600080fd5b833561179681611af1565b925060208401356117a681611af1565b929592945050506040919091013590565b600080604083850312156117ca57600080fd5b82356117d581611af1565b946020939093013593505050565b600080604083850312156117f657600080fd5b823567ffffffffffffffff8082111561180e57600080fd5b818501915085601f83011261182257600080fd5b813560208282111561183657611836611adb565b8160051b604051601f19603f8301168101818110868211171561185b5761185b611adb565b604052838152828101945085830182870184018b101561187a57600080fd5b600096505b848710156118a457611890816116dc565b86526001969096019594830194830161187f565b5096506118b490508782016116ec565b9450505050509250929050565b6000602082840312156118d357600080fd5b611719826116ec565b6000602082840312156118ee57600080fd5b5035919050565b60008060006060848603121561190a57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561195057858101830151858201604001528201611934565b81811115611962576000604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119c85784516001600160a01b0316835293830193918301916001016119a3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156119fc576119fc611aaf565b500190565b600082611a1e57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611a3d57611a3d611aaf565b500290565b600082821015611a5457611a54611aaf565b500390565b600181811c90821680611a6d57607f821691505b60208210811415611a8e57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611aa857611aa8611aaf565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d3c57600080fdfeac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077bddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122090deefe51ff6836494f3c4767bf96157213976b5513ec9180d25c52e285db1ae64736f6c63430008070033

Deployed Bytecode Sourcemap

16040:469:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16431:75;;;;;;;;;;;;;:::i;:::-;;2076:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3141:193;;;;;;;;;;-1:-1:-1;3141:193:0;;;;;:::i;:::-;;:::i;:::-;;;5182:14:1;;5175:22;5157:41;;5145:2;5130:18;3141:193:0;5017:187:1;7441:25:0;;;;;;;;;;-1:-1:-1;7441:25:0;;;;-1:-1:-1;;;7441:25:0;;;;;;2359:126;;;;;;;;;;;;;:::i;:::-;;;7346:25:1;;;7334:2;7319:18;2359:126:0;7200:177:1;3570:507:0;;;;;;;;;;-1:-1:-1;3570:507:0;;;;;:::i;:::-;;:::i;2266:85::-;;;;;;;;;;-1:-1:-1;2266:85:0;;2309:5;8509:36:1;;8497:2;8482:18;2266:85:0;8367:184:1;15792:159:0;;;;;;;;;;-1:-1:-1;15792:159:0;;;;;:::i;:::-;;:::i;233:37::-;;;;;;;;;;-1:-1:-1;233:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15596:74;;;;;;;;;;;;;:::i;7406:28::-;;;;;;;;;;-1:-1:-1;7406:28:0;;;;-1:-1:-1;;;;;7406:28:0;;;;;;-1:-1:-1;;;;;4052:32:1;;;4034:51;;4022:2;4007:18;7406:28:0;3888:203:1;14743:238:0;;;;;;;;;;-1:-1:-1;14743:238:0;;;;;:::i;:::-;;:::i;395:104::-;;;;;;;;;;-1:-1:-1;480:11:0;;465:12;:26;395:104;;2493:119;;;;;;;;;;-1:-1:-1;2493:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;2586:18:0;2559:7;2586:18;;;:9;:18;;;;;;;2493:119;4174:21;;;;;;;;;;;;;;;;14989:97;;;;;;;;;;-1:-1:-1;14989:97:0;;;;;:::i;:::-;;:::i;13500:563::-;;;;;;;;;;-1:-1:-1;13500:563:0;;;;;:::i;:::-;;:::i;2169:89::-;;;;;;;;;;;;;:::i;5255:302::-;;;;;;;;;;;;;:::i;4449:28::-;;;;;;;;;;;;;;;;15094:192;;;;;;;;;;-1:-1:-1;15094:192:0;;;;;:::i;:::-;;:::i;2620:199::-;;;;;;;;;;-1:-1:-1;2620:199:0;;;;;:::i;:::-;;:::i;14071:141::-;;;;;;;;;;-1:-1:-1;14071:141:0;;;;;:::i;:::-;;:::i;4377:35::-;;;;;;;;;;;;;;;;7639:37;;;;;;;;;;;;;;;;8016:943;;;;;;;;;;;;;:::i;7683:29::-;;;;;;;;;;;;;;;;2947:186;;;;;;;;;;-1:-1:-1;2947:186:0;;;;;:::i;:::-;-1:-1:-1;;;;;3098:18:0;;;3066:7;3098:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2947:186;6972:100;;;;;;;;;;-1:-1:-1;6972:100:0;;;;;:::i;:::-;;:::i;16431:75::-;6877:6;;-1:-1:-1;;;;;6877:6:0;6863:10;:20;6855:29;;;;;;16487:11:::1;:9;:11::i;:::-;16431:75::o:0;2076:85::-;2115:13;2148:5;2141:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2076:85;:::o;3141:193::-;3245:4;3267:37;3276:10;3288:7;3297:6;3267:8;:37::i;:::-;-1:-1:-1;3322:4:0;3141:193;;;;;:::o;2359:126::-;2414:7;2456:21;;;:9;:21;;-1:-1:-1;;;;;;;;;;;2456:21:0;2441:36;;1730:10;2441:36;:::i;:::-;2434:43;;2359:126;:::o;3570:507::-;3704:4;3721:36;3731:6;3739:9;3750:6;3721:9;:36::i;:::-;-1:-1:-1;;;;;3797:19:0;;3770:24;3797:19;;;:11;:19;;;;;;;;3817:10;3797:31;;;;;;;;3847:26;;;;3839:35;;;;;;1730:10;3889:16;:31;3885:163;;;3966:55;3975:6;3983:10;4014:6;3995:16;:25;3966:8;:55::i;:::-;-1:-1:-1;4065:4:0;;3570:507;-1:-1:-1;;;;3570:507:0:o;15792:159::-;15551:16;;-1:-1:-1;;;;;15551:16:0;15537:10;:30;15529:39;;;;;;15906:16:::1;:37:::0;;-1:-1:-1;;;;;;15906:37:0::1;-1:-1:-1::0;;;;;15906:37:0;;;::::1;::::0;;;::::1;::::0;;15792:159::o;15596:74::-;15551:16;;-1:-1:-1;;;;;15551:16:0;15537:10;:30;15529:39;;;;;14743:238;6877:6;;-1:-1:-1;;;;;6877:6:0;6863:10;:20;6855:29;;;;;;14867:9:::1;14862:112;14886:8;:15;14882:1;:19;14862:112;;;14957:5;14923:18;:31;14942:8;14951:1;14942:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14923:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14923:31:0;:39;;-1:-1:-1;;14923:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14903:3:::1;::::0;::::1;:::i;:::-;;;14862:112;;;;14743:238:::0;;:::o;14989:97::-;6877:6;;-1:-1:-1;;;;;6877:6:0;6863:10;:20;6855:29;;;;;;15057:13:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;15057:21:0::1;-1:-1:-1::0;;;;15057:21:0;;::::1;::::0;;;::::1;::::0;;14989:97::o;13500:563::-;-1:-1:-1;;;;;13684:18:0;;13607:7;13684:18;;;:9;:18;;;;;;13741:10;;13607:7;;13741:20;;13754:7;13741:20;:::i;:::-;13731:30;;:7;:30;:::i;:::-;13713:48;;13795:7;13776:15;:26;13772:50;;13811:11;13820:2;13811:6;:11;:::i;:::-;13804:18;;;;;;13772:50;13839:16;13858:25;13868:15;13858:7;:25;:::i;:::-;13839:44;;14016:10;;14010:3;:16;;;;:::i;:::-;:26;;14029:7;14010:26;:::i;:::-;13984:8;13964:17;;13955:6;:26;;;;:::i;:::-;:37;;;;:::i;:::-;13954:83;;;;:::i;:::-;13914:24;13936:2;13914:6;:24;:::i;:::-;:123;;;;:::i;:::-;13894:143;13500:563;-1:-1:-1;;;;;;13500:563:0:o;2169:89::-;2210:13;2243:7;2236:14;;;;;:::i;5255:302::-;5299:7;;5394:39;4249:1;5424:9;5394:39;:::i;:::-;5363:13;;5345:31;;:15;:31;:::i;:::-;5344:90;;;;:::i;:::-;5319:115;-1:-1:-1;5449:19:0;5445:38;;-1:-1:-1;;5477:6:0;;;5255:302::o;5445:38::-;5535:14;5512:20;;:37;;;;:::i;:::-;5503:6;;:46;;;;:::i;:::-;5496:53;;;5255:302;:::o;15094:192::-;6877:6;;-1:-1:-1;;;;;6877:6:0;6863:10;:20;6855:29;;;;;;15185:9:::1;15180:99;15204:8;:15;15200:1;:19;15180:99;;;15262:5;15241;:18;15247:8;15256:1;15247:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;15241:18:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;15241:18:0;:26;;-1:-1:-1;;15241:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15221:3:::1;::::0;::::1;:::i;:::-;;;15180:99;;2620:199:::0;2727:4;2749:40;2759:10;2771:9;2782:6;2749:9;:40::i;14071:141::-;6877:6;;-1:-1:-1;;;;;6877:6:0;6863:10;:20;6855:29;;;;;;14200:4:::1;14172:24;14187:9:::0;1730:10:::1;14172:24;:::i;:::-;14171:33;;;;:::i;:::-;14154:14;:50:::0;-1:-1:-1;14071:141:0:o;8016:943::-;6877:6;;-1:-1:-1;;;;;6877:6:0;6863:10;:20;6855:29;;;;;;8077:13:::1;::::0;-1:-1:-1;;;;;8077:13:0::1;:27:::0;8069:36:::1;;;::::0;::::1;;8116:12;7356:42;-1:-1:-1::0;;;;;8149:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8131:56:0::1;;8210:4;7356:42;-1:-1:-1::0;;;;;8230:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8131:133;::::0;-1:-1:-1;;;;;;8131:133:0::1;::::0;;;;;;-1:-1:-1;;;;;4326:15:1;;;8131:133:0::1;::::0;::::1;4308:34:1::0;4378:15;;4358:18;;;4351:43;4243:18;;8131:133:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8116:148:::0;-1:-1:-1;8275:21:0::1;1730:10:::0;8355:4:::1;8337:24;::::0;;;:9:::1;:24;::::0;;;;;;;:40;;;8388:11:::1;:26:::0;;;;;7356:42:::1;8388:53:::0;;;;;;;;;1730:10:::1;8388:68:::0;;-1:-1:-1;;;;;8530:24:0;::::1;::::0;;:18:::1;:24:::0;;;;;;:31;;-1:-1:-1;;8530:31:0::1;8557:4;8530:31;::::0;;8572:216;-1:-1:-1;;;8572:216:0;;::::1;::::0;::::1;4746:34:1::0;;;;4796:18;;;4789:34;;;4839:18;;;4832:34;;;4882:18;;;4875:34;;;;8737:10:0::1;4925:19:1::0;;;4918:44;8762:15:0::1;4978:19:1::0;;;4971:35;8337:40:0;;-1:-1:-1;8572:32:0::1;::::0;8612:21:::1;::::0;4680:19:1;;8572:216:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;8801:13:0::1;:20:::0;;-1:-1:-1;;;;;;8832:20:0;-1:-1:-1;;;;;8801:20:0;::::1;8832::::0;-1:-1:-1;;;8832:20:0::1;::::0;;-1:-1:-1;8865:14:0::1;:12;:14::i;:::-;8890:20;:18;:20::i;:::-;8921:30;8948:2;8921:26;:30::i;:::-;8058:901;;8016:943::o:0;6972:100::-;6877:6;;-1:-1:-1;;;;;6877:6:0;6863:10;:20;6855:29;;;;;;7047:6:::1;:17:::0;;-1:-1:-1;;;;;;7047:17:0::1;-1:-1:-1::0;;;;;7047:17:0;;;::::1;::::0;;;::::1;::::0;;6972:100::o;15678:106::-;15727:16;;15719:57;;-1:-1:-1;;;;;15727:16:0;;;;15754:21;15719:57;;;;;15727:16;15719:57;15727:16;15719:57;15754:21;15727:16;15719:57;;;;;;;;;;;;;;;;;;;;;15678:106::o;3342:220::-;-1:-1:-1;;;;;3470:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;3522:32;;7346:25:1;;;3522:32:0;;7319:18:1;3522:32:0;;;;;;;3342:220;;;:::o;8967:4525::-;-1:-1:-1;;;;;9149:15:0;;;9122:24;9149:15;;;:9;:15;;;;;;;9200:13;;;;;;;;9232:26;;;;9224:68;;;;-1:-1:-1;;;9224:68:0;;6013:2:1;9224:68:0;;;5995:21:1;6052:2;6032:18;;;6025:30;6091:31;6071:18;;;6064:59;6140:18;;9224:68:0;;;;;;;;;9333:13;;-1:-1:-1;;;;;9325:21:0;;;9333:13;;9325:21;:48;;;;-1:-1:-1;;;;;;9351:22:0;;;;;;:18;:22;;;;;;;;9350:23;9325:48;9321:1128;;;9429:13;;-1:-1:-1;;;9429:13:0;;;;9421:42;;;;-1:-1:-1;;;9421:42:0;;6371:2:1;9421:42:0;;;6353:21:1;6410:2;6390:18;;;6383:30;-1:-1:-1;;;6429:18:1;;;6422:46;6485:18;;9421:42:0;6169:340:1;9421:42:0;480:11;;465:12;:26;9508:58;;9530:36;9559:6;9530:28;:36::i;:::-;9581:13;9591:2;9581:9;:13::i;:::-;9639:14;9656:11;9665:2;9656:6;:11;:::i;:::-;9639:28;-1:-1:-1;9700:15:0;9718:11;9727:2;9718:6;:11;:::i;:::-;-1:-1:-1;;;;;9810:15:0;;;;;;;:9;:15;;;;;;9828:25;;;9810:43;;9872:13;;;;;;;;;9888:23;;;:32;;;:42;;;9872:58;;9967:4;9949:24;;;;;:34;;;;;;10002:21;;;-1:-1:-1;;;;;;;;;;;10002:32:0;;;;;;10069:26;;9700:29;;-1:-1:-1;9872:13:0;;-1:-1:-1;;;;;;;;;;;10069:26:0;;;9847:6;7346:25:1;;7334:2;7319:18;;7200:177;10069:26:0;;;;;;;;10115:35;;7346:25:1;;;10136:4:0;;-1:-1:-1;;;;;10115:35:0;;;-1:-1:-1;;;;;;;;;;;10115:35:0;7334:2:1;7319:18;10115:35:0;;;;;;;10170:33;;7346:25:1;;;10191:1:0;;-1:-1:-1;;;;;10170:33:0;;;-1:-1:-1;;;;;;;;;;;10170:33:0;7334:2:1;7319:18;10170:33:0;;;;;;;-1:-1:-1;;;;;10248:13:0;;;;;;:9;:13;;;;;;;;10264:15;10248:31;;10352:14;;10335:9;:13;;;;;;;:31;;10327:60;;;;-1:-1:-1;;;10327:60:0;;7057:2:1;10327:60:0;;;7039:21:1;7096:2;7076:18;;;7069:30;-1:-1:-1;;;7115:18:1;;;7108:46;7171:18;;10327:60:0;6855:340:1;10327:60:0;10431:7;;;;8967:4525;;;:::o;9321:1128::-;10483:7;;;;10482:8;:39;;;;-1:-1:-1;10494:13:0;;-1:-1:-1;;;;;10494:13:0;:27;;10482:39;:62;;;;-1:-1:-1;10531:13:0;;-1:-1:-1;;;;;10525:19:0;;;10531:13;;10525:19;10482:62;10478:2381;;;10600:13;;-1:-1:-1;;;10600:13:0;;;;10592:42;;;;-1:-1:-1;;;10592:42:0;;6371:2:1;10592:42:0;;;6353:21:1;6410:2;6390:18;;;6383:30;-1:-1:-1;;;6429:18:1;;;6422:46;6485:18;;10592:42:0;6169:340:1;10592:42:0;10673:14;10682:4;10673:8;:14::i;:::-;10781:4;10737:23;10763:24;;;:9;:24;;;;;;10824:21;;;-1:-1:-1;;;;;;;;;;;10824:21:0;10763:24;;10907:11;10916:2;10907:6;:11;:::i;:::-;10890:28;;10939:17;10959:30;10976:4;10982:6;10959:16;:30::i;:::-;10939:50;-1:-1:-1;11063:24:0;10939:50;11090:15;11099:6;11090;:15;:::i;:::-;:27;;;;:::i;:::-;11063:54;-1:-1:-1;11132:25:0;11151:6;11132:25;;:::i;:::-;;-1:-1:-1;11172:24:0;11187:9;11172:24;;:::i;:::-;;-1:-1:-1;11264:17:0;11300:19;;11296:950;;11427:13;;-1:-1:-1;;;;;11427:13:0;11388:26;11417:24;;;:9;:24;;;;;;:29;;11444:2;;11417:29;:::i;:::-;11388:58;;11514:18;11496:15;:36;11492:511;;;11929:54;;11738:18;;11691:65;;;11846:32;;;;11738:18;;11557:25;;11946:4;;-1:-1:-1;;;;;;;;;;;11929:54:0;;;11691:65;7346:25:1;;7334:2;7319:18;;7200:177;11929:54:0;;;;;;;;11534:469;11492:511;12080:15;;-1:-1:-1;12114:20:0;12137;12141:16;12137:1;:20;:::i;:::-;12114:43;;12192:12;12180:9;:24;12176:54;;;12218:12;12206:24;;12176:54;11321:925;;11296:950;12317:4;12299:24;;;;:9;:24;;;;;;;:42;;;12361:37;-1:-1:-1;;;;;12361:37:0;;;-1:-1:-1;;;;;;;;;;;12361:37:0;;;12391:6;7346:25:1;;7334:2;7319:18;;7200:177;12361:37:0;;;;;;;;12417:13;;12413:46;;12432:27;12449:9;12432:16;:27::i;:::-;-1:-1:-1;;;;;12543:15:0;;;;;;;:9;:15;;;;;;12561:25;;;12543:43;;12605:13;;;;;;;;;12621:33;;;12605:49;;12673:21;;;-1:-1:-1;;;;;;;;;;;12673:35:0;;;12743:26;;-1:-1:-1;;;;;;;;;;;12743:26:0;;;12580:6;7346:25:1;;7334:2;7319:18;;7200:177;12743:26:0;;;;;;;;12789:37;;7346:25:1;;;12812:1:0;;-1:-1:-1;;;;;12789:37:0;;;-1:-1:-1;;;;;;;;;;;12789:37:0;7334:2:1;7319:18;12789:37:0;;;;;;;12841:7;;;;;;;;8967:4525;;;:::o;10478:2381::-;-1:-1:-1;;;;;12917:15:0;;;;;;;:9;:15;;;;;;12935:25;;;12917:43;;12975:13;;;;;;;;;;12991:23;;;12975:39;;13041:26;;-1:-1:-1;;;;;;;;;;;13041:26:0;;;12954:6;7346:25:1;;7334:2;7319:18;;7200:177;13041:26:0;;;;;;;;-1:-1:-1;;;;;13117:22:0;;;;;;:18;:22;;;;;;;;13112:373;;13156:17;13176:30;13193:4;13199:6;13176:16;:30::i;:::-;-1:-1:-1;;;;;13235:13:0;;;;;;:9;:13;;;;;:26;;13156:50;;-1:-1:-1;13156:50:0;;13235:13;;;:26;;13156:50;;13235:26;:::i;:::-;;;;-1:-1:-1;;13276:21:0;;;;:9;:21;;-1:-1:-1;;;;;;;;;;;13276:34:0;;13301:9;;13276:21;:34;;13301:9;;13276:34;:::i;:::-;;;;-1:-1:-1;;13330:35:0;;7346:25:1;;;13351:1:0;;-1:-1:-1;;;;;13330:35:0;;;-1:-1:-1;;;;;;;;;;;13330:35:0;7334:2:1;7319:18;13330:35:0;;;;;;;13438:14;;-1:-1:-1;;;;;13421:13:0;;;;;;:9;:13;;;;;;:31;;13413:60;;;;-1:-1:-1;;;13413:60:0;;7057:2:1;13413:60:0;;;7039:21:1;7096:2;7076:18;;;7069:30;-1:-1:-1;;;7115:18:1;;;7108:46;7171:18;;13413:60:0;6855:340:1;13413:60:0;13141:344;13112:373;9080:4412;;8967:4525;;;:::o;305:82::-;363:16;:12;378:1;363:16;:::i;:::-;349:11;:30;305:82::o;4509:171::-;4575:15;4559:13;:31;4668:4;4625:39;4329:1;1730:10;4625:39;:::i;:::-;4624:48;;;;:::i;:::-;4601:20;:71;4509:171::o;4688:559::-;4791:22;4866:39;4249:1;4896:9;4866:39;:::i;:::-;4835:13;;4817:31;;:15;:31;:::i;:::-;4816:90;;;;:::i;:::-;4791:115;-1:-1:-1;4921:18:0;;4917:257;;1730:10;4960:6;;:21;4956:161;;;5045:20;;5035:6;:47;;5045:37;;;5035:47;;;;;4956:161;5147:15;5131:13;:31;4917:257;5232:6;;5222;:16;;5214:25;;;;;507:124;480:11;;465:12;:26;563:29;;507:124;:::o;563:29::-;-1:-1:-1;;;;;602:14:0;;;;;:5;:14;;;;;:21;;-1:-1:-1;;602:21:0;619:4;602:21;;;507:124::o;639:108::-;-1:-1:-1;;;;;708:14:0;;;;;;:5;:14;;;;;;;;707:15;699:40;;;;-1:-1:-1;;;699:40:0;;6716:2:1;699:40:0;;;6698:21:1;6755:2;6735:18;;;6728:30;-1:-1:-1;;;6774:18:1;;;6767:42;6826:18;;699:40:0;6514:336:1;14220:515:0;7755:7;:14;;-1:-1:-1;;7755:14:0;7765:4;7755:14;;;14382:16:::1;::::0;;14396:1:::1;14382:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14382:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14382:16:0::1;14358:40;;14427:4;14409;14414:1;14409:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;14409:23:0::1;;;-1:-1:-1::0;;;;;14409:23:0::1;;;::::0;::::1;7356:42;-1:-1:-1::0;;;;;14453:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14443:4;14448:1;14443:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14443:33:0;;::::1;:7;::::0;;::::1;::::0;;;;;;;:33;14515:212:::1;::::0;-1:-1:-1;;;14515:212:0;;7356:42:::1;::::0;14515:38:::1;::::0;:212:::1;::::0;14568:11;;14594:1:::1;::::0;14638:4;;14665::::1;::::0;14701:15:::1;::::0;14515:212:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7792:7:0;:15;;-1:-1:-1;;7792:15:0;;;-1:-1:-1;;;;14220:515:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:160::-;218:20;;274:13;;267:21;257:32;;247:60;;303:1;300;293:12;318:247;377:6;430:2;418:9;409:7;405:23;401:32;398:52;;;446:1;443;436:12;398:52;485:9;472:23;504:31;529:5;504:31;:::i;:::-;554:5;318:247;-1:-1:-1;;;318:247:1:o;570:251::-;640:6;693:2;681:9;672:7;668:23;664:32;661:52;;;709:1;706;699:12;661:52;741:9;735:16;760:31;785:5;760:31;:::i;826:388::-;894:6;902;955:2;943:9;934:7;930:23;926:32;923:52;;;971:1;968;961:12;923:52;1010:9;997:23;1029:31;1054:5;1029:31;:::i;:::-;1079:5;-1:-1:-1;1136:2:1;1121:18;;1108:32;1149:33;1108:32;1149:33;:::i;:::-;1201:7;1191:17;;;826:388;;;;;:::o;1219:456::-;1296:6;1304;1312;1365:2;1353:9;1344:7;1340:23;1336:32;1333:52;;;1381:1;1378;1371:12;1333:52;1420:9;1407:23;1439:31;1464:5;1439:31;:::i;:::-;1489:5;-1:-1:-1;1546:2:1;1531:18;;1518:32;1559:33;1518:32;1559:33;:::i;:::-;1219:456;;1611:7;;-1:-1:-1;;;1665:2:1;1650:18;;;;1637:32;;1219:456::o;1680:315::-;1748:6;1756;1809:2;1797:9;1788:7;1784:23;1780:32;1777:52;;;1825:1;1822;1815:12;1777:52;1864:9;1851:23;1883:31;1908:5;1883:31;:::i;:::-;1933:5;1985:2;1970:18;;;;1957:32;;-1:-1:-1;;;1680:315:1:o;2000:1202::-;2090:6;2098;2151:2;2139:9;2130:7;2126:23;2122:32;2119:52;;;2167:1;2164;2157:12;2119:52;2207:9;2194:23;2236:18;2277:2;2269:6;2266:14;2263:34;;;2293:1;2290;2283:12;2263:34;2331:6;2320:9;2316:22;2306:32;;2376:7;2369:4;2365:2;2361:13;2357:27;2347:55;;2398:1;2395;2388:12;2347:55;2434:2;2421:16;2456:4;2479:2;2475;2472:10;2469:36;;;2485:18;;:::i;:::-;2531:2;2528:1;2524:10;2563:2;2557:9;2626:2;2622:7;2617:2;2613;2609:11;2605:25;2597:6;2593:38;2681:6;2669:10;2666:22;2661:2;2649:10;2646:18;2643:46;2640:72;;;2692:18;;:::i;:::-;2728:2;2721:22;2778:18;;;2812:15;;;;-1:-1:-1;2847:11:1;;;2877;;;2873:20;;2870:33;-1:-1:-1;2867:53:1;;;2916:1;2913;2906:12;2867:53;2938:1;2929:10;;2948:169;2962:2;2959:1;2956:9;2948:169;;;3019:23;3038:3;3019:23;:::i;:::-;3007:36;;2980:1;2973:9;;;;;3063:12;;;;3095;;2948:169;;;-1:-1:-1;3136:6:1;-1:-1:-1;3161:35:1;;-1:-1:-1;3177:18:1;;;3161:35;:::i;:::-;3151:45;;;;;;2000:1202;;;;;:::o;3207:180::-;3263:6;3316:2;3304:9;3295:7;3291:23;3287:32;3284:52;;;3332:1;3329;3322:12;3284:52;3355:26;3371:9;3355:26;:::i;3392:180::-;3451:6;3504:2;3492:9;3483:7;3479:23;3475:32;3472:52;;;3520:1;3517;3510:12;3472:52;-1:-1:-1;3543:23:1;;3392:180;-1:-1:-1;3392:180:1:o;3577:306::-;3665:6;3673;3681;3734:2;3722:9;3713:7;3709:23;3705:32;3702:52;;;3750:1;3747;3740:12;3702:52;3779:9;3773:16;3763:26;;3829:2;3818:9;3814:18;3808:25;3798:35;;3873:2;3862:9;3858:18;3852:25;3842:35;;3577:306;;;;;:::o;5209:597::-;5321:4;5350:2;5379;5368:9;5361:21;5411:6;5405:13;5454:6;5449:2;5438:9;5434:18;5427:34;5479:1;5489:140;5503:6;5500:1;5497:13;5489:140;;;5598:14;;;5594:23;;5588:30;5564:17;;;5583:2;5560:26;5553:66;5518:10;;5489:140;;;5647:6;5644:1;5641:13;5638:91;;;5717:1;5712:2;5703:6;5692:9;5688:22;5684:31;5677:42;5638:91;-1:-1:-1;5790:2:1;5769:15;-1:-1:-1;;5765:29:1;5750:45;;;;5797:2;5746:54;;5209:597;-1:-1:-1;;;5209:597:1:o;7382:980::-;7644:4;7692:3;7681:9;7677:19;7723:6;7712:9;7705:25;7749:2;7787:6;7782:2;7771:9;7767:18;7760:34;7830:3;7825:2;7814:9;7810:18;7803:31;7854:6;7889;7883:13;7920:6;7912;7905:22;7958:3;7947:9;7943:19;7936:26;;7997:2;7989:6;7985:15;7971:29;;8018:1;8028:195;8042:6;8039:1;8036:13;8028:195;;;8107:13;;-1:-1:-1;;;;;8103:39:1;8091:52;;8198:15;;;;8163:12;;;;8139:1;8057:9;8028:195;;;-1:-1:-1;;;;;;;8279:32:1;;;;8274:2;8259:18;;8252:60;-1:-1:-1;;;8343:3:1;8328:19;8321:35;8240:3;7382:980;-1:-1:-1;;;7382:980:1:o;8556:128::-;8596:3;8627:1;8623:6;8620:1;8617:13;8614:39;;;8633:18;;:::i;:::-;-1:-1:-1;8669:9:1;;8556:128::o;8689:217::-;8729:1;8755;8745:132;;8799:10;8794:3;8790:20;8787:1;8780:31;8834:4;8831:1;8824:15;8862:4;8859:1;8852:15;8745:132;-1:-1:-1;8891:9:1;;8689:217::o;8911:168::-;8951:7;9017:1;9013;9009:6;9005:14;9002:1;8999:21;8994:1;8987:9;8980:17;8976:45;8973:71;;;9024:18;;:::i;:::-;-1:-1:-1;9064:9:1;;8911:168::o;9084:125::-;9124:4;9152:1;9149;9146:8;9143:34;;;9157:18;;:::i;:::-;-1:-1:-1;9194:9:1;;9084:125::o;9214:380::-;9293:1;9289:12;;;;9336;;;9357:61;;9411:4;9403:6;9399:17;9389:27;;9357:61;9464:2;9456:6;9453:14;9433:18;9430:38;9427:161;;;9510:10;9505:3;9501:20;9498:1;9491:31;9545:4;9542:1;9535:15;9573:4;9570:1;9563:15;9427:161;;9214:380;;;:::o;9599:135::-;9638:3;-1:-1:-1;;9659:17:1;;9656:43;;;9679:18;;:::i;:::-;-1:-1:-1;9726:1:1;9715:13;;9599:135::o;9739:127::-;9800:10;9795:3;9791:20;9788:1;9781:31;9831:4;9828:1;9821:15;9855:4;9852:1;9845:15;9871:127;9932:10;9927:3;9923:20;9920:1;9913:31;9963:4;9960:1;9953:15;9987:4;9984:1;9977:15;10003:127;10064:10;10059:3;10055:20;10052:1;10045:31;10095:4;10092:1;10085:15;10119:4;10116:1;10109:15;10135:131;-1:-1:-1;;;;;10210:31:1;;10200:42;;10190:70;;10256:1;10253;10246:12

Swarm Source

ipfs://90deefe51ff6836494f3c4767bf96157213976b5513ec9180d25c52e285db1ae

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.