ETH Price: $2,295.22 (+0.51%)

Contract

0xd43D8aDAC6A4C7d9Aeece7c3151FcA8f23752cf8
 
Transaction Hash
Method
Block
From
To
Approve84933552024-09-08 11:55:252 mins ago1725796525IN
AndyBlast: ANDY Token
0 ETH0.00000020.00828641
Transfer84930352024-09-08 11:44:4512 mins ago1725795885IN
AndyBlast: ANDY Token
0 ETH0.000000320.00802841
Approve84908042024-09-08 10:30:231 hr ago1725791423IN
AndyBlast: ANDY Token
0 ETH0.000000230.00505942
Approve84888662024-09-08 9:25:472 hrs ago1725787547IN
AndyBlast: ANDY Token
0 ETH0.000000210.00462873
Approve84888232024-09-08 9:24:212 hrs ago1725787461IN
AndyBlast: ANDY Token
0 ETH0.000000130.00536263
Transfer84886052024-09-08 9:17:052 hrs ago1725787025IN
AndyBlast: ANDY Token
0 ETH0.00000020.00522017
Transfer84873422024-09-08 8:34:593 hrs ago1725784499IN
AndyBlast: ANDY Token
0 ETH0.000000490.00865065
Approve84867732024-09-08 8:16:013 hrs ago1725783361IN
AndyBlast: ANDY Token
0 ETH0.000000470.01025743
Approve84843432024-09-08 6:55:015 hrs ago1725778501IN
AndyBlast: ANDY Token
0 ETH0.000000370.00815496
Approve84798512024-09-08 4:25:177 hrs ago1725769517IN
AndyBlast: ANDY Token
0 ETH0.000000180.0065
Approve84767982024-09-08 2:43:319 hrs ago1725763411IN
AndyBlast: ANDY Token
0 ETH0.000000480.01042873
Approve84764002024-09-08 2:30:159 hrs ago1725762615IN
AndyBlast: ANDY Token
0 ETH0.000000290.01025426
Approve84759672024-09-08 2:15:499 hrs ago1725761749IN
AndyBlast: ANDY Token
0 ETH0.000000490.0108058
Transfer84758972024-09-08 2:13:299 hrs ago1725761609IN
AndyBlast: ANDY Token
0 ETH0.000000420.0106607
Approve84758022024-09-08 2:10:199 hrs ago1725761419IN
AndyBlast: ANDY Token
0 ETH0.000000530.01151217
Transfer84732032024-09-08 0:43:4111 hrs ago1725756221IN
AndyBlast: ANDY Token
0 ETH0.000000570.00926213
Approve84731332024-09-08 0:41:2111 hrs ago1725756081IN
AndyBlast: ANDY Token
0 ETH0.000000230.00813018
Approve84709762024-09-07 23:29:2712 hrs ago1725751767IN
AndyBlast: ANDY Token
0 ETH0.000000450.00971284
Approve84709542024-09-07 23:28:4312 hrs ago1725751723IN
AndyBlast: ANDY Token
0 ETH0.000000490.01056781
Approve84706772024-09-07 23:19:2912 hrs ago1725751169IN
AndyBlast: ANDY Token
0 ETH0.000000350.01202916
Approve84681252024-09-07 21:54:2514 hrs ago1725746065IN
AndyBlast: ANDY Token
0 ETH0.000000610.0132
Transfer84680272024-09-07 21:51:0914 hrs ago1725745869IN
AndyBlast: ANDY Token
0 ETH0.000000510.01281007
Approve84667192024-09-07 21:07:3314 hrs ago1725743253IN
AndyBlast: ANDY Token
0 ETH0.000000540.01174679
Approve84665612024-09-07 21:02:1714 hrs ago1725742937IN
AndyBlast: ANDY Token
0 ETH0.000000520.0114047
Approve84662722024-09-07 20:52:3915 hrs ago1725742359IN
AndyBlast: ANDY Token
0 ETH0.000000580.01261594
View all transactions

Latest 15 internal transactions

Parent Transaction Hash Block From To
2838212024-03-02 11:04:17190 days ago1709377457
AndyBlast: ANDY Token
1.24194644 ETH
2838212024-03-02 11:04:17190 days ago1709377457
AndyBlast: ANDY Token
1.24194644 ETH
2837642024-03-02 11:02:23190 days ago1709377343
AndyBlast: ANDY Token
0.03639315 ETH
2837642024-03-02 11:02:23190 days ago1709377343
AndyBlast: ANDY Token
0.03639315 ETH
2812572024-03-02 9:38:49190 days ago1709372329
AndyBlast: ANDY Token
0.28720276 ETH
2812572024-03-02 9:38:49190 days ago1709372329
AndyBlast: ANDY Token
0.28720276 ETH
2806812024-03-02 9:19:37190 days ago1709371177
AndyBlast: ANDY Token
0.15953313 ETH
2806812024-03-02 9:19:37190 days ago1709371177
AndyBlast: ANDY Token
0.15953313 ETH
2806712024-03-02 9:19:17190 days ago1709371157
AndyBlast: ANDY Token
0.08728164 ETH
2806712024-03-02 9:19:17190 days ago1709371157
AndyBlast: ANDY Token
0.08728164 ETH
2773772024-03-02 7:29:29190 days ago1709364569
AndyBlast: ANDY Token
0.26026439 ETH
2773772024-03-02 7:29:29190 days ago1709364569
AndyBlast: ANDY Token
0.26026439 ETH
2741662024-03-02 5:42:27190 days ago1709358147
AndyBlast: ANDY Token
0.37436669 ETH
2741662024-03-02 5:42:27190 days ago1709358147
AndyBlast: ANDY Token
0.37436669 ETH
2721292024-03-02 4:34:33190 days ago1709354073
AndyBlast: ANDY Token
8 ETH

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Andy

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 1337 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at blastscan.io on 2024-03-02
*/

// SPDX-License-Identifier: MIT
/**
$ANDY, a comical character inspired by Matt Furie’s Boy’s club and we will be joining $PEPE, $BRETT and $WOLF as $ANDY launches on @Blast_L2

https://twitter.com/AndyBlastL2
https://t.me/AndyBlastL2
http://andyonblast.io/


░█████╗░███╗░░██╗██████╗░██╗░░░██╗
██╔══██╗████╗░██║██╔══██╗╚██╗░██╔╝
███████║██╔██╗██║██║░░██║░╚████╔╝░
██╔══██║██║╚████║██║░░██║░░╚██╔╝░░
██║░░██║██║░╚███║██████╔╝░░░██║░░░
╚═╝░░╚═╝╚═╝░░╚══╝╚═════╝░░░░╚═╝░░░

**/

pragma solidity 0.8.16;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

interface IBlast {
  // Note: the full interface for IBlast can be found below
  function configureClaimableGas() external;
  function claimAllGas(address contractAddress, address recipient) external returns (uint256);
}


