ETH Price: $2,614.33 (+1.62%)

Contract

0x53640EE85aFC8861eB06Ce52cf275e4705190e35
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve184866082023-11-02 19:55:11348 days ago1698954911IN
0x53640EE8...705190e35
0 ETH0.0013831429.69580441
Approve184816222023-11-02 3:06:47349 days ago1698894407IN
0x53640EE8...705190e35
0 ETH0.0012507126.88729951
Approve184804612023-11-01 23:13:23349 days ago1698880403IN
0x53640EE8...705190e35
0 ETH0.0016959236.45813412
Approve184799252023-11-01 21:25:35349 days ago1698873935IN
0x53640EE8...705190e35
0 ETH0.0018641740.07517161
Approve184798882023-11-01 21:17:59349 days ago1698873479IN
0x53640EE8...705190e35
0 ETH0.0018361639.47290903
Approve184798712023-11-01 21:14:35349 days ago1698873275IN
0x53640EE8...705190e35
0 ETH0.0021812246.83056318
Approve184798712023-11-01 21:14:35349 days ago1698873275IN
0x53640EE8...705190e35
0 ETH0.0025066253.83056318
Approve184798702023-11-01 21:14:23349 days ago1698873263IN
0x53640EE8...705190e35
0 ETH0.0023613150.71010598
Approve184798562023-11-01 21:11:35349 days ago1698873095IN
0x53640EE8...705190e35
0 ETH0.0027137758.33950041
Approve184798402023-11-01 21:08:23349 days ago1698872903IN
0x53640EE8...705190e35
0 ETH0.0023335150.10020396
Approve184798352023-11-01 21:07:23349 days ago1698872843IN
0x53640EE8...705190e35
0 ETH0.0024078651.69646614
Approve184798282023-11-01 21:05:59349 days ago1698872759IN
0x53640EE8...705190e35
0 ETH0.0026980857.92743663
Approve184797812023-11-01 20:56:23349 days ago1698872183IN
0x53640EE8...705190e35
0 ETH0.0020245643.46699092
Approve184797812023-11-01 20:56:23349 days ago1698872183IN
0x53640EE8...705190e35
0 ETH0.0027682859.44996446
Approve184797732023-11-01 20:54:47349 days ago1698872087IN
0x53640EE8...705190e35
0 ETH0.0020990345.06590847
Approve184797692023-11-01 20:53:59349 days ago1698872039IN
0x53640EE8...705190e35
0 ETH0.0019749442.40178925
Approve184797662023-11-01 20:53:23349 days ago1698872003IN
0x53640EE8...705190e35
0 ETH0.0020523944.06453312
Approve184797652023-11-01 20:53:11349 days ago1698871991IN
0x53640EE8...705190e35
0 ETH0.0018615140.22550874
Approve184797592023-11-01 20:51:59349 days ago1698871919IN
0x53640EE8...705190e35
0 ETH0.0020619244.26906271
Approve184797572023-11-01 20:51:35349 days ago1698871895IN
0x53640EE8...705190e35
0 ETH0.0021578546.3287322
Approve184797522023-11-01 20:50:35349 days ago1698871835IN
0x53640EE8...705190e35
0 ETH0.0022687848.7103626
Approve184797472023-11-01 20:49:23349 days ago1698871763IN
0x53640EE8...705190e35
0 ETH0.0022670648.67357781
Approve184797472023-11-01 20:49:23349 days ago1698871763IN
0x53640EE8...705190e35
0 ETH0.0025465354.67357781
Approve184797472023-11-01 20:49:23349 days ago1698871763IN
0x53640EE8...705190e35
0 ETH0.0025465354.67357781
Approve184797462023-11-01 20:49:11349 days ago1698871751IN
0x53640EE8...705190e35
0 ETH0.0022528248.43015415
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
184800312023-11-01 21:47:11349 days ago1698875231
0x53640EE8...705190e35
0.00233924 ETH
184800312023-11-01 21:47:11349 days ago1698875231
0x53640EE8...705190e35
0.00233924 ETH
184800312023-11-01 21:47:11349 days ago1698875231
0x53640EE8...705190e35
0.00467849 ETH
184798902023-11-01 21:18:23349 days ago1698873503
0x53640EE8...705190e35
0.00536938 ETH
184798902023-11-01 21:18:23349 days ago1698873503
0x53640EE8...705190e35
0.00536938 ETH
184798902023-11-01 21:18:23349 days ago1698873503
0x53640EE8...705190e35
0.01073877 ETH
184797822023-11-01 20:56:35349 days ago1698872195
0x53640EE8...705190e35
0.0025034 ETH
184797822023-11-01 20:56:35349 days ago1698872195
0x53640EE8...705190e35
0.0025034 ETH
184797822023-11-01 20:56:35349 days ago1698872195
0x53640EE8...705190e35
0.00500681 ETH
184797632023-11-01 20:52:47349 days ago1698871967
0x53640EE8...705190e35
0.00451578 ETH
184797632023-11-01 20:52:47349 days ago1698871967
0x53640EE8...705190e35
0.00451578 ETH
184797632023-11-01 20:52:47349 days ago1698871967
0x53640EE8...705190e35
0.00903156 ETH
184797472023-11-01 20:49:23349 days ago1698871763
0x53640EE8...705190e35
0.01202823 ETH
184797472023-11-01 20:49:23349 days ago1698871763
0x53640EE8...705190e35
0.01202823 ETH
184797472023-11-01 20:49:23349 days ago1698871763
0x53640EE8...705190e35
0.02405646 ETH
184797462023-11-01 20:49:11349 days ago1698871751
0x53640EE8...705190e35
0.01076904 ETH
184797462023-11-01 20:49:11349 days ago1698871751
0x53640EE8...705190e35
0.01076904 ETH
184797462023-11-01 20:49:11349 days ago1698871751
0x53640EE8...705190e35
0.02153809 ETH
184797412023-11-01 20:48:11349 days ago1698871691
0x53640EE8...705190e35
0.00901485 ETH
184797412023-11-01 20:48:11349 days ago1698871691
0x53640EE8...705190e35
0.00901485 ETH
184797412023-11-01 20:48:11349 days ago1698871691
0x53640EE8...705190e35
0.0180297 ETH
184797102023-11-01 20:41:59349 days ago1698871319
0x53640EE8...705190e35
0.02847547 ETH
184797102023-11-01 20:41:59349 days ago1698871319
0x53640EE8...705190e35
0.02847547 ETH
184797102023-11-01 20:41:59349 days ago1698871319
0x53640EE8...705190e35
0.05695094 ETH
184797062023-11-01 20:41:11349 days ago1698871271
0x53640EE8...705190e35
0.03394963 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KAI

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-01
*/

