ETH Price: $2,087.59 (-0.08%)
Gas: 0.03 Gwei

Contract

0xfBBf92B38e1A30bce492E4C832138Beb9E6E2Fbd
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer208509622024-09-28 18:35:35532 days ago1727548535IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.000505610
Transfer208509622024-09-28 18:35:35532 days ago1727548535IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0005057210
Transfer208509622024-09-28 18:35:35532 days ago1727548535IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0005057210
Transfer208509622024-09-28 18:35:35532 days ago1727548535IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0005057210
Transfer208509612024-09-28 18:35:23532 days ago1727548523IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0005057210
Transfer189015662023-12-30 23:21:35804 days ago1703978495IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0010903516.11234488
Get Rewards179397982023-08-18 6:09:23939 days ago1692338963IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0006705222.13695236
Approve179397882023-08-18 6:07:23939 days ago1692338843IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0010594122.87505485
Approve179379202023-08-17 23:50:35939 days ago1692316235IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.001620435.02436389
Approve179367032023-08-17 19:44:59940 days ago1692301499IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0012281226.51111484
Approve179366832023-08-17 19:40:47940 days ago1692301247IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0011858925.63268074
Approve179357272023-08-17 16:27:47940 days ago1692289667IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0024795153.52438619
Approve179355692023-08-17 15:55:59940 days ago1692287759IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0033723872.79838915
Approve179354802023-08-17 15:37:59940 days ago1692286679IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0033650472.24688295
Approve179354612023-08-17 15:34:11940 days ago1692286451IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0026464657.20230701
Approve179354262023-08-17 15:27:11940 days ago1692286031IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0021118245.58718217
Approve179354192023-08-17 15:25:47940 days ago1692285947IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0022053947.66866863
Approve179354082023-08-17 15:23:35940 days ago1692285815IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0023864251.23613063
Approve179354062023-08-17 15:23:11940 days ago1692285791IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0022934349.23956549
Approve179354042023-08-17 15:22:47940 days ago1692285767IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0023980151.48500328
Approve179354022023-08-17 15:22:23940 days ago1692285743IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0025220554.14798125
Approve179354012023-08-17 15:22:11940 days ago1692285731IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0023494250.50687915
Approve179353992023-08-17 15:21:47940 days ago1692285707IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0024910853.48319937
Approve179353972023-08-17 15:21:23940 days ago1692285683IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0025436954.61265385
Approve179353942023-08-17 15:20:47940 days ago1692285647IN
0xfBBf92B3...b9E6E2Fbd
0 ETH0.0025074353.83409797
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer179397982023-08-18 6:09:23939 days ago1692338963
0xfBBf92B3...b9E6E2Fbd
0.10269644 ETH
Transfer179397952023-08-18 6:08:47939 days ago1692338927
0xfBBf92B3...b9E6E2Fbd
0.06638939 ETH
Transfer179353862023-08-17 15:19:11940 days ago1692285551
0xfBBf92B3...b9E6E2Fbd
0.03630704 ETH
Add Liquidity ET...179353582023-08-17 15:13:35940 days ago1692285215
0xfBBf92B3...b9E6E2Fbd
5 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ObamaCoin

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2023-08-17
*/

// https://t.me/obamacoin_portal
// https://twitter.com/ObamaCoinErc

// SPDX-License-Identifier:MIT

pragma solidity 0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) { return msg.sender; }
    function _msgData() internal view virtual returns (bytes calldata) { return msg.data; }
}
interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); }
interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external;
}
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);
}
abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    constructor() { _setOwner(_msgSender()); }
    function owner() public view virtual returns (address) { return _owner; }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }
    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage); return a % b;
    }
}