contract Andy is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    IBlast public constant BLAST = IBlast(0x4300000000000000000000000000000000000002);

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _blackListed;

    address payable private _taxWallet;

    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10 **_decimals;
    string private constant _name = unicode"Andy";
    string private constant _symbol = unicode"ANDY";
    uint256 public _maxTxAmount =   1000000 * 10 **_decimals;
    uint256 public _maxWalletSize = 2000000 * 10 **_decimals;
    uint256 public _taxSwapThreshold= 250000 * 10 **_decimals;
    uint256 public _maxTaxSwap= 500000 * 10 **_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        // This sets the Gas Mode for MyContract to claimable
        BLAST.configureClaimableGas(); 

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!_blackListed[from] || !_blackListed[to], "ERC20: Blacklisted");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");                
                taxAmount = amount.mul((_finalBuyTax)).div(100);
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_finalSellTax)).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function addToBlacklist(address user) external onlyOwner {
        _blackListed[user] = true;
    }
    
    function removeBlacklist(address user) external onlyOwner {
        _blackListed[user] = false;
    }

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

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

    function removeTax() external onlyOwner {
        _finalBuyTax = 0;
        _finalSellTax = 0;
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x44889b52b71E60De6ed7dE82E2939fcc52fB2B4E);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        IUniswapV2Factory factory=IUniswapV2Factory(uniswapV2Router.factory());
        uniswapV2Pair = factory.getPair(address(this),uniswapV2Router.WETH());
        if(uniswapV2Pair==address(0x0)){
          uniswapV2Pair = factory.createPair(address(this), uniswapV2Router.WETH());
        }
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
    
    function claimMyContractsGas() external onlyOwner {
        BLAST.claimAllGas(address(this), msg.sender);
    }

    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BLAST","outputs":[{"internalType":"contract IBlast","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimMyContractsGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600260068190556007556200001c6009600a6200038e565b6200002b90620f4240620003a6565b6008556200003c6009600a6200038e565b6200004b90621e8480620003a6565b6009556009600a6200005e91906200038e565b6200006d906203d090620003a6565b600a556009600a6200008091906200038e565b6200008f906207a120620003a6565b600b55600d805461ffff60a81b19169055348015620000ad57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916331790556200010f6009600a6200038e565b6200011f906305f5e100620003a6565b3360009081526001602081905260408220929092556003906200014a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600390935281832080548516600190811790915560055490911683528183208054909416179092558151634e606c4760e01b8152915173430000000000000000000000000000000000000292634e606c4792600480830193919282900301818387803b158015620001eb57600080fd5b505af115801562000200573d6000803e3d6000fd5b50505050620002146200027560201b60201c565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200024e6009600a6200038e565b6200025e906305f5e100620003a6565b60405190815260200160405180910390a3620003c8565b3390565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002d0578160001904821115620002b457620002b462000279565b80851615620002c257918102915b93841c939080029062000294565b509250929050565b600082620002e95750600162000388565b81620002f85750600062000388565b81600181146200031157600281146200031c576200033c565b600191505062000388565b60ff84111562000330576200033062000279565b50506001821b62000388565b5060208310610133831016604e8410600b841016171562000361575081810a62000388565b6200036d83836200028f565b806000190482111562000384576200038462000279565b0290505b92915050565b60006200039f60ff841683620002d8565b9392505050565b6000816000190483118215151615620003c357620003c362000279565b500290565b611f5680620003d86000396000f3fe6080604052600436106101845760003560e01c8063751039fc116100d657806397d757761161007f578063c9567bf911610059578063c9567bf914610450578063dd62ed3e14610465578063eb91e651146104ab57600080fd5b806397d75776146103f2578063a9059cbb1461041a578063bf474bed1461043a57600080fd5b80638da5cb5b116100b05780638da5cb5b146103645780638f9a55c01461039657806395d89b41146103ac57600080fd5b8063751039fc1461032457806377d5d2dc146103395780637d1db4a51461034e57600080fd5b80632f5f25721161013857806351bc3c851161011257806351bc3c85146102c457806370a08231146102d9578063715018a61461030f57600080fd5b80632f5f257214610271578063313ce5671461028857806344337ea1146102a457600080fd5b80630faee56f116101695780630faee56f1461021857806318160ddd1461023c57806323b872dd1461025157600080fd5b806306fdde0314610190578063095ea7b3146101e857600080fd5b3661018b57005b600080fd5b34801561019c57600080fd5b5060408051808201909152600481527f416e64790000000000000000000000000000000000000000000000000000000060208201525b6040516101df9190611b55565b60405180910390f35b3480156101f457600080fd5b50610208610203366004611bb8565b6104cb565b60405190151581526020016101df565b34801561022457600080fd5b5061022e600b5481565b6040519081526020016101df565b34801561024857600080fd5b5061022e6104e2565b34801561025d57600080fd5b5061020861026c366004611be4565b610503565b34801561027d57600080fd5b5061028661056c565b005b34801561029457600080fd5b50604051600981526020016101df565b3480156102b057600080fd5b506102866102bf366004611c25565b6105d7565b3480156102d057600080fd5b50610286610655565b3480156102e557600080fd5b5061022e6102f4366004611c25565b6001600160a01b031660009081526001602052604090205490565b34801561031b57600080fd5b506102866106a8565b34801561033057600080fd5b50610286610759565b34801561034557600080fd5b5061028661083d565b34801561035a57600080fd5b5061022e60085481565b34801561037057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101df565b3480156103a257600080fd5b5061022e60095481565b3480156103b857600080fd5b5060408051808201909152600481527f414e44590000000000000000000000000000000000000000000000000000000060208201526101d2565b3480156103fe57600080fd5b5061037e73430000000000000000000000000000000000000281565b34801561042657600080fd5b50610208610435366004611bb8565b61092e565b34801561044657600080fd5b5061022e600a5481565b34801561045c57600080fd5b5061028661093b565b34801561047157600080fd5b5061022e610480366004611c42565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104b757600080fd5b506102866104c6366004611c25565b610f22565b60006104d8338484610f9d565b5060015b92915050565b60006104f06009600a611d75565b6104fe906305f5e100611d84565b905090565b60006105108484846110f5565b610562843361055d85604051806060016040528060288152602001611ef9602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906116f8565b610f9d565b5060019392505050565b6000546001600160a01b031633146105cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60006006819055600755565b6000546001600160a01b031633146106315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6005546001600160a01b0316336001600160a01b03161461067557600080fd5b3060009081526001602052604090205480156106945761069481611732565b4780156106a4576106a481611950565b5050565b6000546001600160a01b031633146107025760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031633146107b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6107bf6009600a611d75565b6107cd906305f5e100611d84565b6008556107dc6009600a611d75565b6107ea906305f5e100611d84565b60099081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9061081c90600a611d75565b61082a906305f5e100611d84565b60405190815260200160405180910390a1565b6000546001600160a01b031633146108975760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6040517f954fa5ee0000000000000000000000000000000000000000000000000000000081523060048201523360248201527343000000000000000000000000000000000000029063954fa5ee906044016020604051808303816000875af1158015610907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092b9190611da3565b50565b60006104d83384846110f5565b6000546001600160a01b031633146109955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b600d5474010000000000000000000000000000000000000000900460ff1615610a005760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105c2565b600c805473ffffffffffffffffffffffffffffffffffffffff19167344889b52b71e60de6ed7de82e2939fcc52fb2b4e908117909155610a56903090610a486009600a611d75565b61055d906305f5e100611d84565b600c54604080517fc45a015500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610add9190611dbc565b9050806001600160a01b031663e6a4390530600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b669190611dbc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed9190611dbc565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169182179055610d5b57806001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca49190611dbc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2d9190611dbc565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555b600c546001600160a01b031663f305d7194730610d8d816001600160a01b031660009081526001602052604090205490565b600080610da26000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e22573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e479190611dd9565b5050600d54600c546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190611e07565b5050600d80547fffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff16760100010000000000000000000000000000000000000000179055565b6000546001600160a01b03163314610f7c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6001600160a01b0383166110185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b0382166110945760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b0382166111ed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b03831660009081526004602052604090205460ff16158061122e57506001600160a01b03821660009081526004602052604090205460ff16155b61127a5760405162461bcd60e51b815260206004820152601260248201527f45524332303a20426c61636b6c6973746564000000000000000000000000000060448201526064016105c2565b600081116112f05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f000000000000000000000000000000000000000000000060648201526084016105c2565b600080546001600160a01b0385811691161480159061131d57506000546001600160a01b03848116911614155b156115b557600d546001600160a01b03858116911614801561134d5750600c546001600160a01b03848116911614155b801561137257506001600160a01b03831660009081526003602052604090205460ff16155b15611467576008548211156113c95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105c2565b600954826113ec856001600160a01b031660009081526001602052604090205490565b6113f69190611e29565b11156114445760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105c2565b611464606461145e6006548561198a90919063ffffffff16565b90611a2f565b90505b600d546001600160a01b03848116911614801561148d57506001600160a01b0384163014155b15611501576008548211156114e45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105c2565b6114fe606461145e6007548561198a90919063ffffffff16565b90505b30600090815260016020526040902054600d547501000000000000000000000000000000000000000000900460ff1615801561154a5750600d546001600160a01b038581169116145b80156115725750600d54760100000000000000000000000000000000000000000000900460ff165b801561157f5750600a5481115b156115b3576115a161159c8461159784600b54611a71565b611a71565b611732565b4780156115b1576115b147611950565b505b505b801561162f57306000908152600160205260409020546115d59082611a86565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116269085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546116529083611ae5565b6001600160a01b0385166000908152600160205260409020556116976116788383611ae5565b6001600160a01b03851660009081526001602052604090205490611a86565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116e18585611ae5565b60405190815260200160405180910390a350505050565b6000818484111561171c5760405162461bcd60e51b81526004016105c29190611b55565b5060006117298486611e3c565b95945050505050565b600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055801561192557600d5474010000000000000000000000000000000000000000900460ff16156119255760408051600280825260608201835260009260208301908036833701905050905030816000815181106117d0576117d0611e4f565b6001600160a01b03928316602091820292909201810191909152600c54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611842573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118669190611dbc565b8160018151811061187957611879611e4f565b6001600160a01b039283166020918202929092010152600c5461189f9130911684610f9d565b600c546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906118f1908590600090869030904290600401611e65565b600060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b50505050505b50600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106a4573d6000803e3d6000fd5b60008260000361199c575060006104dc565b60006119a88385611d84565b9050826119b58583611ed6565b14611a285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016105c2565b9392505050565b6000611a2883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b27565b6000818311611a805782611a28565b50919050565b600080611a938385611e29565b905083811015611a285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c2565b6000611a2883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f8565b60008183611b485760405162461bcd60e51b81526004016105c29190611b55565b5060006117298486611ed6565b600060208083528351808285015260005b81811015611b8257858101830151858201604001528201611b66565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461092b57600080fd5b60008060408385031215611bcb57600080fd5b8235611bd681611ba3565b946020939093013593505050565b600080600060608486031215611bf957600080fd5b8335611c0481611ba3565b92506020840135611c1481611ba3565b929592945050506040919091013590565b600060208284031215611c3757600080fd5b8135611a2881611ba3565b60008060408385031215611c5557600080fd5b8235611c6081611ba3565b91506020830135611c7081611ba3565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ccc578160001904821115611cb257611cb2611c7b565b80851615611cbf57918102915b93841c9390800290611c96565b509250929050565b600082611ce3575060016104dc565b81611cf0575060006104dc565b8160018114611d065760028114611d1057611d2c565b60019150506104dc565b60ff841115611d2157611d21611c7b565b50506001821b6104dc565b5060208310610133831016604e8410600b8410161715611d4f575081810a6104dc565b611d598383611c91565b8060001904821115611d6d57611d6d611c7b565b029392505050565b6000611a2860ff841683611cd4565b6000816000190483118215151615611d9e57611d9e611c7b565b500290565b600060208284031215611db557600080fd5b5051919050565b600060208284031215611dce57600080fd5b8151611a2881611ba3565b600080600060608486031215611dee57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611e1957600080fd5b81518015158114611a2857600080fd5b808201808211156104dc576104dc611c7b565b818103818111156104dc576104dc611c7b565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611eb55784516001600160a01b031683529383019391830191600101611e90565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ef357634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122078cc5901d7b07753f07e1b6727d2e1145827226755b80ac0644547d3091d870a64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101845760003560e01c8063751039fc116100d657806397d757761161007f578063c9567bf911610059578063c9567bf914610450578063dd62ed3e14610465578063eb91e651146104ab57600080fd5b806397d75776146103f2578063a9059cbb1461041a578063bf474bed1461043a57600080fd5b80638da5cb5b116100b05780638da5cb5b146103645780638f9a55c01461039657806395d89b41146103ac57600080fd5b8063751039fc1461032457806377d5d2dc146103395780637d1db4a51461034e57600080fd5b80632f5f25721161013857806351bc3c851161011257806351bc3c85146102c457806370a08231146102d9578063715018a61461030f57600080fd5b80632f5f257214610271578063313ce5671461028857806344337ea1146102a457600080fd5b80630faee56f116101695780630faee56f1461021857806318160ddd1461023c57806323b872dd1461025157600080fd5b806306fdde0314610190578063095ea7b3146101e857600080fd5b3661018b57005b600080fd5b34801561019c57600080fd5b5060408051808201909152600481527f416e64790000000000000000000000000000000000000000000000000000000060208201525b6040516101df9190611b55565b60405180910390f35b3480156101f457600080fd5b50610208610203366004611bb8565b6104cb565b60405190151581526020016101df565b34801561022457600080fd5b5061022e600b5481565b6040519081526020016101df565b34801561024857600080fd5b5061022e6104e2565b34801561025d57600080fd5b5061020861026c366004611be4565b610503565b34801561027d57600080fd5b5061028661056c565b005b34801561029457600080fd5b50604051600981526020016101df565b3480156102b057600080fd5b506102866102bf366004611c25565b6105d7565b3480156102d057600080fd5b50610286610655565b3480156102e557600080fd5b5061022e6102f4366004611c25565b6001600160a01b031660009081526001602052604090205490565b34801561031b57600080fd5b506102866106a8565b34801561033057600080fd5b50610286610759565b34801561034557600080fd5b5061028661083d565b34801561035a57600080fd5b5061022e60085481565b34801561037057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101df565b3480156103a257600080fd5b5061022e60095481565b3480156103b857600080fd5b5060408051808201909152600481527f414e44590000000000000000000000000000000000000000000000000000000060208201526101d2565b3480156103fe57600080fd5b5061037e73430000000000000000000000000000000000000281565b34801561042657600080fd5b50610208610435366004611bb8565b61092e565b34801561044657600080fd5b5061022e600a5481565b34801561045c57600080fd5b5061028661093b565b34801561047157600080fd5b5061022e610480366004611c42565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104b757600080fd5b506102866104c6366004611c25565b610f22565b60006104d8338484610f9d565b5060015b92915050565b60006104f06009600a611d75565b6104fe906305f5e100611d84565b905090565b60006105108484846110f5565b610562843361055d85604051806060016040528060288152602001611ef9602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906116f8565b610f9d565b5060019392505050565b6000546001600160a01b031633146105cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60006006819055600755565b6000546001600160a01b031633146106315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6005546001600160a01b0316336001600160a01b03161461067557600080fd5b3060009081526001602052604090205480156106945761069481611732565b4780156106a4576106a481611950565b5050565b6000546001600160a01b031633146107025760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031633146107b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6107bf6009600a611d75565b6107cd906305f5e100611d84565b6008556107dc6009600a611d75565b6107ea906305f5e100611d84565b60099081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9061081c90600a611d75565b61082a906305f5e100611d84565b60405190815260200160405180910390a1565b6000546001600160a01b031633146108975760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6040517f954fa5ee0000000000000000000000000000000000000000000000000000000081523060048201523360248201527343000000000000000000000000000000000000029063954fa5ee906044016020604051808303816000875af1158015610907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092b9190611da3565b50565b60006104d83384846110f5565b6000546001600160a01b031633146109955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b600d5474010000000000000000000000000000000000000000900460ff1615610a005760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105c2565b600c805473ffffffffffffffffffffffffffffffffffffffff19167344889b52b71e60de6ed7de82e2939fcc52fb2b4e908117909155610a56903090610a486009600a611d75565b61055d906305f5e100611d84565b600c54604080517fc45a015500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610add9190611dbc565b9050806001600160a01b031663e6a4390530600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b669190611dbc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed9190611dbc565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169182179055610d5b57806001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca49190611dbc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2d9190611dbc565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555b600c546001600160a01b031663f305d7194730610d8d816001600160a01b031660009081526001602052604090205490565b600080610da26000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e22573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e479190611dd9565b5050600d54600c546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190611e07565b5050600d80547fffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff16760100010000000000000000000000000000000000000000179055565b6000546001600160a01b03163314610f7c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6001600160a01b0383166110185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b0382166110945760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b0382166111ed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b03831660009081526004602052604090205460ff16158061122e57506001600160a01b03821660009081526004602052604090205460ff16155b61127a5760405162461bcd60e51b815260206004820152601260248201527f45524332303a20426c61636b6c6973746564000000000000000000000000000060448201526064016105c2565b600081116112f05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f000000000000000000000000000000000000000000000060648201526084016105c2565b600080546001600160a01b0385811691161480159061131d57506000546001600160a01b03848116911614155b156115b557600d546001600160a01b03858116911614801561134d5750600c546001600160a01b03848116911614155b801561137257506001600160a01b03831660009081526003602052604090205460ff16155b15611467576008548211156113c95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105c2565b600954826113ec856001600160a01b031660009081526001602052604090205490565b6113f69190611e29565b11156114445760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105c2565b611464606461145e6006548561198a90919063ffffffff16565b90611a2f565b90505b600d546001600160a01b03848116911614801561148d57506001600160a01b0384163014155b15611501576008548211156114e45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105c2565b6114fe606461145e6007548561198a90919063ffffffff16565b90505b30600090815260016020526040902054600d547501000000000000000000000000000000000000000000900460ff1615801561154a5750600d546001600160a01b038581169116145b80156115725750600d54760100000000000000000000000000000000000000000000900460ff165b801561157f5750600a5481115b156115b3576115a161159c8461159784600b54611a71565b611a71565b611732565b4780156115b1576115b147611950565b505b505b801561162f57306000908152600160205260409020546115d59082611a86565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116269085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546116529083611ae5565b6001600160a01b0385166000908152600160205260409020556116976116788383611ae5565b6001600160a01b03851660009081526001602052604090205490611a86565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116e18585611ae5565b60405190815260200160405180910390a350505050565b6000818484111561171c5760405162461bcd60e51b81526004016105c29190611b55565b5060006117298486611e3c565b95945050505050565b600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055801561192557600d5474010000000000000000000000000000000000000000900460ff16156119255760408051600280825260608201835260009260208301908036833701905050905030816000815181106117d0576117d0611e4f565b6001600160a01b03928316602091820292909201810191909152600c54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611842573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118669190611dbc565b8160018151811061187957611879611e4f565b6001600160a01b039283166020918202929092010152600c5461189f9130911684610f9d565b600c546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906118f1908590600090869030904290600401611e65565b600060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b50505050505b50600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106a4573d6000803e3d6000fd5b60008260000361199c575060006104dc565b60006119a88385611d84565b9050826119b58583611ed6565b14611a285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016105c2565b9392505050565b6000611a2883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b27565b6000818311611a805782611a28565b50919050565b600080611a938385611e29565b905083811015611a285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c2565b6000611a2883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f8565b60008183611b485760405162461bcd60e51b81526004016105c29190611b55565b5060006117298486611ed6565b600060208083528351808285015260005b81811015611b8257858101830151858201604001528201611b66565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461092b57600080fd5b60008060408385031215611bcb57600080fd5b8235611bd681611ba3565b946020939093013593505050565b600080600060608486031215611bf957600080fd5b8335611c0481611ba3565b92506020840135611c1481611ba3565b929592945050506040919091013590565b600060208284031215611c3757600080fd5b8135611a2881611ba3565b60008060408385031215611c5557600080fd5b8235611c6081611ba3565b91506020830135611c7081611ba3565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ccc578160001904821115611cb257611cb2611c7b565b80851615611cbf57918102915b93841c9390800290611c96565b509250929050565b600082611ce3575060016104dc565b81611cf0575060006104dc565b8160018114611d065760028114611d1057611d2c565b60019150506104dc565b60ff841115611d2157611d21611c7b565b50506001821b6104dc565b5060208310610133831016604e8410600b8410161715611d4f575081810a6104dc565b611d598383611c91565b8060001904821115611d6d57611d6d611c7b565b029392505050565b6000611a2860ff841683611cd4565b6000816000190483118215151615611d9e57611d9e611c7b565b500290565b600060208284031215611db557600080fd5b5051919050565b600060208284031215611dce57600080fd5b8151611a2881611ba3565b600080600060608486031215611dee57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611e1957600080fd5b81518015158114611a2857600080fd5b808201808211156104dc576104dc611c7b565b818103818111156104dc576104dc611c7b565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611eb55784516001600160a01b031683529383019391830191600101611e90565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ef357634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122078cc5901d7b07753f07e1b6727d2e1145827226755b80ac0644547d3091d870a64736f6c63430008100033