/*
https://kaizenerc.org

https://twitter.com/kaizenerc20

https://t.me/KAIZENERC20

https://medium.com/@KAIZENERC20.

Unmatched trading aggregation for SocialFi apps starting with @friendtech,
@NewBitcoinCity, & @starsarenacom, $KAI offers holders an easy window into
the most promising SocialFi platforms, offering them a distinct alpha advantage.
*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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);
}

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

contract KAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    address payable private _developerWallet;
    address payable private _marketingWallet = payable(0xF55AFC72F859DD1B2622F7cD70A98D05E2a89c09);
    address payable private _kaizenWallet = payable(0x67c387D6C1919f3197400a5094D4273873C2a33C);

    bool public transferDelayEnabled = true;

    uint256 private _buyFeeTax = 25;
    uint256 private _sellFeeTax = 25;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000000 * 10**_decimals;
    string private constant _name = unicode"KAIZEN";
    string private constant _symbol = unicode"KAI";
    uint256 public _maxTxAmount = 10000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 10000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 2000000000 * 10**_decimals;
    uint256 public _maxTaxSwap = 10000000000 * 10**_decimals;

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

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

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

        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(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner() && from != _developerWallet && to != _developerWallet) {
            require(enableTransfers, "Transfers are disabled");
            taxAmount = amount.mul(_buyFeeTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_sellFeeTax).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) {
                    uint256 ethForKaizen = contractETHBalance.div(2);
                    sendETHToKaizen(ethForKaizen);
                    sendETHToMarketing(address(this).balance);
                }
            }
        }

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            taxAmount = 0;
        }

        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 swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = 18800000000 * 10**_decimals;
        _maxWalletSize = 18800000000 * 10**_decimals;
        transferDelayEnabled=false;
    }

    function sendETHToMarketing(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }

    function sendETHToKaizen(uint256 amount) private {
        _kaizenWallet.transfer(amount);
    }

    function setFinalTaxFee(uint256 finalFeeOnBuy, uint256 finalFeeOnSell) public onlyOwner {
        _buyFeeTax = finalFeeOnBuy;
        _sellFeeTax = finalFeeOnSell;
    }

    function enableTrading() external onlyOwner() {
        enableTransfers = true;
    }

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

    receive() external payable {}
}

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":"_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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"finalFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"finalFeeOnSell","type":"uint256"}],"name":"setFinalTaxFee","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

6080604052600580546001600160a01b03191673f55afc72f859dd1b2622f7cd70a98d05e2a89c0917905560068054740167c387d6c1919f3197400a5094d4273873c2a33c6001600160a81b0319909116179055601960078190556008556200006b6009600a62000396565b6200007c906402540be400620003ad565b6009556009600a6200008f919062000396565b620000a0906402540be400620003ad565b600a556009600a620000b3919062000396565b620000c3906377359400620003ad565b600b55620000d46009600a62000396565b620000e5906402540be400620003ad565b600c55600e805462ffffff60a81b1916600160b81b17905534801562000109575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916331790556200016a6009600a62000396565b6200017b9064e8d4a51000620003ad565b335f908152600160208190526040822092909255600390620001a45f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454821684528284208054861682179055600554821684528284208054861682179055600654909116835291208054909216179055620002263390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200025f6009600a62000396565b620002709064e8d4a51000620003ad565b60405190815260200160405180910390a3620003c7565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002db57815f1904821115620002bf57620002bf62000287565b80851615620002cd57918102915b93841c9390800290620002a0565b509250929050565b5f82620002f35750600162000390565b816200030157505f62000390565b81600181146200031a5760028114620003255762000345565b600191505062000390565b60ff84111562000339576200033962000287565b50506001821b62000390565b5060208310610133831016604e8410600b84101617156200036a575081810a62000390565b6200037683836200029b565b805f19048211156200038c576200038c62000287565b0290505b92915050565b5f620003a660ff841683620002e3565b9392505050565b808202811582820484141762000390576200039062000287565b61183180620003d55f395ff3fe60806040526004361061011e575f3560e01c80638a8c523c1161009d578063bf474bed11610062578063bf474bed14610315578063c876d0b91461032a578063c9567bf91461034a578063cca39f951461035e578063dd62ed3e1461037d575f80fd5b80638a8c523c1461027c5780638da5cb5b146102905780638f9a55c0146102b657806395d89b41146102cb578063a9059cbb146102f6575f80fd5b8063313ce567116100e3578063313ce567146101ee57806370a0823114610209578063715018a61461023d578063751039fc146102535780637d1db4a514610267575f80fd5b806306fdde0314610129578063095ea7b3146101695780630faee56f1461019857806318160ddd146101bb57806323b872dd146101cf575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600681526525a0a4ad22a760d11b60208201525b604051610160919061141c565b60405180910390f35b348015610174575f80fd5b5061018861018336600461147e565b6103c1565b6040519015158152602001610160565b3480156101a3575f80fd5b506101ad600c5481565b604051908152602001610160565b3480156101c6575f80fd5b506101ad6103d7565b3480156101da575f80fd5b506101886101e93660046114a8565b6103f8565b3480156101f9575f80fd5b5060405160098152602001610160565b348015610214575f80fd5b506101ad6102233660046114e6565b6001600160a01b03165f9081526001602052604090205490565b348015610248575f80fd5b5061025161045f565b005b34801561025e575f80fd5b506102516104d9565b348015610272575f80fd5b506101ad60095481565b348015610287575f80fd5b5061025161054e565b34801561029b575f80fd5b505f546040516001600160a01b039091168152602001610160565b3480156102c1575f80fd5b506101ad600a5481565b3480156102d6575f80fd5b506040805180820190915260038152624b414960e81b6020820152610153565b348015610301575f80fd5b5061018861031036600461147e565b61058c565b348015610320575f80fd5b506101ad600b5481565b348015610335575f80fd5b5060065461018890600160a01b900460ff1681565b348015610355575f80fd5b50610251610598565b348015610369575f80fd5b50610251610378366004611501565b610943565b348015610388575f80fd5b506101ad610397366004611521565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103cd338484610977565b5060015b92915050565b5f6103e46009600a61164c565b6103f39064e8d4a5100061165a565b905090565b5f610404848484610a9a565b6104558433610450856040518060600160405280602881526020016117d4602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061105d565b610977565b5060019392505050565b5f546001600160a01b031633146104915760405162461bcd60e51b815260040161048890611671565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105025760405162461bcd60e51b815260040161048890611671565b61050e6009600a61164c565b61051d90640460913c0061165a565b600990815561052d90600a61164c565b61053c90640460913c0061165a565b600a556006805460ff60a01b19169055565b5f546001600160a01b031633146105775760405162461bcd60e51b815260040161048890611671565b600e805460ff60b81b1916600160b81b179055565b5f6103cd338484610a9a565b5f546001600160a01b031633146105c15760405162461bcd60e51b815260040161048890611671565b600e54600160a01b900460ff161561061b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610488565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106659030906106566009600a61164c565b6104509064e8d4a5100061165a565b600d5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d991906116a6565b6001600160a01b031663c9c6539630600d5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610738573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075c91906116a6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ca91906116a6565b600e80546001600160a01b039283166001600160a01b0319909116179055600d541663f305d7194730610811816001600160a01b03165f9081526001602052604090205490565b5f806108245f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561088a573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108af91906116c1565b5050600e54600d5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610904573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092891906116ec565b50600e805463ffff00ff60a01b19166201000160a01b179055565b5f546001600160a01b0316331461096c5760405162461bcd60e51b815260040161048890611671565b600791909155600855565b6001600160a01b0383166109d95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610488565b6001600160a01b038216610a3a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610488565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610afe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610488565b6001600160a01b038216610b605760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610488565b5f8111610bc15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610488565b5f80546001600160a01b03858116911614801590610bec57505f546001600160a01b03848116911614155b8015610c0657506004546001600160a01b03858116911614155b8015610c2057506004546001600160a01b03848116911614155b15610ea957600e54600160b81b900460ff16610c775760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b6044820152606401610488565b610c976064610c916007548561109590919063ffffffff16565b9061111a565b600e549091506001600160a01b038581169116148015610cc55750600d546001600160a01b03848116911614155b8015610ce957506001600160a01b0383165f9081526003602052604090205460ff16155b15610dba57600954821115610d405760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610488565b600a5482610d62856001600160a01b03165f9081526001602052604090205490565b610d6c919061170b565b1115610dba5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610488565b600e546001600160a01b038481169116148015610de057506001600160a01b0384163014155b15610e0257610dff6064610c916008548561109590919063ffffffff16565b90505b305f90815260016020526040902054600e54600160a81b900460ff16158015610e385750600e546001600160a01b038581169116145b8015610e4d5750600e54600160b01b900460ff165b8015610e5a5750600b5481115b15610ea757610e7c610e7784610e7284600c5461115b565b61115b565b61116f565b478015610ea5575f610e8f82600261111a565b9050610e9a816112df565b610ea34761131a565b505b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610ee657506001600160a01b0383165f9081526003602052604090205460ff165b80610f185750600e546001600160a01b03858116911614801590610f185750600e546001600160a01b03848116911614155b15610f2057505f5b8015610f9857305f90815260016020526040902054610f3f9082611351565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f8f9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610fba90836113af565b6001600160a01b0385165f90815260016020526040902055610ffd610fdf83836113af565b6001600160a01b0385165f9081526001602052604090205490611351565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61104685856113af565b60405190815260200160405180910390a350505050565b5f81848411156110805760405162461bcd60e51b8152600401610488919061141c565b505f61108c848661171e565b95945050505050565b5f825f036110a457505f6103d1565b5f6110af838561165a565b9050826110bc8583611731565b146111135760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610488565b9392505050565b5f61111383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113f0565b5f8183116111695782611113565b50919050565b600e805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111b5576111b5611750565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561120c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123091906116a6565b8160018151811061124357611243611750565b6001600160a01b039283166020918202929092010152600d546112699130911684610977565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112a19085905f90869030904290600401611764565b5f604051808303815f87803b1580156112b8575f80fd5b505af11580156112ca573d5f803e3d5ffd5b5050600e805460ff60a81b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611316573d5f803e3d5ffd5b5050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611316573d5f803e3d5ffd5b5f8061135d838561170b565b9050838110156111135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610488565b5f61111383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061105d565b5f81836114105760405162461bcd60e51b8152600401610488919061141c565b505f61108c8486611731565b5f6020808352835180828501525f5b818110156114475785810183015185820160400152820161142b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461147b575f80fd5b50565b5f806040838503121561148f575f80fd5b823561149a81611467565b946020939093013593505050565b5f805f606084860312156114ba575f80fd5b83356114c581611467565b925060208401356114d581611467565b929592945050506040919091013590565b5f602082840312156114f6575f80fd5b813561111381611467565b5f8060408385031215611512575f80fd5b50508035926020909101359150565b5f8060408385031215611532575f80fd5b823561153d81611467565b9150602083013561154d81611467565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156115a657815f190482111561158c5761158c611558565b8085161561159957918102915b93841c9390800290611571565b509250929050565b5f826115bc575060016103d1565b816115c857505f6103d1565b81600181146115de57600281146115e857611604565b60019150506103d1565b60ff8411156115f9576115f9611558565b50506001821b6103d1565b5060208310610133831016604e8410600b8410161715611627575081810a6103d1565b611631838361156c565b805f190482111561164457611644611558565b029392505050565b5f61111360ff8416836115ae565b80820281158282048414176103d1576103d1611558565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156116b6575f80fd5b815161111381611467565b5f805f606084860312156116d3575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156116fc575f80fd5b81518015158114611113575f80fd5b808201808211156103d1576103d1611558565b818103818111156103d1576103d1611558565b5f8261174b57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117b25784516001600160a01b03168352938301939183019160010161178d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220000360e32420270fce837ab952c7196b814355e1c175887bcc7aec6d736f5f6164736f6c63430008140033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c80638a8c523c1161009d578063bf474bed11610062578063bf474bed14610315578063c876d0b91461032a578063c9567bf91461034a578063cca39f951461035e578063dd62ed3e1461037d575f80fd5b80638a8c523c1461027c5780638da5cb5b146102905780638f9a55c0146102b657806395d89b41146102cb578063a9059cbb146102f6575f80fd5b8063313ce567116100e3578063313ce567146101ee57806370a0823114610209578063715018a61461023d578063751039fc146102535780637d1db4a514610267575f80fd5b806306fdde0314610129578063095ea7b3146101695780630faee56f1461019857806318160ddd146101bb57806323b872dd146101cf575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600681526525a0a4ad22a760d11b60208201525b604051610160919061141c565b60405180910390f35b348015610174575f80fd5b5061018861018336600461147e565b6103c1565b6040519015158152602001610160565b3480156101a3575f80fd5b506101ad600c5481565b604051908152602001610160565b3480156101c6575f80fd5b506101ad6103d7565b3480156101da575f80fd5b506101886101e93660046114a8565b6103f8565b3480156101f9575f80fd5b5060405160098152602001610160565b348015610214575f80fd5b506101ad6102233660046114e6565b6001600160a01b03165f9081526001602052604090205490565b348015610248575f80fd5b5061025161045f565b005b34801561025e575f80fd5b506102516104d9565b348015610272575f80fd5b506101ad60095481565b348015610287575f80fd5b5061025161054e565b34801561029b575f80fd5b505f546040516001600160a01b039091168152602001610160565b3480156102c1575f80fd5b506101ad600a5481565b3480156102d6575f80fd5b506040805180820190915260038152624b414960e81b6020820152610153565b348015610301575f80fd5b5061018861031036600461147e565b61058c565b348015610320575f80fd5b506101ad600b5481565b348015610335575f80fd5b5060065461018890600160a01b900460ff1681565b348015610355575f80fd5b50610251610598565b348015610369575f80fd5b50610251610378366004611501565b610943565b348015610388575f80fd5b506101ad610397366004611521565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103cd338484610977565b5060015b92915050565b5f6103e46009600a61164c565b6103f39064e8d4a5100061165a565b905090565b5f610404848484610a9a565b6104558433610450856040518060600160405280602881526020016117d4602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061105d565b610977565b5060019392505050565b5f546001600160a01b031633146104915760405162461bcd60e51b815260040161048890611671565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105025760405162461bcd60e51b815260040161048890611671565b61050e6009600a61164c565b61051d90640460913c0061165a565b600990815561052d90600a61164c565b61053c90640460913c0061165a565b600a556006805460ff60a01b19169055565b5f546001600160a01b031633146105775760405162461bcd60e51b815260040161048890611671565b600e805460ff60b81b1916600160b81b179055565b5f6103cd338484610a9a565b5f546001600160a01b031633146105c15760405162461bcd60e51b815260040161048890611671565b600e54600160a01b900460ff161561061b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610488565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106659030906106566009600a61164c565b6104509064e8d4a5100061165a565b600d5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d991906116a6565b6001600160a01b031663c9c6539630600d5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610738573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075c91906116a6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ca91906116a6565b600e80546001600160a01b039283166001600160a01b0319909116179055600d541663f305d7194730610811816001600160a01b03165f9081526001602052604090205490565b5f806108245f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561088a573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108af91906116c1565b5050600e54600d5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610904573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092891906116ec565b50600e805463ffff00ff60a01b19166201000160a01b179055565b5f546001600160a01b0316331461096c5760405162461bcd60e51b815260040161048890611671565b600791909155600855565b6001600160a01b0383166109d95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610488565b6001600160a01b038216610a3a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610488565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610afe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610488565b6001600160a01b038216610b605760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610488565b5f8111610bc15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610488565b5f80546001600160a01b03858116911614801590610bec57505f546001600160a01b03848116911614155b8015610c0657506004546001600160a01b03858116911614155b8015610c2057506004546001600160a01b03848116911614155b15610ea957600e54600160b81b900460ff16610c775760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b6044820152606401610488565b610c976064610c916007548561109590919063ffffffff16565b9061111a565b600e549091506001600160a01b038581169116148015610cc55750600d546001600160a01b03848116911614155b8015610ce957506001600160a01b0383165f9081526003602052604090205460ff16155b15610dba57600954821115610d405760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610488565b600a5482610d62856001600160a01b03165f9081526001602052604090205490565b610d6c919061170b565b1115610dba5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610488565b600e546001600160a01b038481169116148015610de057506001600160a01b0384163014155b15610e0257610dff6064610c916008548561109590919063ffffffff16565b90505b305f90815260016020526040902054600e54600160a81b900460ff16158015610e385750600e546001600160a01b038581169116145b8015610e4d5750600e54600160b01b900460ff165b8015610e5a5750600b5481115b15610ea757610e7c610e7784610e7284600c5461115b565b61115b565b61116f565b478015610ea5575f610e8f82600261111a565b9050610e9a816112df565b610ea34761131a565b505b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610ee657506001600160a01b0383165f9081526003602052604090205460ff165b80610f185750600e546001600160a01b03858116911614801590610f185750600e546001600160a01b03848116911614155b15610f2057505f5b8015610f9857305f90815260016020526040902054610f3f9082611351565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f8f9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610fba90836113af565b6001600160a01b0385165f90815260016020526040902055610ffd610fdf83836113af565b6001600160a01b0385165f9081526001602052604090205490611351565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61104685856113af565b60405190815260200160405180910390a350505050565b5f81848411156110805760405162461bcd60e51b8152600401610488919061141c565b505f61108c848661171e565b95945050505050565b5f825f036110a457505f6103d1565b5f6110af838561165a565b9050826110bc8583611731565b146111135760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610488565b9392505050565b5f61111383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113f0565b5f8183116111695782611113565b50919050565b600e805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111b5576111b5611750565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561120c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123091906116a6565b8160018151811061124357611243611750565b6001600160a01b039283166020918202929092010152600d546112699130911684610977565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112a19085905f90869030904290600401611764565b5f604051808303815f87803b1580156112b8575f80fd5b505af11580156112ca573d5f803e3d5ffd5b5050600e805460ff60a81b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611316573d5f803e3d5ffd5b5050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611316573d5f803e3d5ffd5b5f8061135d838561170b565b9050838110156111135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610488565b5f61111383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061105d565b5f81836114105760405162461bcd60e51b8152600401610488919061141c565b505f61108c8486611731565b5f6020808352835180828501525f5b818110156114475785810183015185820160400152820161142b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461147b575f80fd5b50565b5f806040838503121561148f575f80fd5b823561149a81611467565b946020939093013593505050565b5f805f606084860312156114ba575f80fd5b83356114c581611467565b925060208401356114d581611467565b929592945050506040919091013590565b5f602082840312156114f6575f80fd5b813561111381611467565b5f8060408385031215611512575f80fd5b50508035926020909101359150565b5f8060408385031215611532575f80fd5b823561153d81611467565b9150602083013561154d81611467565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156115a657815f190482111561158c5761158c611558565b8085161561159957918102915b93841c9390800290611571565b509250929050565b5f826115bc575060016103d1565b816115c857505f6103d1565b81600181146115de57600281146115e857611604565b60019150506103d1565b60ff8411156115f9576115f9611558565b50506001821b6103d1565b5060208310610133831016604e8410600b8410161715611627575081810a6103d1565b611631838361156c565b805f190482111561164457611644611558565b029392505050565b5f61111360ff8416836115ae565b80820281158282048414176103d1576103d1611558565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156116b6575f80fd5b815161111381611467565b5f805f606084860312156116d3575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156116fc575f80fd5b81518015158114611113575f80fd5b808201808211156103d1576103d1611558565b818103818111156103d1576103d1611558565b5f8261174b57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117b25784516001600160a01b03168352938301939183019160010161178d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220000360e32420270fce837ab952c7196b814355e1c175887bcc7aec6d736f5f6164736f6c63430008140033

Deployed Bytecode Sourcemap

3837:7799:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5790:83;;;;;;;;;;-1:-1:-1;5860:5:0;;;;;;;;;;;;-1:-1:-1;;;5860:5:0;;;;5790:83;;;;;;;:::i;:::-;;;;;;;;6623:161;;;;;;;;;;-1:-1:-1;6623:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6623:161:0;1023:187:1;4902:56:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4902:56:0;1215:177:1;6067:95:0;;;;;;;;;;;;;:::i;6792:313::-;;;;;;;;;;-1:-1:-1;6792:313:0;;;;;:::i;:::-;;:::i;5976:83::-;;;;;;;;;;-1:-1:-1;5976:83:0;;4518:1;2000:36:1;;1988:2;1973:18;5976:83:0;1858:184:1;6170:119:0;;;;;;;;;;-1:-1:-1;6170:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6263:18:0;6236:7;6263:18;;;:9;:18;;;;;;;6170:119;2920:148;;;;;;;;;;;;;:::i;:::-;;10195:195;;;;;;;;;;;;;:::i;4704:57::-;;;;;;;;;;;;;;;;10796:87;;;;;;;;;;;;;:::i;2706:79::-;;;;;;;;;;-1:-1:-1;2744:7:0;2771:6;2706:79;;-1:-1:-1;;;;;2771:6:0;;;2445:51:1;;2433:2;2418:18;2706:79:0;2299:203:1;4768:59:0;;;;;;;;;;;;;;;;5881:87;;;;;;;;;;-1:-1:-1;5953:7:0;;;;;;;;;;;;-1:-1:-1;;;5953:7:0;;;;5881:87;;6297:167;;;;;;;;;;-1:-1:-1;6297:167:0;;;;;:::i;:::-;;:::i;4834:61::-;;;;;;;;;;;;;;;;4356:39;;;;;;;;;;-1:-1:-1;4356:39:0;;;;-1:-1:-1;;;4356:39:0;;;;;;10891:705;;;;;;;;;;;;;:::i;10616:172::-;;;;;;;;;;-1:-1:-1;10616:172:0;;;;;:::i;:::-;;:::i;6472:143::-;;;;;;;;;;-1:-1:-1;6472:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6580:18:0;;;6553:7;6580:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6472:143;6623:161;6698:4;6715:39;541:10;6738:7;6747:6;6715:8;:39::i;:::-;-1:-1:-1;6772:4:0;6623:161;;;;;:::o;6067:95::-;6120:7;4577:13;4518:1;4577:2;:13;:::i;:::-;4561:29;;:13;:29;:::i;:::-;6140:14;;6067:95;:::o;6792:313::-;6890:4;6907:36;6917:6;6925:9;6936:6;6907:9;:36::i;:::-;6954:121;6963:6;541:10;6985:89;7023:6;6985:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6985:19:0;;;;;;:11;:19;;;;;;;;541:10;6985:33;;;;;;;;;;:37;:89::i;:::-;6954:8;:121::i;:::-;-1:-1:-1;7093:4:0;6792:313;;;;;:::o;2920:148::-;2833:6;;-1:-1:-1;;;;;2833:6:0;541:10;2833:22;2825:67;;;;-1:-1:-1;;;2825:67:0;;;;;;;:::i;:::-;;;;;;;;;3027:1:::1;3011:6:::0;;2990:40:::1;::::0;-1:-1:-1;;;;;3011:6:0;;::::1;::::0;2990:40:::1;::::0;3027:1;;2990:40:::1;3058:1;3041:19:::0;;-1:-1:-1;;;;;;3041:19:0::1;::::0;;2920:148::o;10195:195::-;2833:6;;-1:-1:-1;;;;;2833:6:0;541:10;2833:22;2825:67;;;;-1:-1:-1;;;2825:67:0;;;;;;;:::i;:::-;10277:13:::1;4518:1;10277:2;:13;:::i;:::-;10263:27;::::0;:11:::1;:27;:::i;:::-;10248:12;:42:::0;;;10332:13:::1;::::0;:2:::1;:13;:::i;:::-;10318:27;::::0;:11:::1;:27;:::i;:::-;10301:14;:44:::0;10356:20:::1;:26:::0;;-1:-1:-1;;;;10356:26:0::1;::::0;;10195:195::o;10796:87::-;2833:6;;-1:-1:-1;;;;;2833:6:0;541:10;2833:22;2825:67;;;;-1:-1:-1;;;2825:67:0;;;;;;;:::i;:::-;10853:15:::1;:22:::0;;-1:-1:-1;;;;10853:22:0::1;-1:-1:-1::0;;;10853:22:0::1;::::0;;10796:87::o;6297:167::-;6375:4;6392:42;541:10;6416:9;6427:6;6392:9;:42::i;10891:705::-;2833:6;;-1:-1:-1;;;;;2833:6:0;541:10;2833:22;2825:67;;;;-1:-1:-1;;;2825:67:0;;;;;;;:::i;:::-;10955:11:::1;::::0;-1:-1:-1;;;10955:11:0;::::1;;;10954:12;10946:47;;;::::0;-1:-1:-1;;;10946:47:0;;5404:2:1;10946:47:0::1;::::0;::::1;5386:21:1::0;5443:2;5423:18;;;5416:30;5482:25;5462:18;;;5455:53;5525:18;;10946:47:0::1;5202:347:1::0;10946:47:0::1;11004:15;:80:::0;;-1:-1:-1;;;;;;11004:80:0::1;11041:42;11004:80:::0;;::::1;::::0;;;11095:58:::1;::::0;11112:4:::1;::::0;4577:13:::1;4518:1;4577:2;:13;:::i;:::-;4561:29;::::0;:13:::1;:29;:::i;11095:58::-;11198:15;;;;;;;;;-1:-1:-1::0;;;;;11198:15:0::1;-1:-1:-1::0;;;;;11198:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11180:55:0::1;;11244:4;11251:15;;;;;;;;;-1:-1:-1::0;;;;;11251:15:0::1;-1:-1:-1::0;;;;;11251:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11180:94;::::0;-1:-1:-1;;;;;;11180:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6040:15:1;;;11180:94:0::1;::::0;::::1;6022:34:1::0;6092:15;;6072:18;;;6065:43;5957:18;;11180:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11164:13;:110:::0;;-1:-1:-1;;;;;11164:110:0;;::::1;-1:-1:-1::0;;;;;;11164:110:0;;::::1;;::::0;;11285:15:::1;::::0;::::1;:31;11324:21;11355:4;11361:24;11355:4:::0;-1:-1:-1;;;;;6263:18:0;6236:7;6263:18;;;:9;:18;;;;;;;6170:119;11361:24:::1;11386:1;11388::::0;11390:7:::1;2744::::0;2771:6;-1:-1:-1;;;;;2771:6:0;;2706:79;11390:7:::1;11285:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11285:129:0;;;-1:-1:-1;;;;;6478:15:1;;;11285:129:0::1;::::0;::::1;6460:34:1::0;6510:18;;;6503:34;;;;6553:18;;;6546:34;;;;6596:18;;;6589:34;6660:15;;;6639:19;;;6632:44;11398:15:0::1;6692:19:1::0;;;6685:35;6394:19;;11285:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11432:13:0::1;::::0;11463:15:::1;::::0;11425:71:::1;::::0;-1:-1:-1;;;11425:71:0;;-1:-1:-1;;;;;11463:15:0;;::::1;11425:71;::::0;::::1;7216:51:1::0;-1:-1:-1;;7283:18:1;;;7276:34;11432:13:0;::::1;::::0;-1:-1:-1;11425:29:0::1;::::0;7189:18:1;;11425:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11507:11:0::1;:18:::0;;-1:-1:-1;;;;11565:23:0;-1:-1:-1;;;11565:23:0;;;10891:705::o;10616:172::-;2833:6;;-1:-1:-1;;;;;2833:6:0;541:10;2833:22;2825:67;;;;-1:-1:-1;;;2825:67:0;;;;;;;:::i;:::-;10715:10:::1;:26:::0;;;;10752:11:::1;:28:::0;10616:172::o;7113:335::-;-1:-1:-1;;;;;7206:19:0;;7198:68;;;;-1:-1:-1;;;7198:68:0;;7805:2:1;7198:68:0;;;7787:21:1;7844:2;7824:18;;;7817:30;7883:34;7863:18;;;7856:62;-1:-1:-1;;;7934:18:1;;;7927:34;7978:19;;7198:68:0;7603:400:1;7198:68:0;-1:-1:-1;;;;;7285:21:0;;7277:68;;;;-1:-1:-1;;;7277:68:0;;8210:2:1;7277:68:0;;;8192:21:1;8249:2;8229:18;;;8222:30;8288:34;8268:18;;;8261:62;-1:-1:-1;;;8339:18:1;;;8332:32;8381:19;;7277:68:0;8008:398:1;7277:68:0;-1:-1:-1;;;;;7356:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7408:32;;1361:25:1;;;7408:32:0;;1334:18:1;7408:32:0;;;;;;;7113:335;;;:::o;7456:2132::-;-1:-1:-1;;;;;7544:18:0;;7536:68;;;;-1:-1:-1;;;7536:68:0;;8613:2:1;7536:68:0;;;8595:21:1;8652:2;8632:18;;;8625:30;8691:34;8671:18;;;8664:62;-1:-1:-1;;;8742:18:1;;;8735:35;8787:19;;7536:68:0;8411:401:1;7536:68:0;-1:-1:-1;;;;;7623:16:0;;7615:64;;;;-1:-1:-1;;;7615:64:0;;9019:2:1;7615:64:0;;;9001:21:1;9058:2;9038:18;;;9031:30;9097:34;9077:18;;;9070:62;-1:-1:-1;;;9148:18:1;;;9141:33;9191:19;;7615:64:0;8817:399:1;7615:64:0;7707:1;7698:6;:10;7690:64;;;;-1:-1:-1;;;7690:64:0;;9423:2:1;7690:64:0;;;9405:21:1;9462:2;9442:18;;;9435:30;9501:34;9481:18;;;9474:62;-1:-1:-1;;;9552:18:1;;;9545:39;9601:19;;7690:64:0;9221:405:1;7690:64:0;7765:17;2771:6;;-1:-1:-1;;;;;7799:15:0;;;2771:6;;7799:15;;;;:32;;-1:-1:-1;2744:7:0;2771:6;-1:-1:-1;;;;;7818:13:0;;;2771:6;;7818:13;;7799:32;:60;;;;-1:-1:-1;7843:16:0;;-1:-1:-1;;;;;7835:24:0;;;7843:16;;7835:24;;7799:60;:86;;;;-1:-1:-1;7869:16:0;;-1:-1:-1;;;;;7863:22:0;;;7869:16;;7863:22;;7799:86;7795:1273;;;7910:15;;-1:-1:-1;;;7910:15:0;;;;7902:50;;;;-1:-1:-1;;;7902:50:0;;9833:2:1;7902:50:0;;;9815:21:1;9872:2;9852:18;;;9845:30;-1:-1:-1;;;9891:18:1;;;9884:52;9953:18;;7902:50:0;9631:346:1;7902:50:0;7979:31;8006:3;7979:22;7990:10;;7979:6;:10;;:22;;;;:::i;:::-;:26;;:31::i;:::-;8039:13;;7967:43;;-1:-1:-1;;;;;;8031:21:0;;;8039:13;;8031:21;:55;;;;-1:-1:-1;8070:15:0;;-1:-1:-1;;;;;8056:30:0;;;8070:15;;8056:30;;8031:55;:83;;;;-1:-1:-1;;;;;;8092:22:0;;;;;;:18;:22;;;;;;;;8090:24;8031:83;8027:283;;;8154:12;;8144:6;:22;;8136:60;;;;-1:-1:-1;;;8136:60:0;;10184:2:1;8136:60:0;;;10166:21:1;10223:2;10203:18;;;10196:30;10262:27;10242:18;;;10235:55;10307:18;;8136:60:0;9982:349:1;8136:60:0;8249:14;;8239:6;8223:13;8233:2;-1:-1:-1;;;;;6263:18:0;6236:7;6263:18;;;:9;:18;;;;;;;6170:119;8223:13;:22;;;;:::i;:::-;:40;;8215:79;;;;-1:-1:-1;;;8215:79:0;;10668:2:1;8215:79:0;;;10650:21:1;10707:2;10687:18;;;10680:30;10746:28;10726:18;;;10719:56;10792:18;;8215:79:0;10466:350:1;8215:79:0;8335:13;;-1:-1:-1;;;;;8329:19:0;;;8335:13;;8329:19;:43;;;;-1:-1:-1;;;;;;8352:20:0;;8367:4;8352:20;;8329:43;8326:127;;;8405:32;8433:3;8405:23;8416:11;;8405:6;:10;;:23;;;;:::i;:32::-;8393:44;;8326:127;8518:4;8469:28;6263:18;;;:9;:18;;;;;;8544:6;;-1:-1:-1;;;8544:6:0;;;;8543:7;:32;;;;-1:-1:-1;8562:13:0;;-1:-1:-1;;;;;8554:21:0;;;8562:13;;8554:21;8543:32;:47;;;;-1:-1:-1;8579:11:0;;-1:-1:-1;;;8579:11:0;;;;8543:47;:89;;;;;8615:17;;8594:20;:38;8543:89;8539:518;;;8653:67;8670:49;8674:6;8681:37;8685:20;8706:11;;8681:3;:37::i;:::-;8670:3;:49::i;:::-;8653:16;:67::i;:::-;8768:21;8811:22;;8808:234;;8858:20;8881:25;:18;8904:1;8881:22;:25::i;:::-;8858:48;;8929:29;8945:12;8929:15;:29::i;:::-;8981:41;9000:21;8981:18;:41::i;:::-;8835:207;8808:234;8634:423;8539:518;7887:1181;7795:1273;-1:-1:-1;;;;;9085:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9113:22:0;;;;;;:18;:22;;;;;;;;9085:50;9084:102;;;-1:-1:-1;9149:13:0;;-1:-1:-1;;;;;9141:21:0;;;9149:13;;9141:21;;;;:44;;-1:-1:-1;9172:13:0;;-1:-1:-1;;;;;9166:19:0;;;9172:13;;9166:19;;9141:44;9080:148;;;-1:-1:-1;9215:1:0;9080:148;9243:13;;9240:163;;9313:4;9295:24;;;;:9;:24;;;;;;:39;;9324:9;9295:28;:39::i;:::-;9288:4;9270:24;;;;:9;:24;;;;;;;:64;;;;9352:39;;-1:-1:-1;;;;;9352:39:0;;;;;;;9381:9;1361:25:1;;1349:2;1334:18;;1215:177;9352:39:0;;;;;;;;9240:163;-1:-1:-1;;;;;9431:15:0;;;;;;:9;:15;;;;;;:27;;9451:6;9431:19;:27::i;:::-;-1:-1:-1;;;;;9415:15:0;;;;;;:9;:15;;;;;:43;9483:40;9501:21;:6;9512:9;9501:10;:21::i;:::-;-1:-1:-1;;;;;9483:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9469:13:0;;;;;;;:9;:13;;;;;:54;;;;9539:41;;;9558:21;:6;9569:9;9558:10;:21::i;:::-;9539:41;;1361:25:1;;;1349:2;1334:18;9539:41:0;;;;;;;7525:2063;7456:2132;;;:::o;1598:190::-;1684:7;1720:12;1712:6;;;;1704:29;;;;-1:-1:-1;;;1704:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1744:9:0;1756:5;1760:1;1756;:5;:::i;:::-;1744:17;1598:190;-1:-1:-1;;;;;1598:190:0:o;1796:246::-;1854:7;1878:1;1883;1878:6;1874:47;;-1:-1:-1;1908:1:0;1901:8;;1874:47;1931:9;1943:5;1947:1;1943;:5;:::i;:::-;1931:17;-1:-1:-1;1976:1:0;1967:5;1971:1;1931:17;1967:5;:::i;:::-;:10;1959:56;;;;-1:-1:-1;;;1959:56:0;;11378:2:1;1959:56:0;;;11360:21:1;11417:2;11397:18;;;11390:30;11456:34;11436:18;;;11429:62;-1:-1:-1;;;11507:18:1;;;11500:31;11548:19;;1959:56:0;11176:397:1;1959:56:0;2033:1;1796:246;-1:-1:-1;;;1796:246:0:o;2050:132::-;2108:7;2135:39;2139:1;2142;2135:39;;;;;;;;;;;;;;;;;:3;:39::i;9598:98::-;9655:7;9682:1;9680;:3;9679:9;;9687:1;9679:9;;;-1:-1:-1;9685:1:0;9598:98;-1:-1:-1;9598:98:0:o;9704:483::-;5282:6;:13;;-1:-1:-1;;;;5282:13:0;-1:-1:-1;;;5282:13:0;;;9806:16:::1;::::0;;9820:1:::1;9806:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9806:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9806:16:0::1;9782:40;;9851:4;9833;9838:1;9833:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9833:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9877:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9877:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9833:7;;9877:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9867:4;9872:1;9867:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9867:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9942:15:::1;::::0;9910:62:::1;::::0;9927:4:::1;::::0;9942:15:::1;9960:11:::0;9910:8:::1;:62::i;:::-;9983:15;::::0;:196:::1;::::0;-1:-1:-1;;;9983:196:0;;-1:-1:-1;;;;;9983:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10064:11;;9983:15:::1;::::0;10106:4;;10133::::1;::::0;10153:15:::1;::::0;9983:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5318:6:0;:14;;-1:-1:-1;;;;5318:14:0;;;-1:-1:-1;;;;9704:483:0:o;10510:98::-;10570:13;;:30;;-1:-1:-1;;;;;10570:13:0;;;;:30;;;;;10593:6;;10570:13;:30;:13;:30;10593:6;10570:13;:30;;;;;;;;;;;;;;;;;;;;;10510:98;:::o;10398:104::-;10461:16;;:33;;-1:-1:-1;;;;;10461:16:0;;;;:33;;;;;10487:6;;10461:16;:33;:16;:33;10487:6;10461:16;:33;;;;;;;;;;;;;;;;;;;1267:179;1325:7;;1357:5;1361:1;1357;:5;:::i;:::-;1345:17;;1386:1;1381;:6;;1373:46;;;;-1:-1:-1;;;1373:46:0;;13029:2:1;1373:46:0;;;13011:21:1;13068:2;13048:18;;;13041:30;13107:29;13087:18;;;13080:57;13154:18;;1373:46:0;12827:351:1;1454:136:0;1512:7;1539:43;1543:1;1546;1539:43;;;;;;;;;;;;;;;;;:3;:43::i;2190:189::-;2276:7;2311:12;2304:5;2296:28;;;;-1:-1:-1;;;2296:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2335:9:0;2347:5;2351:1;2347;: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:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:248::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;-1:-1:-1;;2675:23:1;;;2745:2;2730:18;;;2717:32;;-1:-1:-1;2507:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3153:127::-;3214:10;3209:3;3205:20;3202:1;3195:31;3245:4;3242:1;3235:15;3269:4;3266:1;3259:15;3285:422;3374:1;3417:5;3374:1;3431:270;3452:7;3442:8;3439:21;3431:270;;;3511:4;3507:1;3503:6;3499:17;3493:4;3490:27;3487:53;;;3520:18;;:::i;:::-;3570:7;3560:8;3556:22;3553:55;;;3590:16;;;;3553:55;3669:22;;;;3629:15;;;;3431:270;;;3435:3;3285:422;;;;;:::o;3712:806::-;3761:5;3791:8;3781:80;;-1:-1:-1;3832:1:1;3846:5;;3781:80;3880:4;3870:76;;-1:-1:-1;3917:1:1;3931:5;;3870:76;3962:4;3980:1;3975:59;;;;4048:1;4043:130;;;;3955:218;;3975:59;4005:1;3996:10;;4019:5;;;4043:130;4080:3;4070:8;4067:17;4064:43;;;4087:18;;:::i;:::-;-1:-1:-1;;4143:1:1;4129:16;;4158:5;;3955:218;;4257:2;4247:8;4244:16;4238:3;4232:4;4229:13;4225:36;4219:2;4209:8;4206:16;4201:2;4195:4;4192:12;4188:35;4185:77;4182:159;;;-1:-1:-1;4294:19:1;;;4326:5;;4182:159;4373:34;4398:8;4392:4;4373:34;:::i;:::-;4443:6;4439:1;4435:6;4431:19;4422:7;4419:32;4416:58;;;4454:18;;:::i;:::-;4492:20;;3712:806;-1:-1:-1;;;3712:806:1:o;4523:140::-;4581:5;4610:47;4651:4;4641:8;4637:19;4631:4;4610:47;:::i;4668:168::-;4741:9;;;4772;;4789:15;;;4783:22;;4769:37;4759:71;;4810:18;;:::i;4841:356::-;5043:2;5025:21;;;5062:18;;;5055:30;5121:34;5116:2;5101:18;;5094:62;5188:2;5173:18;;4841:356::o;5554:251::-;5624:6;5677:2;5665:9;5656:7;5652:23;5648:32;5645:52;;;5693:1;5690;5683:12;5645:52;5725:9;5719:16;5744:31;5769:5;5744:31;:::i;6731:306::-;6819:6;6827;6835;6888:2;6876:9;6867:7;6863:23;6859:32;6856:52;;;6904:1;6901;6894:12;6856:52;6933:9;6927:16;6917:26;;6983:2;6972:9;6968:18;6962:25;6952:35;;7027:2;7016:9;7012:18;7006:25;6996:35;;6731:306;;;;;:::o;7321:277::-;7388:6;7441:2;7429:9;7420:7;7416:23;7412:32;7409:52;;;7457:1;7454;7447:12;7409:52;7489:9;7483:16;7542:5;7535:13;7528:21;7521:5;7518:32;7508:60;;7564:1;7561;7554:12;10336:125;10401:9;;;10422:10;;;10419:36;;;10435:18;;:::i;10821:128::-;10888:9;;;10909:11;;;10906:37;;;10923:18;;:::i;10954:217::-;10994:1;11020;11010:132;;11064:10;11059:3;11055:20;11052:1;11045:31;11099:4;11096:1;11089:15;11127:4;11124:1;11117:15;11010:132;-1:-1:-1;11156:9:1;;10954:217::o;11710:127::-;11771:10;11766:3;11762:20;11759:1;11752:31;11802:4;11799:1;11792:15;11826:4;11823:1;11816:15;11842:980;12104:4;12152:3;12141:9;12137:19;12183:6;12172:9;12165:25;12209:2;12247:6;12242:2;12231:9;12227:18;12220:34;12290:3;12285:2;12274:9;12270:18;12263:31;12314:6;12349;12343:13;12380:6;12372;12365:22;12418:3;12407:9;12403:19;12396:26;;12457:2;12449:6;12445:15;12431:29;;12478:1;12488:195;12502:6;12499:1;12496:13;12488:195;;;12567:13;;-1:-1:-1;;;;;12563:39:1;12551:52;;12658:15;;;;12623:12;;;;12599:1;12517:9;12488:195;;;-1:-1:-1;;;;;;;12739:32:1;;;;12734:2;12719:18;;12712:60;-1:-1:-1;;;12803:3:1;12788:19;12781:35;12700:3;11842:980;-1:-1:-1;;;11842:980:1:o

Swarm Source

ipfs://000360e32420270fce837ab952c7196b814355e1c175887bcc7aec6d736f5f61

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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