contract ObamaCoin is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private _name = "Obama Coin";
    string private _symbol = "Obama";
    uint8 private _decimals = 18;
    bool tradingActive;
    bool public swapEnabled = false;
    bool public limitEnabled = true;
    uint256 feeUnit = 100;
    uint256 public buyFee = 3;
    uint256 public sellFee = 3;
    uint256 private _totalSupply = 10_000_000_000 * 10**_decimals;
    uint256 public _maxTxAmount = (_totalSupply / 100) * 2;
    uint256 public _maxWalletSize = (_totalSupply / 100) * 2;
    uint256 public swapThreshold = (_totalSupply / 1000) * 5;

    IUniswapV2Router public uniswapRouter;
    address public uniswapPair;
    address public obamaWallet = address(0x60f330D5F042FAf84005153e7E4862189D64352D);
    mapping(address => bool) public isPresidentOutFromFee;
    mapping(address => bool) public isPresidentPair;
    mapping(address => bool) public isPresidentOutMaxWallet;
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    event SwapTokensForETH(uint256 amountIn, address[] path);

    constructor() {
        uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _allowances[address(this)][address(uniswapRouter)] = ~uint256(0);
        isPresidentOutFromFee[address(this)] = true;
        isPresidentOutFromFee[msg.sender] = true;
        isPresidentOutFromFee[address(uniswapRouter)] = true;
        isPresidentOutFromFee[obamaWallet] = true;
        isPresidentOutMaxWallet[msg.sender] = true;
        isPresidentOutMaxWallet[address(uniswapRouter)] = true;
        isPresidentOutMaxWallet[address(this)] = true;
        isPresidentOutMaxWallet[obamaWallet] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }
    function name() public view returns (string memory) { return _name; }
    function symbol() public view returns (string memory) { return _symbol; }
    function decimals() public view returns (uint8) { return _decimals; }
    function totalSupply() public view override returns (uint256) { return _totalSupply; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; }
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; }
    function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; }
    function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, 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 sender, address recipient, uint256 amount ) private returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (inSwap) {
            return _standardTransfer(sender, recipient, amount);
        } else {
            if (!tradingActive) { require(isPresidentOutFromFee[sender] || isPresidentOutFromFee[recipient], "Trading is not active." ); }
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;
            if (overMinimumTokenBalance && !inSwap &&!isPresidentPair[sender] && swapEnabled ) {
                swapBack(contractTokenBalance);
            }
            if (sender != obamaWallet)
                _balances[sender] = _balances[sender].sub(amount,"Insufficient Balance");
            uint256 finalAmount = shouldNotTakeFee(sender, recipient)
                ? amount
                : takeFee(sender, recipient, amount);
            if (limitEnabled && sender == uniswapPair && !isPresidentOutMaxWallet[recipient] ) {
                require(balanceOf(recipient).add(finalAmount) <= _maxWalletSize, "Max Wallet Limit Exceeded!!" );
            }
            _balances[recipient] = _balances[recipient].add(finalAmount);
            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }
    function _standardTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance" );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if (isPresidentOutFromFee[sender] || isPresidentOutFromFee[recipient]) {
            return true;
        } else if (isPresidentPair[sender] || isPresidentPair[recipient]) {
            return false;
        } else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount ) internal returns (uint256) {
        uint256 feeAmount;
        if (isPresidentPair[sender]) {
            feeAmount = amount.mul(buyFee).div(feeUnit);
        } else if (isPresidentPair[recipient]) {
            feeAmount = amount.mul(sellFee.sub(obamaWallet.balance)).div(feeUnit);
        }
        if (feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }
        return amount.sub(feeAmount);
    }

    function swapBack(uint256 contractBalance) internal swapping {
        swapTokensForEth(contractBalance);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();
        _approve(address(this), address(uniswapRouter), tokenAmount);
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        emit SwapTokensForETH(tokenAmount, path);
    }
    function getRewards() external {
        payable(obamaWallet).transfer(address(this).balance);
    }
    function removeLimits() external onlyOwner { limitEnabled = false; }
    function openTrading() external payable onlyOwner {
        require(!tradingActive, "Already launched!");
        tradingActive = true;
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(
            address(this),
            uniswapRouter.WETH()
        );
        isPresidentPair[address(uniswapPair)] = true;
        uniswapRouter.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        swapEnabled = true;
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_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":[{"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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPresidentOutFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPresidentOutMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPresidentPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"obamaWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600a60809081526927b130b6b09021b7b4b760b11b60a0526001906200002b908262000352565b506040805180820190915260058152644f62616d6160d81b602082015260029062000057908262000352565b506003805463ffff00ff1916630100001217815560646004556005819055600655620000866012600a62000529565b62000097906402540be40062000540565b6007556064600754620000ab91906200055a565b620000b890600262000540565b6008556064600754620000cc91906200055a565b620000d990600262000540565b6009556103e8600754620000ee91906200055a565b620000fb90600562000540565b600a55600d80546001600160a01b0319167360f330d5f042faf84005153e7e4862189d64352d17905534801562000130575f80fd5b506200013c3362000263565b600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255305f8181526012602090815260408083209483529381528382205f199055828252600e8152838220805460ff19908116600190811790925533808552868520805483168417905587546001600160a01b0390811686528786208054841685179055600d80548216875288872080548516861790558287526010865288872080548516861790559854811686528786208054841685179055958552868520805483168417905596549094168352848320805490941617909255600754848252601183528382208190559251928352917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200057a565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620002db57607f821691505b602082108103620002fa57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200034d575f81815260208120601f850160051c81016020861015620003285750805b601f850160051c820191505b81811015620003495782815560010162000334565b5050505b505050565b81516001600160401b038111156200036e576200036e620002b2565b62000386816200037f8454620002c6565b8462000300565b602080601f831160018114620003bc575f8415620003a45750858301515b5f19600386901b1c1916600185901b17855562000349565b5f85815260208120601f198616915b82811015620003ec57888601518255948401946001909101908401620003cb565b50858210156200040a57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200046e57815f19048211156200045257620004526200041a565b808516156200046057918102915b93841c939080029062000433565b509250929050565b5f82620004865750600162000523565b816200049457505f62000523565b8160018114620004ad5760028114620004b857620004d8565b600191505062000523565b60ff841115620004cc57620004cc6200041a565b50506001821b62000523565b5060208310610133831016604e8410600b8410161715620004fd575081810a62000523565b6200050983836200042e565b805f19048211156200051f576200051f6200041a565b0290505b92915050565b5f6200053960ff84168362000476565b9392505050565b80820281158282048414176200052357620005236200041a565b5f826200057557634e487b7160e01b5f52601260045260245ffd5b500490565b611aa080620005885f395ff3fe6080604052600436106101c8575f3560e01c8063735de9f7116100f257806395d89b4111610092578063c9567bf911610062578063c9567bf914610511578063cd79411714610519578063dd62ed3e14610538578063f2fde38b1461057c575f80fd5b806395d89b41146104a0578063a457c2d7146104b4578063a9059cbb146104d3578063c816841b146104f2575f80fd5b806380d437a1116100cd57806380d437a11461041357806385f71fd0146104415780638da5cb5b1461046f5780638f9a55c01461048b575f80fd5b8063735de9f7146103b3578063751039fc146103ea5780637d1db4a5146103fe575f80fd5b80632c3a6767116101685780636d800a3c116101385780636d800a3c1461032c5780636ddd17131461034c57806370a082311461036b578063715018a61461039f575f80fd5b80632c3a6767146102a9578063313ce567146102d757806339509351146102f85780634706240214610317575f80fd5b8063095ea7b3116101a3578063095ea7b31461023257806318160ddd1461026157806323b872dd146102755780632b14ca5614610294575f80fd5b80630445b667146101d35780630572b0cc146101fb57806306fdde0314610211575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b506101e8600a5481565b6040519081526020015b60405180910390f35b348015610206575f80fd5b5061020f61059b565b005b34801561021c575f80fd5b506102256105d4565b6040516101f29190611730565b34801561023d575f80fd5b5061025161024c36600461178f565b610664565b60405190151581526020016101f2565b34801561026c575f80fd5b506007546101e8565b348015610280575f80fd5b5061025161028f3660046117b9565b61067a565b34801561029f575f80fd5b506101e860065481565b3480156102b4575f80fd5b506102516102c33660046117f7565b600f6020525f908152604090205460ff1681565b3480156102e2575f80fd5b5060035460405160ff90911681526020016101f2565b348015610303575f80fd5b5061025161031236600461178f565b6106e3565b348015610322575f80fd5b506101e860055481565b348015610337575f80fd5b50600354610251906301000000900460ff1681565b348015610357575f80fd5b506003546102519062010000900460ff1681565b348015610376575f80fd5b506101e86103853660046117f7565b6001600160a01b03165f9081526011602052604090205490565b3480156103aa575f80fd5b5061020f610718565b3480156103be575f80fd5b50600b546103d2906001600160a01b031681565b6040516001600160a01b0390911681526020016101f2565b3480156103f5575f80fd5b5061020f610755565b348015610409575f80fd5b506101e860085481565b34801561041e575f80fd5b5061025161042d3660046117f7565b60106020525f908152604090205460ff1681565b34801561044c575f80fd5b5061025161045b3660046117f7565b600e6020525f908152604090205460ff1681565b34801561047a575f80fd5b505f546001600160a01b03166103d2565b348015610496575f80fd5b506101e860095481565b3480156104ab575f80fd5b5061022561078d565b3480156104bf575f80fd5b506102516104ce36600461178f565b61079c565b3480156104de575f80fd5b506102516104ed36600461178f565b6107e9565b3480156104fd575f80fd5b50600c546103d2906001600160a01b031681565b61020f6107f5565b348015610524575f80fd5b50600d546103d2906001600160a01b031681565b348015610543575f80fd5b506101e8610552366004611812565b6001600160a01b039182165f90815260126020908152604080832093909416825291909152205490565b348015610587575f80fd5b5061020f6105963660046117f7565b610aeb565b600d546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156105d1573d5f803e3d5ffd5b50565b6060600180546105e390611849565b80601f016020809104026020016040519081016040528092919081815260200182805461060f90611849565b801561065a5780601f106106315761010080835404028352916020019161065a565b820191905f5260205f20905b81548152906001019060200180831161063d57829003601f168201915b5050505050905090565b5f610670338484610b82565b5060015b92915050565b5f610686848484610ca5565b506106d884336106d385604051806060016040528060288152602001611a1e602891396001600160a01b038a165f90815260126020908152604080832033845290915290205491906110db565b610b82565b5060015b9392505050565b335f8181526012602090815260408083206001600160a01b038716845290915281205490916106709185906106d39086611113565b5f546001600160a01b0316331461074a5760405162461bcd60e51b815260040161074190611881565b60405180910390fd5b6107535f611171565b565b5f546001600160a01b0316331461077e5760405162461bcd60e51b815260040161074190611881565b6003805463ff00000019169055565b6060600280546105e390611849565b5f61067033846106d385604051806060016040528060258152602001611a4660259139335f9081526012602090815260408083206001600160a01b038d16845290915290205491906110db565b5f6106d8338484610ca5565b5f546001600160a01b0316331461081e5760405162461bcd60e51b815260040161074190611881565b600354610100900460ff161561086a5760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b6044820152606401610741565b6003805461ff001916610100179055600b546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa1580156108c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e591906118b6565b6001600160a01b031663c9c6539630600b5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610944573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096891906118b6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156109b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d691906118b6565b600c80546001600160a01b039283166001600160a01b031990911681179091555f908152600f60205260409020805460ff19166001179055600b541663f305d7193430610a37816001600160a01b03165f9081526011602052604090205490565b5f80610a4a5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ab0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ad591906118d1565b50506003805462ff000019166201000017905550565b5f546001600160a01b03163314610b145760405162461bcd60e51b815260040161074190611881565b6001600160a01b038116610b795760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610741565b6105d181611171565b6001600160a01b038316610be45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610741565b6001600160a01b038216610c455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610741565b6001600160a01b038381165f8181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610d0a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610741565b6001600160a01b038316610d6c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610741565b5f8211610dcd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610741565b60135460ff1615610dea57610de38484846111c0565b90506106dc565b600354610100900460ff16610e7b576001600160a01b0384165f908152600e602052604090205460ff1680610e3657506001600160a01b0383165f908152600e602052604090205460ff165b610e7b5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610741565b305f90815260116020526040902054600a5481108015908190610ea1575060135460ff16155b8015610ec557506001600160a01b0386165f908152600f602052604090205460ff16155b8015610ed9575060035462010000900460ff165b15610ee757610ee7826112a3565b600d546001600160a01b03878116911614610f66576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f90815260119091529190912054610f4d9186906110db565b6001600160a01b0387165f908152601160205260409020555b5f610f7187876112c6565b610f8557610f80878787611360565b610f87565b845b6003549091506301000000900460ff168015610fb05750600c546001600160a01b038881169116145b8015610fd457506001600160a01b0386165f9081526010602052604090205460ff16155b156110525760095461100482610ffe896001600160a01b03165f9081526011602052604090205490565b90611113565b11156110525760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d6974204578636565646564212100000000006044820152606401610741565b6001600160a01b0386165f908152601160205260409020546110749082611113565b6001600160a01b038088165f8181526011602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110c79085815260200190565b60405180910390a3600193505050506106dc565b5f81848411156110fe5760405162461bcd60e51b81526004016107419190611730565b505f61110a8486611910565b95945050505050565b5f8061111f8385611923565b9050838110156106dc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610741565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526011909152918220546112109184906110db565b6001600160a01b038086165f90815260116020526040808220939093559085168152205461123e9083611113565b6001600160a01b038085165f8181526011602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112919086815260200190565b60405180910390a35060019392505050565b6013805460ff191660011790556112b98161147b565b506013805460ff19169055565b6001600160a01b0382165f908152600e602052604081205460ff168061130357506001600160a01b0382165f908152600e602052604090205460ff165b1561131057506001610674565b6001600160a01b0383165f908152600f602052604090205460ff168061134d57506001600160a01b0382165f908152600f602052604090205460ff165b1561135957505f610674565b505f610674565b6001600160a01b0383165f908152600f6020526040812054819060ff16156113aa576113a360045461139d6005548661160490919063ffffffff16565b90611682565b90506113f9565b6001600160a01b0384165f908152600f602052604090205460ff16156113f957600454600d546006546113f6929161139d916113ef916001600160a01b0316316116c3565b8690611604565b90505b801561147157305f908152601160205260409020546114189082611113565b305f81815260116020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114689085815260200190565b60405180910390a35b61110a83826116c3565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106114ae576114ae611936565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611505573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061152991906118b6565b8160018151811061153c5761153c611936565b6001600160a01b039283166020918202929092010152600b546115629130911684610b82565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061159a9085905f9086903090429060040161198c565b5f604051808303815f87803b1580156115b1575f80fd5b505af11580156115c3573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516115f89291906119c7565b60405180910390a15050565b5f825f0361161357505f610674565b5f61161e83856119e7565b90508261162b85836119fe565b146106dc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610741565b5f6106dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611704565b5f6106dc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110db565b5f81836117245760405162461bcd60e51b81526004016107419190611730565b505f61110a84866119fe565b5f6020808352835180828501525f5b8181101561175b5785810183015185820160400152820161173f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105d1575f80fd5b5f80604083850312156117a0575f80fd5b82356117ab8161177b565b946020939093013593505050565b5f805f606084860312156117cb575f80fd5b83356117d68161177b565b925060208401356117e68161177b565b929592945050506040919091013590565b5f60208284031215611807575f80fd5b81356106dc8161177b565b5f8060408385031215611823575f80fd5b823561182e8161177b565b9150602083013561183e8161177b565b809150509250929050565b600181811c9082168061185d57607f821691505b60208210810361187b57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118c6575f80fd5b81516106dc8161177b565b5f805f606084860312156118e3575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610674576106746118fc565b80820180821115610674576106746118fc565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b838110156119815781516001600160a01b03168752958201959082019060010161195c565b509495945050505050565b85815284602082015260a060408201525f6119aa60a083018661194a565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f6119df604083018461194a565b949350505050565b8082028115828204841417610674576106746118fc565b5f82611a1857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f8b1815eef6b352ba1b40a5f7f7ed8a5ac0c9bbf73b8ac57f4d79a2fabb6d86e64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101c8575f3560e01c8063735de9f7116100f257806395d89b4111610092578063c9567bf911610062578063c9567bf914610511578063cd79411714610519578063dd62ed3e14610538578063f2fde38b1461057c575f80fd5b806395d89b41146104a0578063a457c2d7146104b4578063a9059cbb146104d3578063c816841b146104f2575f80fd5b806380d437a1116100cd57806380d437a11461041357806385f71fd0146104415780638da5cb5b1461046f5780638f9a55c01461048b575f80fd5b8063735de9f7146103b3578063751039fc146103ea5780637d1db4a5146103fe575f80fd5b80632c3a6767116101685780636d800a3c116101385780636d800a3c1461032c5780636ddd17131461034c57806370a082311461036b578063715018a61461039f575f80fd5b80632c3a6767146102a9578063313ce567146102d757806339509351146102f85780634706240214610317575f80fd5b8063095ea7b3116101a3578063095ea7b31461023257806318160ddd1461026157806323b872dd146102755780632b14ca5614610294575f80fd5b80630445b667146101d35780630572b0cc146101fb57806306fdde0314610211575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b506101e8600a5481565b6040519081526020015b60405180910390f35b348015610206575f80fd5b5061020f61059b565b005b34801561021c575f80fd5b506102256105d4565b6040516101f29190611730565b34801561023d575f80fd5b5061025161024c36600461178f565b610664565b60405190151581526020016101f2565b34801561026c575f80fd5b506007546101e8565b348015610280575f80fd5b5061025161028f3660046117b9565b61067a565b34801561029f575f80fd5b506101e860065481565b3480156102b4575f80fd5b506102516102c33660046117f7565b600f6020525f908152604090205460ff1681565b3480156102e2575f80fd5b5060035460405160ff90911681526020016101f2565b348015610303575f80fd5b5061025161031236600461178f565b6106e3565b348015610322575f80fd5b506101e860055481565b348015610337575f80fd5b50600354610251906301000000900460ff1681565b348015610357575f80fd5b506003546102519062010000900460ff1681565b348015610376575f80fd5b506101e86103853660046117f7565b6001600160a01b03165f9081526011602052604090205490565b3480156103aa575f80fd5b5061020f610718565b3480156103be575f80fd5b50600b546103d2906001600160a01b031681565b6040516001600160a01b0390911681526020016101f2565b3480156103f5575f80fd5b5061020f610755565b348015610409575f80fd5b506101e860085481565b34801561041e575f80fd5b5061025161042d3660046117f7565b60106020525f908152604090205460ff1681565b34801561044c575f80fd5b5061025161045b3660046117f7565b600e6020525f908152604090205460ff1681565b34801561047a575f80fd5b505f546001600160a01b03166103d2565b348015610496575f80fd5b506101e860095481565b3480156104ab575f80fd5b5061022561078d565b3480156104bf575f80fd5b506102516104ce36600461178f565b61079c565b3480156104de575f80fd5b506102516104ed36600461178f565b6107e9565b3480156104fd575f80fd5b50600c546103d2906001600160a01b031681565b61020f6107f5565b348015610524575f80fd5b50600d546103d2906001600160a01b031681565b348015610543575f80fd5b506101e8610552366004611812565b6001600160a01b039182165f90815260126020908152604080832093909416825291909152205490565b348015610587575f80fd5b5061020f6105963660046117f7565b610aeb565b600d546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156105d1573d5f803e3d5ffd5b50565b6060600180546105e390611849565b80601f016020809104026020016040519081016040528092919081815260200182805461060f90611849565b801561065a5780601f106106315761010080835404028352916020019161065a565b820191905f5260205f20905b81548152906001019060200180831161063d57829003601f168201915b5050505050905090565b5f610670338484610b82565b5060015b92915050565b5f610686848484610ca5565b506106d884336106d385604051806060016040528060288152602001611a1e602891396001600160a01b038a165f90815260126020908152604080832033845290915290205491906110db565b610b82565b5060015b9392505050565b335f8181526012602090815260408083206001600160a01b038716845290915281205490916106709185906106d39086611113565b5f546001600160a01b0316331461074a5760405162461bcd60e51b815260040161074190611881565b60405180910390fd5b6107535f611171565b565b5f546001600160a01b0316331461077e5760405162461bcd60e51b815260040161074190611881565b6003805463ff00000019169055565b6060600280546105e390611849565b5f61067033846106d385604051806060016040528060258152602001611a4660259139335f9081526012602090815260408083206001600160a01b038d16845290915290205491906110db565b5f6106d8338484610ca5565b5f546001600160a01b0316331461081e5760405162461bcd60e51b815260040161074190611881565b600354610100900460ff161561086a5760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b6044820152606401610741565b6003805461ff001916610100179055600b546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa1580156108c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e591906118b6565b6001600160a01b031663c9c6539630600b5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610944573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096891906118b6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156109b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d691906118b6565b600c80546001600160a01b039283166001600160a01b031990911681179091555f908152600f60205260409020805460ff19166001179055600b541663f305d7193430610a37816001600160a01b03165f9081526011602052604090205490565b5f80610a4a5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ab0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ad591906118d1565b50506003805462ff000019166201000017905550565b5f546001600160a01b03163314610b145760405162461bcd60e51b815260040161074190611881565b6001600160a01b038116610b795760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610741565b6105d181611171565b6001600160a01b038316610be45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610741565b6001600160a01b038216610c455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610741565b6001600160a01b038381165f8181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610d0a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610741565b6001600160a01b038316610d6c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610741565b5f8211610dcd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610741565b60135460ff1615610dea57610de38484846111c0565b90506106dc565b600354610100900460ff16610e7b576001600160a01b0384165f908152600e602052604090205460ff1680610e3657506001600160a01b0383165f908152600e602052604090205460ff165b610e7b5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610741565b305f90815260116020526040902054600a5481108015908190610ea1575060135460ff16155b8015610ec557506001600160a01b0386165f908152600f602052604090205460ff16155b8015610ed9575060035462010000900460ff165b15610ee757610ee7826112a3565b600d546001600160a01b03878116911614610f66576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f90815260119091529190912054610f4d9186906110db565b6001600160a01b0387165f908152601160205260409020555b5f610f7187876112c6565b610f8557610f80878787611360565b610f87565b845b6003549091506301000000900460ff168015610fb05750600c546001600160a01b038881169116145b8015610fd457506001600160a01b0386165f9081526010602052604090205460ff16155b156110525760095461100482610ffe896001600160a01b03165f9081526011602052604090205490565b90611113565b11156110525760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d6974204578636565646564212100000000006044820152606401610741565b6001600160a01b0386165f908152601160205260409020546110749082611113565b6001600160a01b038088165f8181526011602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110c79085815260200190565b60405180910390a3600193505050506106dc565b5f81848411156110fe5760405162461bcd60e51b81526004016107419190611730565b505f61110a8486611910565b95945050505050565b5f8061111f8385611923565b9050838110156106dc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610741565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526011909152918220546112109184906110db565b6001600160a01b038086165f90815260116020526040808220939093559085168152205461123e9083611113565b6001600160a01b038085165f8181526011602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112919086815260200190565b60405180910390a35060019392505050565b6013805460ff191660011790556112b98161147b565b506013805460ff19169055565b6001600160a01b0382165f908152600e602052604081205460ff168061130357506001600160a01b0382165f908152600e602052604090205460ff165b1561131057506001610674565b6001600160a01b0383165f908152600f602052604090205460ff168061134d57506001600160a01b0382165f908152600f602052604090205460ff165b1561135957505f610674565b505f610674565b6001600160a01b0383165f908152600f6020526040812054819060ff16156113aa576113a360045461139d6005548661160490919063ffffffff16565b90611682565b90506113f9565b6001600160a01b0384165f908152600f602052604090205460ff16156113f957600454600d546006546113f6929161139d916113ef916001600160a01b0316316116c3565b8690611604565b90505b801561147157305f908152601160205260409020546114189082611113565b305f81815260116020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114689085815260200190565b60405180910390a35b61110a83826116c3565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106114ae576114ae611936565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611505573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061152991906118b6565b8160018151811061153c5761153c611936565b6001600160a01b039283166020918202929092010152600b546115629130911684610b82565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061159a9085905f9086903090429060040161198c565b5f604051808303815f87803b1580156115b1575f80fd5b505af11580156115c3573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516115f89291906119c7565b60405180910390a15050565b5f825f0361161357505f610674565b5f61161e83856119e7565b90508261162b85836119fe565b146106dc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610741565b5f6106dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611704565b5f6106dc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110db565b5f81836117245760405162461bcd60e51b81526004016107419190611730565b505f61110a84866119fe565b5f6020808352835180828501525f5b8181101561175b5785810183015185820160400152820161173f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105d1575f80fd5b5f80604083850312156117a0575f80fd5b82356117ab8161177b565b946020939093013593505050565b5f805f606084860312156117cb575f80fd5b83356117d68161177b565b925060208401356117e68161177b565b929592945050506040919091013590565b5f60208284031215611807575f80fd5b81356106dc8161177b565b5f8060408385031215611823575f80fd5b823561182e8161177b565b9150602083013561183e8161177b565b809150509250929050565b600181811c9082168061185d57607f821691505b60208210810361187b57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118c6575f80fd5b81516106dc8161177b565b5f805f606084860312156118e3575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610674576106746118fc565b80820180821115610674576106746118fc565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b838110156119815781516001600160a01b03168752958201959082019060010161195c565b509495945050505050565b85815284602082015260a060408201525f6119aa60a083018661194a565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f6119df604083018461194a565b949350505050565b8082028115828204841417610674576106746118fc565b5f82611a1857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f8b1815eef6b352ba1b40a5f7f7ed8a5ac0c9bbf73b8ac57f4d79a2fabb6d86e64736f6c63430008140033

Deployed Bytecode Sourcemap

4009:8399:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4600:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4600:56:0;;;;;;;;11588:102;;;;;;;;;;;;;:::i;:::-;;6052:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7074:138::-;;;;;;;;;;-1:-1:-1;7074:138:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;7074:138:0;1205:187:1;6281:86:0;;;;;;;;;;-1:-1:-1;6352:12:0;;6281:86;;7368:314;;;;;;;;;;-1:-1:-1;7368:314:0;;;;;:::i;:::-;;:::i;4375:26::-;;;;;;;;;;;;;;;;4889:47;;;;;;;;;;-1:-1:-1;4889:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6206:69;;;;;;;;;;-1:-1:-1;6263:9:0;;6206:69;;6263:9;;;;2252:36:1;;2240:2;2225:18;6206:69:0;2110:184:1;6619:195:0;;;;;;;;;;-1:-1:-1;6619:195:0;;;;;:::i;:::-;;:::i;4343:25::-;;;;;;;;;;;;;;;;4277:31;;;;;;;;;;-1:-1:-1;4277:31:0;;;;;;;;;;;4239;;;;;;;;;;-1:-1:-1;4239:31:0;;;;;;;;;;;6373:105;;;;;;;;;;-1:-1:-1;6373:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6457:18:0;6439:7;6457:18;;;:9;:18;;;;;;;6373:105;2135:80;;;;;;;;;;;;;:::i;4665:37::-;;;;;;;;;;-1:-1:-1;4665:37:0;;;;-1:-1:-1;;;;;4665:37:0;;;;;;-1:-1:-1;;;;;2486:32:1;;;2468:51;;2456:2;2441:18;4665:37:0;2299:226:1;11696:68:0;;;;;;;;;;;;;:::i;4476:54::-;;;;;;;;;;;;;;;;4943:55;;;;;;;;;;-1:-1:-1;4943:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4829:53;;;;;;;;;;-1:-1:-1;4829:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1930:73;;;;;;;;;;-1:-1:-1;1976:7:0;1994:6;-1:-1:-1;;;;;1994:6:0;1930:73;;4537:56;;;;;;;;;;;;;;;;6127:73;;;;;;;;;;;;;:::i;6820:248::-;;;;;;;;;;-1:-1:-1;6820:248:0;;;;;:::i;:::-;;:::i;7218:144::-;;;;;;;;;;-1:-1:-1;7218:144:0;;;;;:::i;:::-;;:::i;4709:26::-;;;;;;;;;;-1:-1:-1;4709:26:0;;;;-1:-1:-1;;;;;4709:26:0;;;11770:600;;;:::i;4742:80::-;;;;;;;;;;-1:-1:-1;4742:80:0;;;;-1:-1:-1;;;;;4742:80:0;;;6484:129;;;;;;;;;;-1:-1:-1;6484:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;6583:18:0;;;6565:7;6583:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6484:129;2221:192;;;;;;;;;;-1:-1:-1;2221:192:0;;;;;:::i;:::-;;:::i;11588:102::-;11638:11;;11630:52;;-1:-1:-1;;;;;11638:11:0;;;;11660:21;11630:52;;;;;11638:11;11630:52;11638:11;11630:52;11660:21;11638:11;11630:52;;;;;;;;;;;;;;;;;;;;;11588:102::o;6052:69::-;6089:13;6113:5;6106:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6052:69;:::o;7074:138::-;7149:4;7157:39;238:10;7180:7;7189:6;7157:8;:39::i;:::-;-1:-1:-1;7205:4:0;7074:138;;;;;:::o;7368:314::-;7466:4;7483:36;7493:6;7501:9;7512:6;7483:9;:36::i;:::-;-1:-1:-1;7530:122:0;7539:6;238:10;7561:89;7599:6;7561:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7561:19:0;;;;;;:11;:19;;;;;;;;238:10;7561:33;;;;;;;;;;:37;:89::i;:::-;7530:8;:122::i;:::-;-1:-1:-1;7670:4:0;7368:314;;;;;;:::o;6619:195::-;238:10;6707:4;6747:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6747:34:0;;;;;;;;;;6707:4;;6715:83;;6738:7;;6747:50;;6786:10;6747:38;:50::i;2135:80::-;1976:7;1994:6;-1:-1:-1;;;;;1994:6:0;238:10;2049:23;2041:68;;;;-1:-1:-1;;;2041:68:0;;;;;;;:::i;:::-;;;;;;;;;2191:21:::1;2209:1;2191:9;:21::i;:::-;2135:80::o:0;11696:68::-;1976:7;1994:6;-1:-1:-1;;;;;1994:6:0;238:10;2049:23;2041:68;;;;-1:-1:-1;;;2041:68:0;;;;;;;:::i;:::-;11741:12:::1;:20:::0;;-1:-1:-1;;11741:20:0::1;::::0;;11696:68::o;6127:73::-;6166:13;6190:7;6183:14;;;;;:::i;6820:248::-;6913:4;6921:131;238:10;6944:7;6953:97;6992:15;6953:97;;;;;;;;;;;;;;;;;238:10;6953:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6953:34:0;;;;;;;;;;;;:38;:97::i;7218:144::-;7296:4;7304:42;238:10;7328:9;7339:6;7304:9;:42::i;11770:600::-;1976:7;1994:6;-1:-1:-1;;;;;1994:6:0;238:10;2049:23;2041:68;;;;-1:-1:-1;;;2041:68:0;;;;;;;:::i;:::-;11840:13:::1;::::0;::::1;::::0;::::1;;;11839:14;11831:44;;;::::0;-1:-1:-1;;;11831:44:0;;4079:2:1;11831:44:0::1;::::0;::::1;4061:21:1::0;4118:2;4098:18;;;4091:30;-1:-1:-1;;;4137:18:1;;;4130:47;4194:18;;11831:44:0::1;3877:341:1::0;11831:44:0::1;11886:13;:20:::0;;-1:-1:-1;;11886:20:0::1;;;::::0;;11949:13:::1;::::0;:23:::1;::::0;;-1:-1:-1;;;11949:23:0;;;;-1:-1:-1;;;;;11949:13:0;;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:13;:23:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11931:53:0::1;;12007:4;12027:13;;;;;;;;;-1:-1:-1::0;;;;;12027:13:0::1;-1:-1:-1::0;;;;;12027:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11931:127;::::0;-1:-1:-1;;;;;;11931:127:0::1;::::0;;;;;;-1:-1:-1;;;;;4709:15:1;;;11931:127:0::1;::::0;::::1;4691:34:1::0;4761:15;;4741:18;;;4734:43;4626:18;;11931:127:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11917:11;:141:::0;;-1:-1:-1;;;;;11917:141:0;;::::1;-1:-1:-1::0;;;;;;11917:141:0;;::::1;::::0;::::1;::::0;;;:11:::1;12069:37:::0;;;:15:::1;:37;::::0;;;;:44;;-1:-1:-1;;12069:44:0::1;11917:141:::0;12069:44:::1;::::0;;12124:13:::1;::::0;::::1;:29;12161:9;12194:4;12214:24;12194:4:::0;-1:-1:-1;;;;;6457:18:0;6439:7;6457:18;;;:9;:18;;;;;;;6373:105;12214:24:::1;12253:1;12269::::0;12285:7:::1;1976::::0;1994:6;-1:-1:-1;;;;;1994:6:0;;1930:73;12285:7:::1;12124:209;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12124:209:0;;;-1:-1:-1;;;;;5147:15:1;;;12124:209:0::1;::::0;::::1;5129:34:1::0;5179:18;;;5172:34;;;;5222:18;;;5215:34;;;;5265:18;;;5258:34;5329:15;;;5308:19;;;5301:44;12307:15:0::1;5361:19:1::0;;;5354:35;5063:19;;12124:209:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12344:11:0::1;:18:::0;;-1:-1:-1;;12344:18:0::1;::::0;::::1;::::0;;-1:-1:-1;11770:600:0:o;2221:192::-;1976:7;1994:6;-1:-1:-1;;;;;1994:6:0;238:10;2049:23;2041:68;;;;-1:-1:-1;;;2041:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2310:22:0;::::1;2302:73;;;::::0;-1:-1:-1;;;2302:73:0;;5913:2:1;2302:73:0::1;::::0;::::1;5895:21:1::0;5952:2;5932:18;;;5925:30;5991:34;5971:18;;;5964:62;-1:-1:-1;;;6042:18:1;;;6035:36;6088:19;;2302:73:0::1;5711:402:1::0;2302:73:0::1;2386:19;2396:8;2386:9;:19::i;7688:336::-:0;-1:-1:-1;;;;;7782:19:0;;7774:68;;;;-1:-1:-1;;;7774:68:0;;6320:2:1;7774:68:0;;;6302:21:1;6359:2;6339:18;;;6332:30;6398:34;6378:18;;;6371:62;-1:-1:-1;;;6449:18:1;;;6442:34;6493:19;;7774:68:0;6118:400:1;7774:68:0;-1:-1:-1;;;;;7861:21:0;;7853:68;;;;-1:-1:-1;;;7853:68:0;;6725:2:1;7853:68:0;;;6707:21:1;6764:2;6744:18;;;6737:30;6803:34;6783:18;;;6776:62;-1:-1:-1;;;6854:18:1;;;6847:32;6896:19;;7853:68:0;6523:398:1;7853:68:0;-1:-1:-1;;;;;7932:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7984:32;;160:25:1;;;7984:32:0;;133:18:1;7984:32:0;;;;;;;7688:336;;;:::o;8030:1587::-;8118:4;-1:-1:-1;;;;;8143:20:0;;8135:70;;;;-1:-1:-1;;;8135:70:0;;7128:2:1;8135:70:0;;;7110:21:1;7167:2;7147:18;;;7140:30;7206:34;7186:18;;;7179:62;-1:-1:-1;;;7257:18:1;;;7250:35;7302:19;;8135:70:0;6926:401:1;8135:70:0;-1:-1:-1;;;;;8224:23:0;;8216:71;;;;-1:-1:-1;;;8216:71:0;;7534:2:1;8216:71:0;;;7516:21:1;7573:2;7553:18;;;7546:30;7612:34;7592:18;;;7585:62;-1:-1:-1;;;7663:18:1;;;7656:33;7706:19;;8216:71:0;7332:399:1;8216:71:0;8315:1;8306:6;:10;8298:64;;;;-1:-1:-1;;;8298:64:0;;7938:2:1;8298:64:0;;;7920:21:1;7977:2;7957:18;;;7950:30;8016:34;7996:18;;;7989:62;-1:-1:-1;;;8067:18:1;;;8060:39;8116:19;;8298:64:0;7736:405:1;8298:64:0;8379:6;;;;8375:1235;;;8409:44;8427:6;8435:9;8446:6;8409:17;:44::i;:::-;8402:51;;;;8375:1235;8491:13;;;;;;;8486:126;;-1:-1:-1;;;;;8516:29:0;;;;;;:21;:29;;;;;;;;;:65;;-1:-1:-1;;;;;;8549:32:0;;;;;;:21;:32;;;;;;;;8516:65;8508:101;;;;-1:-1:-1;;;8508:101:0;;8348:2:1;8508:101:0;;;8330:21:1;8387:2;8367:18;;;8360:30;-1:-1:-1;;;8406:18:1;;;8399:52;8468:18;;8508:101:0;8146:346:1;8508:101:0;8675:4;8626:28;6457:18;;;:9;:18;;;;;;8751:13;;8727:37;;;;;;;8783:34;;-1:-1:-1;8811:6:0;;;;8810:7;8783:34;:61;;;;-1:-1:-1;;;;;;8821:23:0;;;;;;:15;:23;;;;;;;;8820:24;8783:61;:76;;;;-1:-1:-1;8848:11:0;;;;;;;8783:76;8779:148;;;8881:30;8890:20;8881:8;:30::i;:::-;8955:11;;-1:-1:-1;;;;;8945:21:0;;;8955:11;;8945:21;8941:116;;9005:52;;;;;;;;;;;-1:-1:-1;;;9005:52:0;;;;;;;;-1:-1:-1;;;;;9005:17:0;;-1:-1:-1;9005:17:0;;;:9;:17;;;;;;;;:52;;9027:6;;9005:21;:52::i;:::-;-1:-1:-1;;;;;8985:17:0;;;;;;:9;:17;;;;;:72;8941:116;9072:19;9094:35;9111:6;9119:9;9094:16;:35::i;:::-;:115;;9175:34;9183:6;9191:9;9202:6;9175:7;:34::i;:::-;9094:115;;;9149:6;9094:115;9228:12;;9072:137;;-1:-1:-1;9228:12:0;;;;;:37;;;;-1:-1:-1;9254:11:0;;-1:-1:-1;;;;;9244:21:0;;;9254:11;;9244:21;9228:37;:76;;;;-1:-1:-1;;;;;;9270:34:0;;;;;;:23;:34;;;;;;;;9269:35;9228:76;9224:214;;;9375:14;;9334:37;9359:11;9334:20;9344:9;-1:-1:-1;;;;;6457:18:0;6439:7;6457:18;;;:9;:18;;;;;;;6373:105;9334:20;:24;;:37::i;:::-;:55;;9326:96;;;;-1:-1:-1;;;9326:96:0;;8699:2:1;9326:96:0;;;8681:21:1;8738:2;8718:18;;;8711:30;8777:29;8757:18;;;8750:57;8824:18;;9326:96:0;8497:351:1;9326:96:0;-1:-1:-1;;;;;9475:20:0;;;;;;:9;:20;;;;;;:37;;9500:11;9475:24;:37::i;:::-;-1:-1:-1;;;;;9452:20:0;;;;;;;:9;:20;;;;;;;:60;;;;9532:40;;;;;;;;;;9560:11;160:25:1;;148:2;133:18;;14:177;9532:40:0;;;;;;;;9594:4;9587:11;;;;;;;2950:190;3036:7;3072:12;3064:6;;;;3056:29;;;;-1:-1:-1;;;3056:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3096:9:0;3108:5;3112:1;3108;:5;:::i;:::-;3096:17;2950:190;-1:-1:-1;;;;;2950:190:0:o;2623:179::-;2681:7;;2713:5;2717:1;2713;:5;:::i;:::-;2701:17;;2742:1;2737;:6;;2729:46;;;;-1:-1:-1;;;2729:46:0;;9450:2:1;2729:46:0;;;9432:21:1;9489:2;9469:18;;;9462:30;9528:29;9508:18;;;9501:57;9575:18;;2729:46:0;9248:351:1;2419:173:0;2475:16;2494:6;;-1:-1:-1;;;;;2511:17:0;;;-1:-1:-1;;;;;;2511:17:0;;;;;;2544:40;;2494:6;;;;;;;2544:40;;2475:16;2544:40;2464:128;2419:173;:::o;9623:334::-;9756:54;;;;;;;;;;;-1:-1:-1;;;9756:54:0;;;;;;;;-1:-1:-1;;;;;9756:17:0;;9719:4;9756:17;;;:9;:17;;;;;;;:54;;9778:6;;9756:21;:54::i;:::-;-1:-1:-1;;;;;9736:17:0;;;;;;;:9;:17;;;;;;:74;;;;9844:20;;;;;;;:32;;9869:6;9844:24;:32::i;:::-;-1:-1:-1;;;;;9821:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9892:35;;;;;;;;;;9920:6;160:25:1;;148:2;133:18;;14:177;9892:35:0;;;;;;;;-1:-1:-1;9945:4:0;9623:334;;;;;:::o;10945:113::-;5174:6;:13;;-1:-1:-1;;5174:13:0;5183:4;5174:13;;;11017:33:::1;11034:15:::0;11017:16:::1;:33::i;:::-;-1:-1:-1::0;5210:6:0;:14;;-1:-1:-1;;5210:14:0;;;10945:113::o;9965:366::-;-1:-1:-1;;;;;10070:29:0;;10049:4;10070:29;;;:21;:29;;;;;;;;;:65;;-1:-1:-1;;;;;;10103:32:0;;;;;;:21;:32;;;;;;;;10070:65;10066:258;;;-1:-1:-1;10159:4:0;10152:11;;10066:258;-1:-1:-1;;;;;10185:23:0;;;;;;:15;:23;;;;;;;;;:53;;-1:-1:-1;;;;;;10212:26:0;;;;;;:15;:26;;;;;;;;10185:53;10181:143;;;-1:-1:-1;10262:5:0;10255:12;;10181:143;-1:-1:-1;10307:5:0;10300:12;;10339:598;-1:-1:-1;;;;;10478:23:0;;10426:7;10478:23;;;:15;:23;;;;;;10426:7;;10478:23;;10474:233;;;10530:31;10553:7;;10530:18;10541:6;;10530;:10;;:18;;;;:::i;:::-;:22;;:31::i;:::-;10518:43;;10474:233;;;-1:-1:-1;;;;;10583:26:0;;;;;;:15;:26;;;;;;;;10579:128;;;10687:7;;10661:11;;10649:7;;10638:57;;10687:7;10638:44;;10649:32;;-1:-1:-1;;;;;10661:11:0;:19;10649:11;:32::i;:::-;10638:6;;:10;:44::i;:57::-;10626:69;;10579:128;10721:13;;10717:174;;10796:4;10778:24;;;;:9;:24;;;;;;:39;;10807:9;10778:28;:39::i;:::-;10769:4;10751:24;;;;:9;:24;;;;;;;:66;;;;10837:42;;-1:-1:-1;;;;;10837:42:0;;;;;;;10869:9;160:25:1;;148:2;133:18;;14:177;10837:42:0;;;;;;;;10717:174;10908:21;:6;10919:9;10908:10;:21::i;11066:516::-;11156:16;;;11170:1;11156:16;;;;;;;;11132:21;;11156:16;;;;;;;;;;-1:-1:-1;11156:16:0;11132:40;;11201:4;11183;11188:1;11183:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11183:23:0;;;:7;;;;;;;;;;:23;;;;11227:13;;:20;;;-1:-1:-1;;;11227:20:0;;;;:13;;;;;:18;;:20;;;;;11183:7;;11227:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11217:4;11222:1;11217:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11217:30:0;;;:7;;;;;;;;;:30;11290:13;;11258:60;;11275:4;;11290:13;11306:11;11258:8;:60::i;:::-;11329:13;;:194;;-1:-1:-1;;;11329:194:0;;-1:-1:-1;;;;;11329:13:0;;;;:64;;:194;;11408:11;;11329:13;;11450:4;;11477;;11497:15;;11329:194;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11539:35;11556:11;11569:4;11539:35;;;;;;;:::i;:::-;;;;;;;;11121:461;11066:516;:::o;3146:224::-;3204:7;3228:1;3233;3228:6;3224:25;;-1:-1:-1;3245:1:0;3238:8;;3224:25;3259:9;3271:5;3275:1;3271;:5;:::i;:::-;3259:17;-1:-1:-1;3304:1:0;3295:5;3299:1;3259:17;3295:5;:::i;:::-;:10;3287:56;;;;-1:-1:-1;;;3287:56:0;;11855:2:1;3287:56:0;;;11837:21:1;11894:2;11874:18;;;11867:30;11933:34;11913:18;;;11906:62;-1:-1:-1;;;11984:18:1;;;11977:31;12025:19;;3287:56:0;11653:397:1;3376:132:0;3434:7;3461:39;3465:1;3468;3461:39;;;;;;;;;;;;;;;;;:3;:39::i;2808:136::-;2866:7;2893:43;2897:1;2900;2893:43;;;;;;;;;;;;;;;;;:3;:43::i;3514:189::-;3600:7;3635:12;3628:5;3620:28;;;;-1:-1:-1;;;3620:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3659:9:0;3671:5;3675:1;3671;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885: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;2738:388::-;2806:6;2814;2867:2;2855:9;2846:7;2842:23;2838:32;2835:52;;;2883:1;2880;2873:12;2835:52;2922:9;2909:23;2941:31;2966:5;2941:31;:::i;:::-;2991:5;-1:-1:-1;3048:2:1;3033:18;;3020:32;3061:33;3020:32;3061:33;:::i;:::-;3113:7;3103:17;;;2738:388;;;;;:::o;3131:380::-;3210:1;3206:12;;;;3253;;;3274:61;;3328:4;3320:6;3316:17;3306:27;;3274:61;3381:2;3373:6;3370:14;3350:18;3347:38;3344:161;;3427:10;3422:3;3418:20;3415:1;3408:31;3462:4;3459:1;3452:15;3490:4;3487:1;3480:15;3344:161;;3131:380;;;:::o;3516:356::-;3718:2;3700:21;;;3737:18;;;3730:30;3796:34;3791:2;3776:18;;3769:62;3863:2;3848:18;;3516:356::o;4223:251::-;4293:6;4346:2;4334:9;4325:7;4321:23;4317:32;4314:52;;;4362:1;4359;4352:12;4314:52;4394:9;4388:16;4413:31;4438:5;4413:31;:::i;5400:306::-;5488:6;5496;5504;5557:2;5545:9;5536:7;5532:23;5528:32;5525:52;;;5573:1;5570;5563:12;5525:52;5602:9;5596:16;5586:26;;5652:2;5641:9;5637:18;5631:25;5621:35;;5696:2;5685:9;5681:18;5675:25;5665:35;;5400:306;;;;;:::o;8853:127::-;8914:10;8909:3;8905:20;8902:1;8895:31;8945:4;8942:1;8935:15;8969:4;8966:1;8959:15;8985:128;9052:9;;;9073:11;;;9070:37;;;9087:18;;:::i;9118:125::-;9183:9;;;9204:10;;;9201:36;;;9217:18;;:::i;9736:127::-;9797:10;9792:3;9788:20;9785:1;9778:31;9828:4;9825:1;9818:15;9852:4;9849:1;9842:15;9868:461;9921:3;9959:5;9953:12;9986:6;9981:3;9974:19;10012:4;10041:2;10036:3;10032:12;10025:19;;10078:2;10071:5;10067:14;10099:1;10109:195;10123:6;10120:1;10117:13;10109:195;;;10188:13;;-1:-1:-1;;;;;10184:39:1;10172:52;;10244:12;;;;10279:15;;;;10220:1;10138:9;10109:195;;;-1:-1:-1;10320:3:1;;9868:461;-1:-1:-1;;;;;9868:461:1:o;10334:582::-;10633:6;10622:9;10615:25;10676:6;10671:2;10660:9;10656:18;10649:34;10719:3;10714:2;10703:9;10699:18;10692:31;10596:4;10740:57;10792:3;10781:9;10777:19;10769:6;10740:57;:::i;:::-;-1:-1:-1;;;;;10833:32:1;;;;10828:2;10813:18;;10806:60;-1:-1:-1;10897:3:1;10882:19;10875:35;10732:65;10334:582;-1:-1:-1;;;10334:582:1:o;10921:332::-;11128:6;11117:9;11110:25;11171:2;11166;11155:9;11151:18;11144:30;11091:4;11191:56;11243:2;11232:9;11228:18;11220:6;11191:56;:::i;:::-;11183:64;10921:332;-1:-1:-1;;;;10921:332:1:o;11258:168::-;11331:9;;;11362;;11379:15;;;11373:22;;11359:37;11349:71;;11400:18;;:::i;11431:217::-;11471:1;11497;11487:132;;11541:10;11536:3;11532:20;11529:1;11522:31;11576:4;11573:1;11566:15;11604:4;11601:1;11594:15;11487:132;-1:-1:-1;11633:9:1;;11431:217::o

Swarm Source

ipfs://f8b1815eef6b352ba1b40a5f7f7ed8a5ac0c9bbf73b8ac57f4d79a2fabb6d86e

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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