Deployed Bytecode Sourcemap

4666:8224:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6443:83;;;;;;;;;;-1:-1:-1;6513:5:0;;;;;;;;;;;;;;;;;6443:83;;;;;;;:::i;:::-;;;;;;;;7276:161;;;;;;;;;;-1:-1:-1;7276:161:0;;;;;:::i;:::-;;:::i;:::-;;;1211:14:1;;1204:22;1186:41;;1174:2;1159:18;7276:161:0;1046:187:1;5613:51:0;;;;;;;;;;;;;;;;;;;1384:25:1;;;1372:2;1357:18;5613:51:0;1238:177:1;6720:95:0;;;;;;;;;;;;;:::i;7445:313::-;;;;;;;;;;-1:-1:-1;7445:313:0;;;;;:::i;:::-;;:::i;11097:103::-;;;;;;;;;;;;;:::i;:::-;;6629:83;;;;;;;;;;-1:-1:-1;6629:83:0;;5241:1;2023:36:1;;2011:2;1996:18;6629:83:0;1881:184:1;10142:101:0;;;;;;;;;;-1:-1:-1;10142:101:0;;;;;:::i;:::-;;:::i;12406:348::-;;;;;;;;;;;;;:::i;6823:119::-;;;;;;;;;;-1:-1:-1;6823:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6916:18:0;6889:7;6916:18;;;:9;:18;;;;;;;6823:119;3425:148;;;;;;;;;;;;;:::i;10929:160::-;;;;;;;;;;;;;:::i;12766:113::-;;;;;;;;;;;;;:::i;5423:56::-;;;;;;;;;;;;;;;;3211:79;;;;;;;;;;-1:-1:-1;3249:7:0;3276:6;-1:-1:-1;;;;;3276:6:0;3211:79;;;-1:-1:-1;;;;;2486:55:1;;;2468:74;;2456:2;2441:18;3211:79:0;2322:226:1;5486:56:0;;;;;;;;;;;;;;;;6534:87;;;;;;;;;;-1:-1:-1;6606:7:0;;;;;;;;;;;;;;;;;6534:87;;4754:81;;;;;;;;;;;;4792:42;4754:81;;6950:167;;;;;;;;;;-1:-1:-1;6950:167:0;;;;;:::i;:::-;;:::i;5549:57::-;;;;;;;;;;;;;;;;11308:850;;;;;;;;;;;;;:::i;7125:143::-;;;;;;;;;;-1:-1:-1;7125:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7233:18:0;;;7206:7;7233:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7125:143;10255:103;;;;;;;;;;-1:-1:-1;10255:103:0;;;;;:::i;:::-;;:::i;7276:161::-;7351:4;7368:39;1046:10;7391:7;7400:6;7368:8;:39::i;:::-;-1:-1:-1;7425:4:0;7276:161;;;;;:::o;6720:95::-;6773:7;5296:14;5241:1;5296:2;:14;:::i;:::-;5284:26;;:9;:26;:::i;:::-;6793:14;;6720:95;:::o;7445:313::-;7543:4;7560:36;7570:6;7578:9;7589:6;7560:9;:36::i;:::-;7607:121;7616:6;1046:10;7638:89;7676:6;7638:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7638:19:0;;;;;;:11;:19;;;;;;;;1046:10;7638:33;;;;;;;;;;:37;:89::i;:::-;7607:8;:121::i;:::-;-1:-1:-1;7746:4:0;7445:313;;;;;:::o;11097:103::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;;;;;;;;;11163:1:::1;11148:12;:16:::0;;;11175:13:::1;:17:::0;11097:103::o;10142:101::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;4936:356:1;3330:67:0;-1:-1:-1;;;;;10210:18:0::1;;::::0;;;:12:::1;:18;::::0;;;;:25;;-1:-1:-1;;10210:25:0::1;10231:4;10210:25;::::0;;10142:101::o;12406:348::-;12470:10;;-1:-1:-1;;;;;12470:10:0;1046;-1:-1:-1;;;;;12456:24:0;;12448:33;;;;;;12531:4;12492:20;6916:18;;;:9;:18;;;;;;12551:14;;12548:73;;12579:30;12596:12;12579:16;:30::i;:::-;12650:21;12685:12;;12682:65;;12711:24;12724:10;12711:12;:24::i;:::-;12437:317;;12406:348::o;3425:148::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;4936:356:1;3330:67:0;3532:1:::1;3516:6:::0;;3495:40:::1;::::0;-1:-1:-1;;;;;3516:6:0;;::::1;::::0;3495:40:::1;::::0;3532:1;;3495:40:::1;3563:1;3546:19:::0;;-1:-1:-1;;3546:19:0::1;::::0;;3425:148::o;10929:160::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;4936:356:1;3330:67:0;5296:14:::1;5241:1;5296:2;:14;:::i;:::-;5284:26;::::0;:9:::1;:26;:::i;:::-;10983:12;:22:::0;5296:14:::1;5241:1;5296:2;:14;:::i;:::-;5284:26;::::0;:9:::1;:26;:::i;:::-;11016:14;:22:::0;;;11054:27:::1;::::0;5296:14:::1;::::0;:2:::1;:14;:::i;:::-;5284:26;::::0;:9:::1;:26;:::i;:::-;11054:27;::::0;1384:25:1;;;1372:2;1357:18;11054:27:0::1;;;;;;;10929:160::o:0;12766:113::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;4936:356:1;3330:67:0;12827:44:::1;::::0;;;;12853:4:::1;12827:44;::::0;::::1;5532:34:1::0;12860:10:0::1;5582:18:1::0;;;5575:43;4792:42:0::1;::::0;12827:17:::1;::::0;5444:18:1;;12827:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12766:113::o:0;6950:167::-;7028:4;7045:42;1046:10;7069:9;7080:6;7045:9;:42::i;11308:850::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;4936:356:1;3330:67:0;11372:11:::1;::::0;;;::::1;;;11371:12;11363:47;;;::::0;-1:-1:-1;;;11363:47:0;;6020:2:1;11363:47:0::1;::::0;::::1;6002:21:1::0;6059:2;6039:18;;;6032:30;6098:25;6078:18;;;6071:53;6141:18;;11363:47:0::1;5818:347:1::0;11363:47:0::1;11421:15;:80:::0;;-1:-1:-1;;11421:80:0::1;11458:42;11421:80:::0;;::::1;::::0;;;11512:58:::1;::::0;11529:4:::1;::::0;5296:14:::1;5241:1;5296:2;:14;:::i;:::-;5284:26;::::0;:9:::1;:26;:::i;11512:58::-;11625:15;::::0;:25:::1;::::0;;;;;;;11581::::1;::::0;-1:-1:-1;;;;;11625:15:0::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:15;:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11581:70;;11678:7;-1:-1:-1::0;;;;;11678:15:0::1;;11702:4;11708:15;;;;;;;;;-1:-1:-1::0;;;;;11708:15:0::1;-1:-1:-1::0;;;;;11708:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11678:53;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;5550:15:1;;;11678:53:0::1;::::0;::::1;5532:34:1::0;5602:15;;5582:18;;;5575:43;5444:18;;11678:53:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11662:13;:69:::0;;-1:-1:-1;;11662:69:0::1;-1:-1:-1::0;;;;;11662:69:0;;;::::1;::::0;;::::1;::::0;;11742:129:::1;;11802:7;-1:-1:-1::0;;;;;11802:18:0::1;;11829:4;11836:15;;;;;;;;;-1:-1:-1::0;;;;;11836:15:0::1;-1:-1:-1::0;;;;;11836:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11802:57;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;5550:15:1;;;11802:57:0::1;::::0;::::1;5532:34:1::0;5602:15;;5582:18;;;5575:43;5444:18;;11802:57:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11786:13;:73:::0;;-1:-1:-1;;11786:73:0::1;-1:-1:-1::0;;;;;11786:73:0;;;::::1;::::0;;;::::1;::::0;;11742:129:::1;11881:15;::::0;-1:-1:-1;;;;;11881:15:0::1;:31;11920:21;11951:4;11957:24;11951:4:::0;-1:-1:-1;;;;;6916:18:0;6889:7;6916:18;;;:9;:18;;;;;;;6823:119;11957:24:::1;11982:1;11984::::0;11986:7:::1;3249::::0;3276:6;-1:-1:-1;;;;;3276:6:0;;3211:79;11986:7:::1;11881:129;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;;;6808:15:1;;;11881:129:0::1;::::0;::::1;6790:34:1::0;6840:18;;;6833:34;;;;6883:18;;;6876:34;;;;6926:18;;;6919:34;6990:15;;;6969:19;;;6962:44;11994:15:0::1;7022:19:1::0;;;7015:35;6701:19;;11881:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12028:13:0::1;::::0;12059:15:::1;::::0;12021:71:::1;::::0;;;;-1:-1:-1;;;;;12059:15:0;;::::1;12021:71;::::0;::::1;7546:74:1::0;-1:-1:-1;;7636:18:1;;;7629:34;12028:13:0;::::1;::::0;-1:-1:-1;12021:29:0::1;::::0;7519:18:1;;12021:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12103:11:0::1;:18:::0;;12132;;;;;;11308:850::o;10255:103::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;4936:356:1;3330:67:0;-1:-1:-1;;;;;10324:18:0::1;10345:5;10324:18:::0;;;:12:::1;:18;::::0;;;;:26;;-1:-1:-1;;10324:26:0::1;::::0;;10255:103::o;7766:335::-;-1:-1:-1;;;;;7859:19:0;;7851:68;;;;-1:-1:-1;;;7851:68:0;;8158:2:1;7851:68:0;;;8140:21:1;8197:2;8177:18;;;8170:30;8236:34;8216:18;;;8209:62;8307:6;8287:18;;;8280:34;8331:19;;7851:68:0;7956:400:1;7851:68:0;-1:-1:-1;;;;;7938:21:0;;7930:68;;;;-1:-1:-1;;;7930:68:0;;8563:2:1;7930:68:0;;;8545:21:1;8602:2;8582:18;;;8575:30;8641:34;8621:18;;;8614:62;8712:4;8692:18;;;8685:32;8734:19;;7930:68:0;8361:398:1;7930:68:0;-1:-1:-1;;;;;8009:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8061:32;;1384:25:1;;;8061:32:0;;1357:18:1;8061:32:0;;;;;;;7766:335;;;:::o;8109:1919::-;-1:-1:-1;;;;;8197:18:0;;8189:68;;;;-1:-1:-1;;;8189:68:0;;8966:2:1;8189:68:0;;;8948:21:1;9005:2;8985:18;;;8978:30;9044:34;9024:18;;;9017:62;9115:7;9095:18;;;9088:35;9140:19;;8189:68:0;8764:401:1;8189:68:0;-1:-1:-1;;;;;8276:16:0;;8268:64;;;;-1:-1:-1;;;8268:64:0;;9372:2:1;8268:64:0;;;9354:21:1;9411:2;9391:18;;;9384:30;9450:34;9430:18;;;9423:62;9521:5;9501:18;;;9494:33;9544:19;;8268:64:0;9170:399:1;8268:64:0;-1:-1:-1;;;;;8352:18:0;;;;;;:12;:18;;;;;;;;8351:19;;:40;;-1:-1:-1;;;;;;8375:16:0;;;;;;:12;:16;;;;;;;;8374:17;8351:40;8343:71;;;;-1:-1:-1;;;8343:71:0;;9776:2:1;8343:71:0;;;9758:21:1;9815:2;9795:18;;;9788:30;9854:20;9834:18;;;9827:48;9892:18;;8343:71:0;9574:342:1;8343:71:0;8442:1;8433:6;:10;8425:64;;;;-1:-1:-1;;;8425:64:0;;10123:2:1;8425:64:0;;;10105:21:1;10162:2;10142:18;;;10135:30;10201:34;10181:18;;;10174:62;10272:11;10252:18;;;10245:39;10301:19;;8425:64:0;9921:405:1;8425:64:0;8500:17;3276:6;;-1:-1:-1;;;;;8534:15:0;;;3276:6;;8534:15;;;;:32;;-1:-1:-1;3249:7:0;3276:6;-1:-1:-1;;;;;8553:13:0;;;3276:6;;8553:13;;8534:32;8530:1142;;;8609:13;;-1:-1:-1;;;;;8601:21:0;;;8609:13;;8601:21;:55;;;;-1:-1:-1;8640:15:0;;-1:-1:-1;;;;;8626:30:0;;;8640:15;;8626:30;;8601:55;:83;;;;-1:-1:-1;;;;;;8662:22:0;;;;;;:18;:22;;;;;;;;8660:24;8601:83;8597:365;;;8724:12;;8714:6;:22;;8706:60;;;;-1:-1:-1;;;8706:60:0;;10533:2:1;8706:60:0;;;10515:21:1;10572:2;10552:18;;;10545:30;10611:27;10591:18;;;10584:55;10656:18;;8706:60:0;10331:349:1;8706:60:0;8819:14;;8809:6;8793:13;8803:2;-1:-1:-1;;;;;6916:18:0;6889:7;6916:18;;;:9;:18;;;;;;;6823:119;8793:13;:22;;;;:::i;:::-;:40;;8785:79;;;;-1:-1:-1;;;8785:79:0;;11017:2:1;8785:79:0;;;10999:21:1;11056:2;11036:18;;;11029:30;11095:28;11075:18;;;11068:56;11141:18;;8785:79:0;10815:350:1;8785:79:0;8911:35;8942:3;8911:26;8923:12;;8911:6;:10;;:26;;;;:::i;:::-;:30;;:35::i;:::-;8899:47;;8597:365;8987:13;;-1:-1:-1;;;;;8981:19:0;;;8987:13;;8981:19;:43;;;;-1:-1:-1;;;;;;9004:20:0;;9019:4;9004:20;;8981:43;8978:210;;;9063:12;;9053:6;:22;;9045:60;;;;-1:-1:-1;;;9045:60:0;;10533:2:1;9045:60:0;;;10515:21:1;10572:2;10552:18;;;10545:30;10611:27;10591:18;;;10584:55;10656:18;;9045:60:0;10331:349:1;9045:60:0;9136:36;9168:3;9136:27;9148:13;;9136:6;:10;;:27;;;;:::i;:36::-;9124:48;;8978:210;9253:4;9204:28;6916:18;;;:9;:18;;;;;;9279:6;;;;;;;9278:7;:30;;;;-1:-1:-1;9295:13:0;;-1:-1:-1;;;;;9289:19:0;;;9295:13;;9289:19;9278:30;:45;;;;-1:-1:-1;9312:11:0;;;;;;;9278:45;:87;;;;;9348:17;;9327:20;:38;9278:87;9274:387;;;9386:67;9403:49;9407:6;9414:37;9418:20;9439:11;;9414:3;:37::i;:::-;9403:3;:49::i;:::-;9386:16;:67::i;:::-;9501:21;9544:22;;9541:105;;9591:35;9604:21;9591:12;:35::i;:::-;9367:294;9274:387;8568:1104;8530:1142;9687:11;;9684:161;;9755:4;9737:24;;;;:9;:24;;;;;;:39;;9766:9;9737:28;:39::i;:::-;9730:4;9712:24;;;;:9;:24;;;;;;;:64;;;;9794:39;;-1:-1:-1;;;;;9794:39:0;;;;;;;9823:9;1384:25:1;;1372:2;1357:18;;1238:177;9794:39:0;;;;;;;;9684:161;-1:-1:-1;;;;;9871:15:0;;;;;;:9;:15;;;;;;:27;;9891:6;9871:19;:27::i;:::-;-1:-1:-1;;;;;9855:15:0;;;;;;:9;:15;;;;;:43;9923:40;9941:21;:6;9952:9;9941:10;:21::i;:::-;-1:-1:-1;;;;;9923:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9909:13:0;;;;;;;:9;:13;;;;;:54;;;;9979:41;;;9998:21;:6;10009:9;9998:10;:21::i;:::-;9979:41;;1384:25:1;;;1372:2;1357:18;9979:41:0;;;;;;;8178:1850;8109:1919;;;:::o;2103:190::-;2189:7;2225:12;2217:6;;;;2209:29;;;;-1:-1:-1;;;2209:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2249:9:0;2261:5;2265:1;2261;:5;:::i;:::-;2249:17;2103:190;-1:-1:-1;;;;;2103:190:0:o;10366:555::-;5946:6;:13;;;;;;;;10444:27;;10463:7:::1;10444:27;10485:11;::::0;;;::::1;;;10481:25:::0;10498:7:::1;10481:25;10540:16;::::0;;10554:1:::1;10540:16:::0;;;;;::::1;::::0;;10516:21:::1;::::0;10540:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10540:16:0::1;10516:40;;10585:4;10567;10572:1;10567:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10567:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10611:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10567:7;;10611:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:4;10606:1;10601:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10601:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10676:15:::1;::::0;10644:62:::1;::::0;10661:4:::1;::::0;10676:15:::1;10694:11:::0;10644:8:::1;:62::i;:::-;10717:15;::::0;:196:::1;::::0;;;;-1:-1:-1;;;;;10717:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10798:11;;10717:15:::1;::::0;10840:4;;10867::::1;::::0;10887:15:::1;::::0;10717:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10433:488;5970:1;-1:-1:-1::0;5982:6:0;:14;;;;;;10366:555::o;11208:92::-;11265:10;;:27;;-1:-1:-1;;;;;11265:10:0;;;;:27;;;;;11285:6;;11265:10;:27;:10;:27;11285:6;11265:10;:27;;;;;;;;;;;;;;;;;;;2301:246;2359:7;2383:1;2388;2383:6;2379:47;;-1:-1:-1;2413:1:0;2406:8;;2379:47;2436:9;2448:5;2452:1;2448;:5;:::i;:::-;2436:17;-1:-1:-1;2481:1:0;2472:5;2476:1;2436:17;2472:5;:::i;:::-;:10;2464:56;;;;-1:-1:-1;;;2464:56:0;;13193:2:1;2464:56:0;;;13175:21:1;13232:2;13212:18;;;13205:30;13271:34;13251:18;;;13244:62;13342:3;13322:18;;;13315:31;13363:19;;2464:56:0;12991:397:1;2464:56:0;2538:1;2301:246;-1:-1:-1;;;2301:246:0:o;2555:132::-;2613:7;2640:39;2644:1;2647;2640:39;;;;;;;;;;;;;;;;;:3;:39::i;10036:98::-;10093:7;10120:1;10118;:3;10117:9;;10125:1;10117:9;;;-1:-1:-1;10123:1:0;10036:98;-1:-1:-1;10036:98:0:o;1772:179::-;1830:7;;1862:5;1866:1;1862;:5;:::i;:::-;1850:17;;1891:1;1886;:6;;1878:46;;;;-1:-1:-1;;;1878:46:0;;13595:2:1;1878:46:0;;;13577:21:1;13634:2;13614:18;;;13607:30;13673:29;13653:18;;;13646:57;13720:18;;1878:46:0;13393:351:1;1959:136:0;2017:7;2044:43;2048:1;2051;2044:43;;;;;;;;;;;;;;;;;:3;:43::i;2695:189::-;2781:7;2816:12;2809:5;2801:28;;;;-1:-1:-1;;;2801:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2840:9:0;2852:5;2856:1;2852;:5;:::i;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:154::-;-1:-1:-1;;;;;646:5:1;642:54;635:5;632:65;622:93;;711:1;708;701:12;726:315;794:6;802;855:2;843:9;834:7;830:23;826:32;823:52;;;871:1;868;861:12;823:52;910:9;897:23;929:31;954:5;929:31;:::i;:::-;979:5;1031:2;1016:18;;;;1003:32;;-1:-1:-1;;;726:315:1:o;1420:456::-;1497:6;1505;1513;1566:2;1554:9;1545:7;1541:23;1537:32;1534:52;;;1582:1;1579;1572:12;1534:52;1621:9;1608:23;1640:31;1665:5;1640:31;:::i;:::-;1690:5;-1:-1:-1;1747:2:1;1732:18;;1719:32;1760:33;1719:32;1760:33;:::i;:::-;1420:456;;1812:7;;-1:-1:-1;;;1866:2:1;1851:18;;;;1838:32;;1420:456::o;2070:247::-;2129:6;2182:2;2170:9;2161:7;2157:23;2153:32;2150:52;;;2198:1;2195;2188:12;2150:52;2237:9;2224:23;2256:31;2281:5;2256:31;:::i;2798:388::-;2866:6;2874;2927:2;2915:9;2906:7;2902:23;2898:32;2895:52;;;2943:1;2940;2933:12;2895:52;2982:9;2969:23;3001:31;3026:5;3001:31;:::i;:::-;3051:5;-1:-1:-1;3108:2:1;3093:18;;3080:32;3121:33;3080:32;3121:33;:::i;:::-;3173:7;3163:17;;;2798:388;;;;;:::o;3191:184::-;-1:-1:-1;;;3240:1:1;3233:88;3340:4;3337:1;3330:15;3364:4;3361:1;3354:15;3380:422;3469:1;3512:5;3469:1;3526:270;3547:7;3537:8;3534:21;3526:270;;;3606:4;3602:1;3598:6;3594:17;3588:4;3585:27;3582:53;;;3615:18;;:::i;:::-;3665:7;3655:8;3651:22;3648:55;;;3685:16;;;;3648:55;3764:22;;;;3724:15;;;;3526:270;;;3530:3;3380:422;;;;;:::o;3807:806::-;3856:5;3886:8;3876:80;;-1:-1:-1;3927:1:1;3941:5;;3876:80;3975:4;3965:76;;-1:-1:-1;4012:1:1;4026:5;;3965:76;4057:4;4075:1;4070:59;;;;4143:1;4138:130;;;;4050:218;;4070:59;4100:1;4091:10;;4114:5;;;4138:130;4175:3;4165:8;4162:17;4159:43;;;4182:18;;:::i;:::-;-1:-1:-1;;4238:1:1;4224:16;;4253:5;;4050:218;;4352:2;4342:8;4339:16;4333:3;4327:4;4324:13;4320:36;4314:2;4304:8;4301:16;4296:2;4290:4;4287:12;4283:35;4280:77;4277:159;;;-1:-1:-1;4389:19:1;;;4421:5;;4277:159;4468:34;4493:8;4487:4;4468:34;:::i;:::-;4538:6;4534:1;4530:6;4526:19;4517:7;4514:32;4511:58;;;4549:18;;:::i;:::-;4587:20;;3807:806;-1:-1:-1;;;3807:806:1:o;4618:140::-;4676:5;4705:47;4746:4;4736:8;4732:19;4726:4;4705:47;:::i;4763:168::-;4803:7;4869:1;4865;4861:6;4857:14;4854:1;4851:21;4846:1;4839:9;4832:17;4828:45;4825:71;;;4876:18;;:::i;:::-;-1:-1:-1;4916:9:1;;4763:168::o;5629:184::-;5699:6;5752:2;5740:9;5731:7;5727:23;5723:32;5720:52;;;5768:1;5765;5758:12;5720:52;-1:-1:-1;5791:16:1;;5629:184;-1:-1:-1;5629:184:1:o;6170:251::-;6240:6;6293:2;6281:9;6272:7;6268:23;6264:32;6261:52;;;6309:1;6306;6299:12;6261:52;6341:9;6335:16;6360:31;6385:5;6360:31;:::i;7061:306::-;7149:6;7157;7165;7218:2;7206:9;7197:7;7193:23;7189:32;7186:52;;;7234:1;7231;7224:12;7186:52;7263:9;7257:16;7247:26;;7313:2;7302:9;7298:18;7292:25;7282:35;;7357:2;7346:9;7342:18;7336:25;7326:35;;7061:306;;;;;:::o;7674:277::-;7741:6;7794:2;7782:9;7773:7;7769:23;7765:32;7762:52;;;7810:1;7807;7800:12;7762:52;7842:9;7836:16;7895:5;7888:13;7881:21;7874:5;7871:32;7861:60;;7917:1;7914;7907:12;10685:125;10750:9;;;10771:10;;;10768:36;;;10784:18;;:::i;11170:128::-;11237:9;;;11258:11;;;11255:37;;;11272:18;;:::i;11492:184::-;-1:-1:-1;;;11541:1:1;11534:88;11641:4;11638:1;11631:15;11665:4;11662:1;11655:15;11681:1026;11943:4;11991:3;11980:9;11976:19;12022:6;12011:9;12004:25;12048:2;12086:6;12081:2;12070:9;12066:18;12059:34;12129:3;12124:2;12113:9;12109:18;12102:31;12153:6;12188;12182:13;12219:6;12211;12204:22;12257:3;12246:9;12242:19;12235:26;;12296:2;12288:6;12284:15;12270:29;;12317:1;12327:218;12341:6;12338:1;12335:13;12327:218;;;12406:13;;-1:-1:-1;;;;;12402:62:1;12390:75;;12520:15;;;;12485:12;;;;12363:1;12356:9;12327:218;;;-1:-1:-1;;;;;;;12601:55:1;;;;12596:2;12581:18;;12574:83;-1:-1:-1;;;12688:3:1;12673:19;12666:35;12562:3;11681:1026;-1:-1:-1;;;11681:1026:1:o;12712:274::-;12752:1;12778;12768:189;;-1:-1:-1;;;12810:1:1;12803:88;12914:4;12911:1;12904:15;12942:4;12939:1;12932:15;12768:189;-1:-1:-1;12971:9:1;;12712:274::o

Swarm Source

ipfs://78cc5901d7b07753f07e1b6727d2e1145827226755b80ac0644547d3091d870a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Andy is the yellow mascot of the yellow chain. Its one of the boy's club comic members. These include PEPE, BRETT, WOLF and now ANDY.

Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.