ETH Price: $3,307.59 (+0.01%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim215610502025-01-05 21:45:5920 days ago1736113559IN
0xeF2Eecaa...A04A2155b
0 ETH0.001087237.01160941
Claim215585912025-01-05 13:31:3521 days ago1736083895IN
0xeF2Eecaa...A04A2155b
0 ETH0.000914669.18025266
Claim195310962024-03-28 7:22:59304 days ago1711610579IN
0xeF2Eecaa...A04A2155b
0 ETH0.0030308519.54605547
Claim194502592024-03-16 21:55:59315 days ago1710626159IN
0xeF2Eecaa...A04A2155b
0 ETH0.0066236542.7161848
Claim193557672024-03-03 16:14:11328 days ago1709482451IN
0xeF2Eecaa...A04A2155b
0 ETH0.0096777462.41209603
Claim192286722024-02-14 20:47:11346 days ago1707943631IN
0xeF2Eecaa...A04A2155b
0 ETH0.0034615422.32365037
Claim192053662024-02-11 14:17:59349 days ago1707661079IN
0xeF2Eecaa...A04A2155b
0 ETH0.0038945325.11600313
Claim190763392024-01-24 11:56:47368 days ago1706097407IN
0xeF2Eecaa...A04A2155b
0 ETH0.0016930910.91883503
Claim189707352024-01-09 16:56:23382 days ago1704819383IN
0xeF2Eecaa...A04A2155b
0 ETH0.0036945623.82638211
Claim188913202023-12-29 12:44:59394 days ago1703853899IN
0xeF2Eecaa...A04A2155b
0 ETH0.0026671917.20084596
Claim188647092023-12-25 19:06:35397 days ago1703531195IN
0xeF2Eecaa...A04A2155b
0 ETH0.0029098718.76585915
Claim187931402023-12-15 17:56:23407 days ago1702662983IN
0xeF2Eecaa...A04A2155b
0 ETH0.009660162.29832781
Claim187657882023-12-11 21:57:59411 days ago1702331879IN
0xeF2Eecaa...A04A2155b
0 ETH0.0064756541.76169478
Claim187333302023-12-07 8:49:35416 days ago1701938975IN
0xeF2Eecaa...A04A2155b
0 ETH0.0049663332.02805586
Claim187222512023-12-05 19:33:23417 days ago1701804803IN
0xeF2Eecaa...A04A2155b
0 ETH0.0124474680.27411826
Claim To187102952023-12-04 3:23:11419 days ago1701660191IN
0xeF2Eecaa...A04A2155b
0 ETH0.0071369145.90249193
Claim186152202023-11-20 19:56:11432 days ago1700510171IN
0xeF2Eecaa...A04A2155b
0 ETH0.0046903730.24837466
Claim AML185195932023-11-07 10:51:23446 days ago1699354283IN
0xeF2Eecaa...A04A2155b
0 ETH0.00288527.3779496
Claim185142132023-11-06 16:45:47446 days ago1699289147IN
0xeF2Eecaa...A04A2155b
0 ETH0.0054302135.01965721
Claim183546732023-10-15 8:45:35469 days ago1697359535IN
0xeF2Eecaa...A04A2155b
0 ETH0.000801285.16749094
Claim183211902023-10-10 16:16:35473 days ago1696954595IN
0xeF2Eecaa...A04A2155b
0 ETH0.0023554415.19036011
Claim182478132023-09-30 10:05:35484 days ago1696068335IN
0xeF2Eecaa...A04A2155b
0 ETH0.0018607412
Claim182477952023-09-30 10:01:59484 days ago1696068119IN
0xeF2Eecaa...A04A2155b
0 ETH0.0018607412
Claim181708082023-09-19 15:19:47494 days ago1695136787IN
0xeF2Eecaa...A04A2155b
0 ETH0.0019042612.28069633
Claim181189782023-09-12 8:11:35502 days ago1694506295IN
0xeF2Eecaa...A04A2155b
0 ETH0.001534399.89538222
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ClaimBigSB

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity Multiple files format)

File 1 of 3: ClaimBigSB.sol
// SPDX-License-Identifier: UNLICENSE
// Rzucam worki w tłum w tłum .. kto łapie ten jara ... XD

/**
Apes Together Strong!

About BigShortBets DeFi project:

We are creating a social&trading p2p platform that guarantees encrypted interaction between investors.
Logging in is possible via a cryptocurrency wallet (e.g. Metamask).
The security level is one comparable to the Tor network.

https://bigsb.io/ - Our Tool
https://bigshortbets.com - Project&Team info

Video explainer:
https://youtu.be/wbhUo5IvKdk

Zaorski, You Son of a bitch I’m in …
*/

pragma solidity 0.8.7;
import "./interfaces.sol";
import "./owned.sol";

/**
BigShortBets.com BigSB token claiming contract
Contract need tokens on its address to send them to owners

*/
contract ClaimBigSB is Owned {
    // presale contracts
    address public immutable presale1;
    address public immutable presale2;
    address public immutable sale;

    // BigSB token contract
    address public immutable token;

    // 1-year claiming window after which Owner can sweep remaining tokens
    uint256 public immutable claimDateLimit;

    // claiming process need to be enabled
    bool public claimStarted;

    // Presale2 is bugged in handling multiple ETH deposits
    // we need handle that
    mapping(address => uint256) internal buggedTokens;

    // mark users that already claim tokens
    mapping(address => bool) public isClaimed;

    // handle ETH/tokens send from exchanges
    mapping(address => address) internal _morty;

    // AML-ed users address->tokens
    mapping(address => uint256) internal _aml;

    // events
    event TokensClaimed(
        address indexed from,
        address indexed to,
        uint256 amount
    );

    // useful constant
    address internal constant ZERO = address(0x0);

    uint256 internal immutable startRate;

    /**
    @dev contract constructor
    @param _presale1 address of presale1 contract
    @param _presale2 address of presale2 contract
    @param _sale address of final sale contract
    @param _token address of BigSB token contract
     */
    constructor(
        address _presale1,
        address _presale2,
        address _sale,
        address _token
    ) {
        presale1 = _presale1;
        presale2 = _presale2;
        sale = _sale;
        token = _token;
        claimDateLimit = block.timestamp + 365 days; //max 1 year to take tokens
        startRate = IReflect(_token).getRate();
    }

    // count tokens from all pre/sale contracts
    function _allTokens(address user) internal view returns (uint256) {
        // presale2 need manual handle because of "multiple ETH send" error
        // "tokensBoughtOf" is also flawed, so we do all math there
        uint256 amt = buggedTokens[user];
        if (amt == 0) {
            // calculate tokens at sale price $2630/ETH, $0.95/token
            // function is returning ETH value in wei
            amt = (IPresale2(presale2).ethDepositOf(user) * 2630 * 100) / 95;
            // calculate tokens for USD at $0.95/token
            // contract is returning USD with 0 decimals
            amt += (IPresale2(presale2).usdDepositOf(user) * 100 ether) / 95;
        }

        // presale1 reader is returning ETH amount in wei, $0.65 / token, $1530/ETH
        // yes, there is a typo in function name
        amt += (IPresale1(presale1).blanceOf(user) * 1530 * 100) / 65;

        // sale returning tokens, $1/token, ETH price from oracle at buy time
        amt += ISale(sale).tokensBoughtOf(user);

        return amt;
    }

    /**
    Reader that can check how many tokens can be claimed by given address
    @param user address to check
    @return number of tokens (18 decimals)
    */
    function canClaim(address user) external view returns (uint256) {
        return _recalculate(_allTokens(user));
    }

    // recalculate amount of tokens via start rate
    function _recalculate(uint256 tokens) internal view returns (uint256) {
        uint256 rate = IReflect(token).getRate();
        return (tokens * rate) / startRate;
    }

    /**
    @dev claim BigSB tokens bought on any pre/sale
     */
    function claim() external {
        require(_morty[msg.sender] == ZERO, "Use claimFrom");
        _claim(msg.sender, msg.sender);
    }

    /// Claim tokens from AMLed list
    function claimAML() external {
        uint256 amt = _aml[msg.sender];
        require(amt > 0, "Not on AML list");
        _aml[msg.sender] = 0;
        amt = _recalculate(amt);
        IERC20(token).transfer(msg.sender, amt);
        emit TokensClaimed(msg.sender, msg.sender, amt);
    }

    /**
    @dev Claim BigSB tokens bought on any pre/sale to different address
    @param to address to which tokens will be claimed
     */
    function claimTo(address to) external {
        require(_morty[msg.sender] == ZERO, "Use claimFromTo");
        _claim(msg.sender, to);
    }

    /**
    @dev Claim BigSB tokens bought on any pre/sale from exchange
    @param from sender address that ETH was send to pre/sale contract
     */
    function claimFrom(address from) external {
        address to = _morty[from];
        require(msg.sender == to, "Wrong Morty");
        _claim(from, to);
    }

    /**
    @dev Claim BigSB tokens by ETH send from exchange to another address
    @param from sender address that ETH was send
    @param to address to which send claimed tokens
     */
    function claimFromTo(address from, address to) external {
        require(msg.sender == _morty[from], "Wrong Morty");
        _claim(from, to);
    }

    // internal claim function, validate claim and send tokens to given address
    function _claim(address from, address to)
        internal
        claimStart
        notZeroAddress(to)
    {
        require(!isClaimed[from], "Already claimed!");
        isClaimed[from] = true;
        uint256 amt = _recalculate(_allTokens(from));
        require(IERC20(token).transfer(to, amt), "Token transfer failed");
        emit TokensClaimed(from, to, amt);
    }

    //
    // viewers
    //
    function isReplacedBy(address user) external view returns (address) {
        return _morty[user];
    }

    //
    // useful modifiers
    //
    modifier notZeroAddress(address user) {
        require(user != ZERO, "Can not use address 0x0");
        _;
    }
    modifier claimStart() {
        require(claimStarted, "Claiming process not started!");
        _;
    }
    modifier claimNotStarted() {
        require(!claimStarted, "Claiming process already started!");
        _;
    }

    //
    // Rick mode
    //

    /**
    @dev add single address that need to be changed in claim process
    @param bad address to replace
    @param good new address that can claim tokens bought by "bad" address
     */
    function addMorty(address bad, address good)
        external
        onlyOwner
        claimNotStarted
    {
        _addMorty(bad, good);
    }

    /// internal add replacement address function used in singe and multi add function
    function _addMorty(address bad, address good)
        internal
        notZeroAddress(good)
    {
        require(_morty[bad] == ZERO, "Morty already on list");
        _morty[bad] = good;
    }

    /**
    @dev add addresses that need to be replaced in claiming precess, ie send ETH from exchange
    @param bad list of wrong send addresses
    @param good list of address replacements
     */
    function addMortys(address[] calldata bad, address[] calldata good)
        external
        onlyOwner
        claimNotStarted
    {
        uint256 dl = bad.length;
        require(dl == good.length, "Data size mismatch");
        uint256 i;
        for (i; i < dl; i++) {
            _addMorty(bad[i], good[i]);
        }
    }

    /**
    @dev add single "bugged" user
    @param user affected user address
    @param tokens counted tokens for user from presale2
     */
    function addBugged(address user, uint256 tokens)
        external
        onlyOwner
        claimNotStarted
    {
        buggedTokens[user] = tokens;
    }

    /**
    @dev add list of users affected by "many ETH send" bug via list
    @param user list of users
    @param amt list of corresponding tokens amount
     */
    function addBuggedList(address[] calldata user, uint256[] calldata amt)
        external
        onlyOwner
        claimNotStarted
    {
        uint256 dl = user.length;
        require(dl == amt.length, "Data size mismatch");
        uint256 i;
        for (i; i < dl; i++) {
            buggedTokens[user[i]] = amt[i];
        }
    }

    // add data to ALMed user list
    function addAML(address[] calldata user, uint256[] calldata tokens)
        external
        onlyOwner
        claimNotStarted
    {
        uint256 dl = user.length;
        require(dl == tokens.length, "Data size mismatch");
        uint256 i;
        for (i; i < dl; i++) {
            _aml[user[i]] = tokens[i];
        }
    }

    /// Enable claiming process
    function enableClaim() external onlyOwner claimNotStarted {
        claimStarted = true;
    }

    /**
    @dev Function to recover accidentally send ERC20 tokens
    @param erc20 ERC20 token address
    */
    function rescueERC20(address erc20) external onlyOwner {
        if (erc20 == token) {
            require(block.timestamp > claimDateLimit, "Too soon");
        }
        uint256 amt = IERC20(erc20).balanceOf(address(this));
        require(amt > 0, "Nothing to rescue");
        IUsdt(erc20).transfer(owner, amt);
    }

    /**
    @dev Function to recover any ETH send to contract
    */
    function rescueETH() external onlyOwner {
        payable(owner).transfer(address(this).balance);
    }
}

//This is fine!

File 2 of 3: interfaces.sol
// SPDX-License-Identifier: UNLICENSE

pragma solidity ^0.8.7;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

// Reflection
interface IReflect {
    function tokenFromReflection(uint256 rAmount)
        external
        view
        returns (uint256);

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee)
        external
        view
        returns (uint256);

    function getRate() external view returns (uint256);
}

/// ChainLink ETH/USD oracle
interface IChainLink {
    // chainlink ETH/USD oracle
    // answer|int256 :  216182781556 - 8 decimals
    function latestRoundData()
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        );
}

/// USDT is not ERC-20 compliant, not returning true on transfers
interface IUsdt {
    function transfer(address, uint256) external;

    function transferFrom(
        address,
        address,
        uint256
    ) external;
}

// Check ETH send to first presale
// Yes, there is a typo
interface IPresale1 {
    function blanceOf(address user) external view returns (uint256 amt);
}

// Check tokens bought in second presale
// There is bug in ETH deposits, we need handle it
// Also "tokensBoughtOf" calculation is broken, so we do all math
interface IPresale2 {
    function ethDepositOf(address user) external view returns (uint256 amt);

    function usdDepositOf(address user) external view returns (uint256 amt);
}

// Check final sale tokens bought
interface ISale {
    function tokensBoughtOf(address user) external view returns (uint256 amt);
}

interface IClaimSale {
    function addLock(
        address user,
        uint256 reflection,
        uint256 locktime
    ) external;
}

File 3 of 3: owned.sol
// SPDX-License-Identifier: UNLICENSE

pragma solidity ^0.8.7;

contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipChanged(address from, address to);

    constructor() {
        owner = msg.sender;
        emit OwnershipChanged(address(0), msg.sender);
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "Only owner");
        _;
    }

    // owner can give super-rights to someone
    function giveOwnership(address user) external onlyOwner {
        require(user != address(0), "User renounceOwnership");
        newOwner = user;
    }

    // new owner need to accept
    function acceptOwnership() external {
        require(msg.sender == newOwner, "Only NewOwner");
        emit OwnershipChanged(owner, newOwner);
        owner = msg.sender;
        delete newOwner;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_presale1","type":"address"},{"internalType":"address","name":"_presale2","type":"address"},{"internalType":"address","name":"_sale","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipChanged","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":"amount","type":"uint256"}],"name":"TokensClaimed","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"user","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"addAML","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"addBugged","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"user","type":"address[]"},{"internalType":"uint256[]","name":"amt","type":"uint256[]"}],"name":"addBuggedList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"bad","type":"address"},{"internalType":"address","name":"good","type":"address"}],"name":"addMorty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bad","type":"address[]"},{"internalType":"address[]","name":"good","type":"address[]"}],"name":"addMortys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"canClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimAML","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"claimFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"claimFromTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"claimTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"giveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isReplacedBy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presale1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presale2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"erc20","type":"address"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sale","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

6101406040523480156200001257600080fd5b5060405162001b6238038062001b62833981016040819052620000359162000166565b600080546001600160a01b0319163390811782556040805192835260208301919091527f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b910160405180910390a16001600160601b0319606085811b821660805284811b821660a05283811b821660c05282901b1660e052620000bd426301e13380620001dd565b6101008181525050806001600160a01b031663679aefce6040518163ffffffff1660e01b815260040160206040518083038186803b158015620000ff57600080fd5b505afa15801562000114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013a9190620001c3565b61012052506200020492505050565b80516001600160a01b03811681146200016157600080fd5b919050565b600080600080608085870312156200017d57600080fd5b620001888562000149565b9350620001986020860162000149565b9250620001a86040860162000149565b9150620001b86060860162000149565b905092959194509250565b600060208284031215620001d657600080fd5b5051919050565b60008219821115620001ff57634e487b7160e01b600052601160045260246000fd5b500190565b60805160601c60a05160601c60c05160601c60e05160601c61010051610120516118c36200029f60003960006115a20152600081816101f10152610a000152600081816103f3015281816109c601528181610dda01528181610ff7015261150f015260008181610251015261147d0152600081816103780152818161122c01526112ee01526000818161019801526113b401526118c36000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063a262f5f8116100de578063d1d6b9d411610097578063ec285f0911610071578063ec285f09146103c0578063ec613650146103d3578063f645ba77146103e6578063fc0c546a146103ee57600080fd5b8063d1d6b9d414610373578063d4ee1d901461039a578063e3a0a148146103ad57600080fd5b8063a262f5f8146102e7578063a29c8fb6146102fa578063bf3506c114610326578063c1664b1314610339578063c4f6f2451461034d578063ccec37161461036057600080fd5b80634f2656221161014b57806379ba50971161012557806379ba5097146102865780637c0ad0301461028e5780638cc08025146102a15780638da5cb5b146102d457600080fd5b80634f265622146102395780636ad1fe021461024c57806374067cda1461027357600080fd5b806305365bb0146101935780630a8ac322146101d75780631d80c319146101ec57806320800a001461022157806328dae6e3146102295780634e71d92d14610231575b600080fd5b6101ba7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101ea6101e536600461168b565b610415565b005b6102137f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101ce565b6101ea61048e565b6101ea6104f5565b6101ea61055e565b6101ea610247366004611658565b6105c0565b6101ba7f000000000000000000000000000000000000000000000000000000000000000081565b6101ea61028136600461163d565b610622565b6101ea610684565b6101ea61029c3660046116b5565b610739565b6102c46102af36600461163d565b60036020526000908152604090205460ff1681565b60405190151581526020016101ce565b6000546101ba906001600160a01b031681565b6101ea6102f536600461163d565b610830565b6101ba61030836600461163d565b6001600160a01b039081166000908152600460205260409020541690565b61021361033436600461163d565b610892565b6001546102c490600160a01b900460ff1681565b6101ea61035b3660046116b5565b6108ab565b6101ea61036e36600461163d565b61099a565b6101ba7f000000000000000000000000000000000000000000000000000000000000000081565b6001546101ba906001600160a01b031681565b6101ea6103bb36600461163d565b610b7a565b6101ea6103ce366004611658565b610c15565b6101ea6103e13660046116b5565b610c6c565b6101ea610d53565b6101ba7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031633146104485760405162461bcd60e51b815260040161043f9061175c565b60405180910390fd5b600154600160a01b900460ff16156104725760405162461bcd60e51b815260040161043f90611780565b6001600160a01b03909116600090815260026020526040902055565b6000546001600160a01b031633146104b85760405162461bcd60e51b815260040161043f9061175c565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156104f2573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461051f5760405162461bcd60e51b815260040161043f9061175c565b600154600160a01b900460ff16156105495760405162461bcd60e51b815260040161043f90611780565b6001805460ff60a01b1916600160a01b179055565b336000908152600460205260409020546001600160a01b0316156105b45760405162461bcd60e51b815260206004820152600d60248201526c55736520636c61696d46726f6d60981b604482015260640161043f565b6105be3333610e99565b565b6000546001600160a01b031633146105ea5760405162461bcd60e51b815260040161043f9061175c565b600154600160a01b900460ff16156106145760405162461bcd60e51b815260040161043f90611780565b61061e828261110c565b5050565b6001600160a01b038082166000908152600460205260409020541633811461067a5760405162461bcd60e51b815260206004820152600b60248201526a57726f6e67204d6f72747960a81b604482015260640161043f565b61061e8282610e99565b6001546001600160a01b031633146106ce5760405162461bcd60e51b815260206004820152600d60248201526c27b7363c902732bba7bbb732b960991b604482015260640161043f565b600054600154604080516001600160a01b0393841681529290911660208301527f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b910160405180910390a1600080546001600160a01b03199081163317909155600180549091169055565b6000546001600160a01b031633146107635760405162461bcd60e51b815260040161043f9061175c565b600154600160a01b900460ff161561078d5760405162461bcd60e51b815260040161043f90611780565b828181146107ad5760405162461bcd60e51b815260040161043f906117c1565b60005b81811015610828578383828181106107ca576107ca611877565b90506020020135600560008888858181106107e7576107e7611877565b90506020020160208101906107fc919061163d565b6001600160a01b031681526020810191909152604001600020558061082081611846565b9150506107b0565b505050505050565b336000908152600460205260409020546001600160a01b0316156108885760405162461bcd60e51b815260206004820152600f60248201526e55736520636c61696d46726f6d546f60881b604482015260640161043f565b6104f23382610e99565b60006108a56108a0836111ec565b61150a565b92915050565b6000546001600160a01b031633146108d55760405162461bcd60e51b815260040161043f9061175c565b600154600160a01b900460ff16156108ff5760405162461bcd60e51b815260040161043f90611780565b8281811461091f5760405162461bcd60e51b815260040161043f906117c1565b60005b818110156108285783838281811061093c5761093c611877565b905060200201356002600088888581811061095957610959611877565b905060200201602081019061096e919061163d565b6001600160a01b031681526020810191909152604001600020558061099281611846565b915050610922565b6000546001600160a01b031633146109c45760405162461bcd60e51b815260040161043f9061175c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03161415610a58577f00000000000000000000000000000000000000000000000000000000000000004211610a585760405162461bcd60e51b81526020600482015260086024820152672a37b79039b7b7b760c11b604482015260640161043f565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610a9a57600080fd5b505afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad29190611743565b905060008111610b185760405162461bcd60e51b81526020600482015260116024820152704e6f7468696e6720746f2072657363756560781b604482015260640161043f565b60005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401600060405180830381600087803b158015610b6657600080fd5b505af1158015610828573d6000803e3d6000fd5b6000546001600160a01b03163314610ba45760405162461bcd60e51b815260040161043f9061175c565b6001600160a01b038116610bf35760405162461bcd60e51b81526020600482015260166024820152750557365722072656e6f756e63654f776e6572736869760541b604482015260640161043f565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382811660009081526004602052604090205416331461067a5760405162461bcd60e51b815260206004820152600b60248201526a57726f6e67204d6f72747960a81b604482015260640161043f565b6000546001600160a01b03163314610c965760405162461bcd60e51b815260040161043f9061175c565b600154600160a01b900460ff1615610cc05760405162461bcd60e51b815260040161043f90611780565b82818114610ce05760405162461bcd60e51b815260040161043f906117c1565b60005b8181101561082857610d41868683818110610d0057610d00611877565b9050602002016020810190610d15919061163d565b858584818110610d2757610d27611877565b9050602002016020810190610d3c919061163d565b61110c565b80610d4b81611846565b915050610ce3565b3360009081526005602052604090205480610da25760405162461bcd60e51b815260206004820152600f60248201526e139bdd081bdb88105353081b1a5cdd608a1b604482015260640161043f565b33600090815260056020526040812055610dbb8161150a565b60405163a9059cbb60e01b8152336004820152602481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb90604401602060405180830381600087803b158015610e2657600080fd5b505af1158015610e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5e9190611721565b50604051818152339081907fa86305abc2db271df4609aa86a8d044bc11fb36939841bfdad6c1ab2b26e94719060200160405180910390a350565b600154600160a01b900460ff16610ef25760405162461bcd60e51b815260206004820152601d60248201527f436c61696d696e672070726f63657373206e6f74207374617274656421000000604482015260640161043f565b806001600160a01b038116610f435760405162461bcd60e51b8152602060048201526017602482015276043616e206e6f742075736520616464726573732030783604c1b604482015260640161043f565b6001600160a01b03831660009081526003602052604090205460ff1615610f9f5760405162461bcd60e51b815260206004820152601060248201526f416c726561647920636c61696d65642160801b604482015260640161043f565b6001600160a01b0383166000908152600360205260408120805460ff19166001179055610fce6108a0856111ec565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb90604401602060405180830381600087803b15801561103d57600080fd5b505af1158015611051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190611721565b6110b95760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b604482015260640161043f565b826001600160a01b0316846001600160a01b03167fa86305abc2db271df4609aa86a8d044bc11fb36939841bfdad6c1ab2b26e9471836040516110fe91815260200190565b60405180910390a350505050565b806001600160a01b03811661115d5760405162461bcd60e51b8152602060048201526017602482015276043616e206e6f742075736520616464726573732030783604c1b604482015260640161043f565b6001600160a01b0383811660009081526004602052604090205416156111bd5760405162461bcd60e51b8152602060048201526015602482015274135bdc9d1e48185b1c9958591e481bdb881b1a5cdd605a1b604482015260640161043f565b506001600160a01b03918216600090815260046020526040902080546001600160a01b03191691909216179055565b6001600160a01b038116600090815260026020526040812054806113925760405163ec0f454360e01b81526001600160a01b038481166004830152605f917f00000000000000000000000000000000000000000000000000000000000000009091169063ec0f45439060240160206040518083038186803b15801561127057600080fd5b505afa158015611284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a89190611743565b6112b490610a46611827565b6112bf906064611827565b6112c99190611805565b604051632379403160e21b81526001600160a01b038581166004830152919250605f917f00000000000000000000000000000000000000000000000000000000000000001690638de500c49060240160206040518083038186803b15801561133057600080fd5b505afa158015611344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113689190611743565b61137b9068056bc75e2d63100000611827565b6113859190611805565b61138f90826117ed565b90505b604051630495a30960e21b81526001600160a01b0384811660048301526041917f0000000000000000000000000000000000000000000000000000000000000000909116906312568c249060240160206040518083038186803b1580156113f857600080fd5b505afa15801561140c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114309190611743565b61143c906105fa611827565b611447906064611827565b6114519190611805565b61145b90826117ed565b60405163476568c160e11b81526001600160a01b0385811660048301529192507f000000000000000000000000000000000000000000000000000000000000000090911690638ecad1829060240160206040518083038186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f99190611743565b61150390826117ed565b9392505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663679aefce6040518163ffffffff1660e01b815260040160206040518083038186803b15801561156657600080fd5b505afa15801561157a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159e9190611743565b90507f00000000000000000000000000000000000000000000000000000000000000006115cb8285611827565b6115039190611805565b80356001600160a01b03811681146115ec57600080fd5b919050565b60008083601f84011261160357600080fd5b50813567ffffffffffffffff81111561161b57600080fd5b6020830191508360208260051b850101111561163657600080fd5b9250929050565b60006020828403121561164f57600080fd5b611503826115d5565b6000806040838503121561166b57600080fd5b611674836115d5565b9150611682602084016115d5565b90509250929050565b6000806040838503121561169e57600080fd5b6116a7836115d5565b946020939093013593505050565b600080600080604085870312156116cb57600080fd5b843567ffffffffffffffff808211156116e357600080fd5b6116ef888389016115f1565b9096509450602087013591508082111561170857600080fd5b50611715878288016115f1565b95989497509550505050565b60006020828403121561173357600080fd5b8151801515811461150357600080fd5b60006020828403121561175557600080fd5b5051919050565b6020808252600a908201526927b7363c9037bbb732b960b11b604082015260600190565b60208082526021908201527f436c61696d696e672070726f6365737320616c726561647920737461727465646040820152602160f81b606082015260800190565b602080825260129082015271088c2e8c240e6d2f4ca40dad2e6dac2e8c6d60731b604082015260600190565b6000821982111561180057611800611861565b500190565b60008261182257634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561184157611841611861565b500290565b600060001982141561185a5761185a611861565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220db9fcd60eb17f39ee92519edcca90797b5899a6eda01706a94f18a550b61226964736f6c634300080700330000000000000000000000001223730bae7fd3d2fe1e7948b0a90c8a9f3b84460000000000000000000000001863b0c9f63e686a3e7928a21b527c7b3ced5895000000000000000000000000152be47fbf953afa3953a997b81a0bd30ba6dc58000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f6

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c8063a262f5f8116100de578063d1d6b9d411610097578063ec285f0911610071578063ec285f09146103c0578063ec613650146103d3578063f645ba77146103e6578063fc0c546a146103ee57600080fd5b8063d1d6b9d414610373578063d4ee1d901461039a578063e3a0a148146103ad57600080fd5b8063a262f5f8146102e7578063a29c8fb6146102fa578063bf3506c114610326578063c1664b1314610339578063c4f6f2451461034d578063ccec37161461036057600080fd5b80634f2656221161014b57806379ba50971161012557806379ba5097146102865780637c0ad0301461028e5780638cc08025146102a15780638da5cb5b146102d457600080fd5b80634f265622146102395780636ad1fe021461024c57806374067cda1461027357600080fd5b806305365bb0146101935780630a8ac322146101d75780631d80c319146101ec57806320800a001461022157806328dae6e3146102295780634e71d92d14610231575b600080fd5b6101ba7f0000000000000000000000001223730bae7fd3d2fe1e7948b0a90c8a9f3b844681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101ea6101e536600461168b565b610415565b005b6102137f00000000000000000000000000000000000000000000000000000000631884af81565b6040519081526020016101ce565b6101ea61048e565b6101ea6104f5565b6101ea61055e565b6101ea610247366004611658565b6105c0565b6101ba7f000000000000000000000000152be47fbf953afa3953a997b81a0bd30ba6dc5881565b6101ea61028136600461163d565b610622565b6101ea610684565b6101ea61029c3660046116b5565b610739565b6102c46102af36600461163d565b60036020526000908152604090205460ff1681565b60405190151581526020016101ce565b6000546101ba906001600160a01b031681565b6101ea6102f536600461163d565b610830565b6101ba61030836600461163d565b6001600160a01b039081166000908152600460205260409020541690565b61021361033436600461163d565b610892565b6001546102c490600160a01b900460ff1681565b6101ea61035b3660046116b5565b6108ab565b6101ea61036e36600461163d565b61099a565b6101ba7f0000000000000000000000001863b0c9f63e686a3e7928a21b527c7b3ced589581565b6001546101ba906001600160a01b031681565b6101ea6103bb36600461163d565b610b7a565b6101ea6103ce366004611658565b610c15565b6101ea6103e13660046116b5565b610c6c565b6101ea610d53565b6101ba7f000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f681565b6000546001600160a01b031633146104485760405162461bcd60e51b815260040161043f9061175c565b60405180910390fd5b600154600160a01b900460ff16156104725760405162461bcd60e51b815260040161043f90611780565b6001600160a01b03909116600090815260026020526040902055565b6000546001600160a01b031633146104b85760405162461bcd60e51b815260040161043f9061175c565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156104f2573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461051f5760405162461bcd60e51b815260040161043f9061175c565b600154600160a01b900460ff16156105495760405162461bcd60e51b815260040161043f90611780565b6001805460ff60a01b1916600160a01b179055565b336000908152600460205260409020546001600160a01b0316156105b45760405162461bcd60e51b815260206004820152600d60248201526c55736520636c61696d46726f6d60981b604482015260640161043f565b6105be3333610e99565b565b6000546001600160a01b031633146105ea5760405162461bcd60e51b815260040161043f9061175c565b600154600160a01b900460ff16156106145760405162461bcd60e51b815260040161043f90611780565b61061e828261110c565b5050565b6001600160a01b038082166000908152600460205260409020541633811461067a5760405162461bcd60e51b815260206004820152600b60248201526a57726f6e67204d6f72747960a81b604482015260640161043f565b61061e8282610e99565b6001546001600160a01b031633146106ce5760405162461bcd60e51b815260206004820152600d60248201526c27b7363c902732bba7bbb732b960991b604482015260640161043f565b600054600154604080516001600160a01b0393841681529290911660208301527f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b910160405180910390a1600080546001600160a01b03199081163317909155600180549091169055565b6000546001600160a01b031633146107635760405162461bcd60e51b815260040161043f9061175c565b600154600160a01b900460ff161561078d5760405162461bcd60e51b815260040161043f90611780565b828181146107ad5760405162461bcd60e51b815260040161043f906117c1565b60005b81811015610828578383828181106107ca576107ca611877565b90506020020135600560008888858181106107e7576107e7611877565b90506020020160208101906107fc919061163d565b6001600160a01b031681526020810191909152604001600020558061082081611846565b9150506107b0565b505050505050565b336000908152600460205260409020546001600160a01b0316156108885760405162461bcd60e51b815260206004820152600f60248201526e55736520636c61696d46726f6d546f60881b604482015260640161043f565b6104f23382610e99565b60006108a56108a0836111ec565b61150a565b92915050565b6000546001600160a01b031633146108d55760405162461bcd60e51b815260040161043f9061175c565b600154600160a01b900460ff16156108ff5760405162461bcd60e51b815260040161043f90611780565b8281811461091f5760405162461bcd60e51b815260040161043f906117c1565b60005b818110156108285783838281811061093c5761093c611877565b905060200201356002600088888581811061095957610959611877565b905060200201602081019061096e919061163d565b6001600160a01b031681526020810191909152604001600020558061099281611846565b915050610922565b6000546001600160a01b031633146109c45760405162461bcd60e51b815260040161043f9061175c565b7f000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f66001600160a01b0316816001600160a01b03161415610a58577f00000000000000000000000000000000000000000000000000000000631884af4211610a585760405162461bcd60e51b81526020600482015260086024820152672a37b79039b7b7b760c11b604482015260640161043f565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610a9a57600080fd5b505afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad29190611743565b905060008111610b185760405162461bcd60e51b81526020600482015260116024820152704e6f7468696e6720746f2072657363756560781b604482015260640161043f565b60005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401600060405180830381600087803b158015610b6657600080fd5b505af1158015610828573d6000803e3d6000fd5b6000546001600160a01b03163314610ba45760405162461bcd60e51b815260040161043f9061175c565b6001600160a01b038116610bf35760405162461bcd60e51b81526020600482015260166024820152750557365722072656e6f756e63654f776e6572736869760541b604482015260640161043f565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382811660009081526004602052604090205416331461067a5760405162461bcd60e51b815260206004820152600b60248201526a57726f6e67204d6f72747960a81b604482015260640161043f565b6000546001600160a01b03163314610c965760405162461bcd60e51b815260040161043f9061175c565b600154600160a01b900460ff1615610cc05760405162461bcd60e51b815260040161043f90611780565b82818114610ce05760405162461bcd60e51b815260040161043f906117c1565b60005b8181101561082857610d41868683818110610d0057610d00611877565b9050602002016020810190610d15919061163d565b858584818110610d2757610d27611877565b9050602002016020810190610d3c919061163d565b61110c565b80610d4b81611846565b915050610ce3565b3360009081526005602052604090205480610da25760405162461bcd60e51b815260206004820152600f60248201526e139bdd081bdb88105353081b1a5cdd608a1b604482015260640161043f565b33600090815260056020526040812055610dbb8161150a565b60405163a9059cbb60e01b8152336004820152602481018290529091507f000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f66001600160a01b03169063a9059cbb90604401602060405180830381600087803b158015610e2657600080fd5b505af1158015610e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5e9190611721565b50604051818152339081907fa86305abc2db271df4609aa86a8d044bc11fb36939841bfdad6c1ab2b26e94719060200160405180910390a350565b600154600160a01b900460ff16610ef25760405162461bcd60e51b815260206004820152601d60248201527f436c61696d696e672070726f63657373206e6f74207374617274656421000000604482015260640161043f565b806001600160a01b038116610f435760405162461bcd60e51b8152602060048201526017602482015276043616e206e6f742075736520616464726573732030783604c1b604482015260640161043f565b6001600160a01b03831660009081526003602052604090205460ff1615610f9f5760405162461bcd60e51b815260206004820152601060248201526f416c726561647920636c61696d65642160801b604482015260640161043f565b6001600160a01b0383166000908152600360205260408120805460ff19166001179055610fce6108a0856111ec565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192507f000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f69091169063a9059cbb90604401602060405180830381600087803b15801561103d57600080fd5b505af1158015611051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190611721565b6110b95760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b604482015260640161043f565b826001600160a01b0316846001600160a01b03167fa86305abc2db271df4609aa86a8d044bc11fb36939841bfdad6c1ab2b26e9471836040516110fe91815260200190565b60405180910390a350505050565b806001600160a01b03811661115d5760405162461bcd60e51b8152602060048201526017602482015276043616e206e6f742075736520616464726573732030783604c1b604482015260640161043f565b6001600160a01b0383811660009081526004602052604090205416156111bd5760405162461bcd60e51b8152602060048201526015602482015274135bdc9d1e48185b1c9958591e481bdb881b1a5cdd605a1b604482015260640161043f565b506001600160a01b03918216600090815260046020526040902080546001600160a01b03191691909216179055565b6001600160a01b038116600090815260026020526040812054806113925760405163ec0f454360e01b81526001600160a01b038481166004830152605f917f0000000000000000000000001863b0c9f63e686a3e7928a21b527c7b3ced58959091169063ec0f45439060240160206040518083038186803b15801561127057600080fd5b505afa158015611284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a89190611743565b6112b490610a46611827565b6112bf906064611827565b6112c99190611805565b604051632379403160e21b81526001600160a01b038581166004830152919250605f917f0000000000000000000000001863b0c9f63e686a3e7928a21b527c7b3ced58951690638de500c49060240160206040518083038186803b15801561133057600080fd5b505afa158015611344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113689190611743565b61137b9068056bc75e2d63100000611827565b6113859190611805565b61138f90826117ed565b90505b604051630495a30960e21b81526001600160a01b0384811660048301526041917f0000000000000000000000001223730bae7fd3d2fe1e7948b0a90c8a9f3b8446909116906312568c249060240160206040518083038186803b1580156113f857600080fd5b505afa15801561140c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114309190611743565b61143c906105fa611827565b611447906064611827565b6114519190611805565b61145b90826117ed565b60405163476568c160e11b81526001600160a01b0385811660048301529192507f000000000000000000000000152be47fbf953afa3953a997b81a0bd30ba6dc5890911690638ecad1829060240160206040518083038186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f99190611743565b61150390826117ed565b9392505050565b6000807f000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f66001600160a01b031663679aefce6040518163ffffffff1660e01b815260040160206040518083038186803b15801561156657600080fd5b505afa15801561157a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159e9190611743565b90507f000000000000000000000318481895d962776a54d92bf80caa0674f371b8c1956115cb8285611827565b6115039190611805565b80356001600160a01b03811681146115ec57600080fd5b919050565b60008083601f84011261160357600080fd5b50813567ffffffffffffffff81111561161b57600080fd5b6020830191508360208260051b850101111561163657600080fd5b9250929050565b60006020828403121561164f57600080fd5b611503826115d5565b6000806040838503121561166b57600080fd5b611674836115d5565b9150611682602084016115d5565b90509250929050565b6000806040838503121561169e57600080fd5b6116a7836115d5565b946020939093013593505050565b600080600080604085870312156116cb57600080fd5b843567ffffffffffffffff808211156116e357600080fd5b6116ef888389016115f1565b9096509450602087013591508082111561170857600080fd5b50611715878288016115f1565b95989497509550505050565b60006020828403121561173357600080fd5b8151801515811461150357600080fd5b60006020828403121561175557600080fd5b5051919050565b6020808252600a908201526927b7363c9037bbb732b960b11b604082015260600190565b60208082526021908201527f436c61696d696e672070726f6365737320616c726561647920737461727465646040820152602160f81b606082015260800190565b602080825260129082015271088c2e8c240e6d2f4ca40dad2e6dac2e8c6d60731b604082015260600190565b6000821982111561180057611800611861565b500190565b60008261182257634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561184157611841611861565b500290565b600060001982141561185a5761185a611861565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220db9fcd60eb17f39ee92519edcca90797b5899a6eda01706a94f18a550b61226964736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000001223730bae7fd3d2fe1e7948b0a90c8a9f3b84460000000000000000000000001863b0c9f63e686a3e7928a21b527c7b3ced5895000000000000000000000000152be47fbf953afa3953a997b81a0bd30ba6dc58000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f6

-----Decoded View---------------
Arg [0] : _presale1 (address): 0x1223730bAE7Fd3d2fE1E7948b0A90C8a9F3B8446
Arg [1] : _presale2 (address): 0x1863B0c9F63e686A3E7928a21b527C7b3CEd5895
Arg [2] : _sale (address): 0x152Be47FbF953afa3953A997B81A0bD30Ba6dc58
Arg [3] : _token (address): 0x131157c6760f78f7dDF877C0019Eba175BA4b6F6

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000001223730bae7fd3d2fe1e7948b0a90c8a9f3b8446
Arg [1] : 0000000000000000000000001863b0c9f63e686a3e7928a21b527c7b3ced5895
Arg [2] : 000000000000000000000000152be47fbf953afa3953a997b81a0bd30ba6dc58
Arg [3] : 000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f6


Deployed Bytecode Sourcemap

745:8920:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;805:33;;;;;;;;-1:-1:-1;;;;;3470:32:3;;;3452:51;;3440:2;3425:18;805:33:0;;;;;;;;7878:156;;;;;;:::i;:::-;;:::i;:::-;;1059:39;;;;;;;;10028:25:3;;;10016:2;10001:18;1059:39:0;9882:177:3;9560:103:0;;;:::i;8952:94::-;;;:::i;4126:135::-;;;:::i;6761:145::-;;;;;;:::i;:::-;;:::i;883:29::-;;;;;5040:160;;;;;;:::i;:::-;;:::i;638:202:2:-;;;:::i;8583:331:0:-;;;;;;:::i;:::-;;:::i;1366:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4267:14:3;;4260:22;4242:41;;4230:2;4215:18;1366:41:0;4102:187:3;85:20:2;;;;;-1:-1:-1;;;;;85:20:2;;;4742:141:0;;;;;;:::i;:::-;;:::i;6040:104::-;;;;;;:::i;:::-;-1:-1:-1;;;;;6125:12:0;;;6099:7;6125:12;;;:6;:12;;;;;;;;6040:104;3707:118;;;;;;:::i;:::-;;:::i;1148:24::-;;;;;-1:-1:-1;;;1148:24:0;;;;;;8205:337;;;;;;:::i;:::-;;:::i;9164:321::-;;;;;;:::i;:::-;;:::i;844:33::-;;;;;111:23:2;;;;;-1:-1:-1;;;;;111:23:2;;;449:151;;;;;;:::i;:::-;;:::i;5395:149:0:-;;;;;;:::i;:::-;;:::i;7399:329::-;;;;;;:::i;:::-;;:::i;4304:290::-;;;:::i;947:30::-;;;;;7878:156;359:5:2;;-1:-1:-1;;;;;359:5:2;345:10;:19;337:42;;;;-1:-1:-1;;;337:42:2;;;;;;;:::i;:::-;;;;;;;;;6462:12:0::1;::::0;-1:-1:-1;;;6462:12:0;::::1;;;6461:13;6453:59;;;;-1:-1:-1::0;;;6453:59:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8000:18:0;;::::2;;::::0;;;:12:::2;:18;::::0;;;;:27;7878:156::o;9560:103::-;359:5:2;;-1:-1:-1;;;;;359:5:2;345:10;:19;337:42;;;;-1:-1:-1;;;337:42:2;;;;;;;:::i;:::-;9618:5:0::1;::::0;;9610:46:::1;::::0;-1:-1:-1;;;;;9618:5:0;;::::1;::::0;9634:21:::1;9610:46:::0;::::1;;;::::0;9634:21;;9610:46;9618:5;9610:46;9634:21;9618:5;9610:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9560:103::o:0;8952:94::-;359:5:2;;-1:-1:-1;;;;;359:5:2;345:10;:19;337:42;;;;-1:-1:-1;;;337:42:2;;;;;;;:::i;:::-;6462:12:0::1;::::0;-1:-1:-1;;;6462:12:0;::::1;;;6461:13;6453:59;;;;-1:-1:-1::0;;;6453:59:0::1;;;;;;;:::i;:::-;9035:4:::2;9020:19:::0;;-1:-1:-1;;;;9020:19:0::2;-1:-1:-1::0;;;9020:19:0::2;::::0;;8952:94::o;4126:135::-;4177:10;1785:3;4170:18;;;:6;:18;;;;;;-1:-1:-1;;;;;4170:18:0;:26;4162:52;;;;-1:-1:-1;;;4162:52:0;;9742:2:3;4162:52:0;;;9724:21:3;9781:2;9761:18;;;9754:30;-1:-1:-1;;;9800:18:3;;;9793:43;9853:18;;4162:52:0;9540:337:3;4162:52:0;4224:30;4231:10;4243;4224:6;:30::i;:::-;4126:135::o;6761:145::-;359:5:2;;-1:-1:-1;;;;;359:5:2;345:10;:19;337:42;;;;-1:-1:-1;;;337:42:2;;;;;;;:::i;:::-;6462:12:0::1;::::0;-1:-1:-1;;;6462:12:0;::::1;;;6461:13;6453:59;;;;-1:-1:-1::0;;;6453:59:0::1;;;;;;;:::i;:::-;6879:20:::2;6889:3;6894:4;6879:9;:20::i;:::-;6761:145:::0;;:::o;5040:160::-;-1:-1:-1;;;;;5105:12:0;;;5092:10;5105:12;;;:6;:12;;;;;;;5135:10;:16;;5127:40;;;;-1:-1:-1;;;5127:40:0;;5926:2:3;5127:40:0;;;5908:21:3;5965:2;5945:18;;;5938:30;-1:-1:-1;;;5984:18:3;;;5977:41;6035:18;;5127:40:0;5724:335:3;5127:40:0;5177:16;5184:4;5190:2;5177:6;:16::i;638:202:2:-;706:8;;-1:-1:-1;;;;;706:8:2;692:10;:22;684:48;;;;-1:-1:-1;;;684:48:2;;9400:2:3;684:48:2;;;9382:21:3;9439:2;9419:18;;;9412:30;-1:-1:-1;;;9458:18:3;;;9451:43;9511:18;;684:48:2;9198:337:3;684:48:2;764:5;;;771:8;747:33;;;-1:-1:-1;;;;;764:5:2;;;3726:34:3;;771:8:2;;;;3791:2:3;3776:18;;3769:43;747:33:2;;3661:18:3;747:33:2;;;;;;;790:5;:18;;-1:-1:-1;;;;;;790:18:2;;;798:10;790:18;;;;;818:15;;;;;;;638:202::o;8583:331:0:-;359:5:2;;-1:-1:-1;;;;;359:5:2;345:10;:19;337:42;;;;-1:-1:-1;;;337:42:2;;;;;;;:::i;:::-;6462:12:0::1;::::0;-1:-1:-1;;;6462:12:0;::::1;;;6461:13;6453:59;;;;-1:-1:-1::0;;;6453:59:0::1;;;;;;;:::i;:::-;8737:4:::0;8766:19;;::::2;8758:50;;;;-1:-1:-1::0;;;8758:50:0::2;;;;;;;:::i;:::-;8818:9;8837:71;8849:2;8845:1;:6;8837:71;;;8888:6;;8895:1;8888:9;;;;;;;:::i;:::-;;;;;;;8872:4;:13;8877:4;;8882:1;8877:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8872:13:0::2;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;8872:13:0;:25;8853:3;::::2;::::0;::::2;:::i;:::-;;;;8837:71;;;8714:200;;8583:331:::0;;;;:::o;4742:141::-;4805:10;1785:3;4798:18;;;:6;:18;;;;;;-1:-1:-1;;;;;4798:18:0;:26;4790:54;;;;-1:-1:-1;;;4790:54:0;;5180:2:3;4790:54:0;;;5162:21:3;5219:2;5199:18;;;5192:30;-1:-1:-1;;;5238:18:3;;;5231:45;5293:18;;4790:54:0;4978:339:3;4790:54:0;4854:22;4861:10;4873:2;4854:6;:22::i;3707:118::-;3762:7;3788:30;3801:16;3812:4;3801:10;:16::i;:::-;3788:12;:30::i;:::-;3781:37;3707:118;-1:-1:-1;;3707:118:0:o;8205:337::-;359:5:2;;-1:-1:-1;;;;;359:5:2;345:10;:19;337:42;;;;-1:-1:-1;;;337:42:2;;;;;;;:::i;:::-;6462:12:0::1;::::0;-1:-1:-1;;;6462:12:0;::::1;;;6461:13;6453:59;;;;-1:-1:-1::0;;;6453:59:0::1;;;;;;;:::i;:::-;8363:4:::0;8392:16;;::::2;8384:47;;;;-1:-1:-1::0;;;8384:47:0::2;;;;;;;:::i;:::-;8441:9;8460:76;8472:2;8468:1;:6;8460:76;;;8519:3;;8523:1;8519:6;;;;;;;:::i;:::-;;;;;;;8495:12;:21;8508:4;;8513:1;8508:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8495:21:0::2;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;8495:21:0;:30;8476:3;::::2;::::0;::::2;:::i;:::-;;;;8460:76;;9164:321:::0;359:5:2;;-1:-1:-1;;;;;359:5:2;345:10;:19;337:42;;;;-1:-1:-1;;;337:42:2;;;;;;;:::i;:::-;9242:5:0::1;-1:-1:-1::0;;;;;9233:14:0::1;:5;-1:-1:-1::0;;;;;9233:14:0::1;;9229:98;;;9289:14;9271:15;:32;9263:53;;;::::0;-1:-1:-1;;;9263:53:0;;8017:2:3;9263:53:0::1;::::0;::::1;7999:21:3::0;8056:1;8036:18;;;8029:29;-1:-1:-1;;;8074:18:3;;;8067:38;8122:18;;9263:53:0::1;7815:331:3::0;9263:53:0::1;9350:38;::::0;-1:-1:-1;;;9350:38:0;;9382:4:::1;9350:38;::::0;::::1;3452:51:3::0;9336:11:0::1;::::0;-1:-1:-1;;;;;9350:23:0;::::1;::::0;::::1;::::0;3425:18:3;;9350:38:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9336:52;;9412:1;9406:3;:7;9398:37;;;::::0;-1:-1:-1;;;9398:37:0;;6966:2:3;9398:37:0::1;::::0;::::1;6948:21:3::0;7005:2;6985:18;;;6978:30;-1:-1:-1;;;7024:18:3;;;7017:47;7081:18;;9398:37:0::1;6764:341:3::0;9398:37:0::1;9467:5;::::0;9445:33:::1;::::0;-1:-1:-1;;;9445:33:0;;-1:-1:-1;;;;;9467:5:0;;::::1;9445:33;::::0;::::1;3997:51:3::0;4064:18;;;4057:34;;;9445:21:0;;::::1;::::0;::::1;::::0;3970:18:3;;9445:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;449:151:2::0;359:5;;-1:-1:-1;;;;;359:5:2;345:10;:19;337:42;;;;-1:-1:-1;;;337:42:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;523:18:2;::::1;515:53;;;::::0;-1:-1:-1;;;515:53:2;;8697:2:3;515:53:2::1;::::0;::::1;8679:21:3::0;8736:2;8716:18;;;8709:30;-1:-1:-1;;;8755:18:3;;;8748:52;8817:18;;515:53:2::1;8495:346:3::0;515:53:2::1;578:8;:15:::0;;-1:-1:-1;;;;;;578:15:2::1;-1:-1:-1::0;;;;;578:15:2;;;::::1;::::0;;;::::1;::::0;;449:151::o;5395:149:0:-;-1:-1:-1;;;;;5483:12:0;;;;;;;:6;:12;;;;;;;5469:10;:26;5461:50;;;;-1:-1:-1;;;5461:50:0;;5926:2:3;5461:50:0;;;5908:21:3;5965:2;5945:18;;;5938:30;-1:-1:-1;;;5984:18:3;;;5977:41;6035:18;;5461:50:0;5724:335:3;7399:329:0;359:5:2;;-1:-1:-1;;;;;359:5:2;345:10;:19;337:42;;;;-1:-1:-1;;;337:42:2;;;;;;;:::i;:::-;6462:12:0::1;::::0;-1:-1:-1;;;6462:12:0;::::1;;;6461:13;6453:59;;;;-1:-1:-1::0;;;6453:59:0::1;;;;;;;:::i;:::-;7553:3:::0;7581:17;;::::2;7573:48;;;;-1:-1:-1::0;;;7573:48:0::2;;;;;;;:::i;:::-;7631:9;7650:72;7662:2;7658:1;:6;7650:72;;;7685:26;7695:3;;7699:1;7695:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7703:4;;7708:1;7703:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7685:9;:26::i;:::-;7666:3:::0;::::2;::::0;::::2;:::i;:::-;;;;7650:72;;4304:290:::0;4362:10;4343:11;4357:16;;;:4;:16;;;;;;4391:7;4383:35;;;;-1:-1:-1;;;4383:35:0;;8353:2:3;4383:35:0;;;8335:21:3;8392:2;8372:18;;;8365:30;-1:-1:-1;;;8411:18:3;;;8404:45;8466:18;;4383:35:0;8151:339:3;4383:35:0;4433:10;4447:1;4428:16;;;:4;:16;;;;;:20;4464:17;4477:3;4464:12;:17::i;:::-;4491:39;;-1:-1:-1;;;4491:39:0;;4514:10;4491:39;;;3997:51:3;4064:18;;;4057:34;;;4458:23:0;;-1:-1:-1;4498:5:0;-1:-1:-1;;;;;4491:22:0;;;;3970:18:3;;4491:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4545:42:0;;10028:25:3;;;4571:10:0;;;;4545:42;;10016:2:3;10001:18;4545:42:0;;;;;;;4333:261;4304:290::o;5630:375::-;6347:12;;-1:-1:-1;;;6347:12:0;;;;6339:54;;;;-1:-1:-1;;;6339:54:0;;7659:2:3;6339:54:0;;;7641:21:3;7698:2;7678:18;;;7671:30;7737:31;7717:18;;;7710:59;7786:18;;6339:54:0;7457:353:3;6339:54:0;5731:2;-1:-1:-1;;;;;6244:12:0;::::1;6236:48;;;::::0;-1:-1:-1;;;6236:48:0;;9048:2:3;6236:48:0::1;::::0;::::1;9030:21:3::0;9087:2;9067:18;;;9060:30;-1:-1:-1;;;9106:18:3;;;9099:53;9169:18;;6236:48:0::1;8846:347:3::0;6236:48:0::1;-1:-1:-1::0;;;;;5758:15:0;::::2;;::::0;;;:9:::2;:15;::::0;;;;;::::2;;5757:16;5749:45;;;::::0;-1:-1:-1;;;5749:45:0;;4496:2:3;5749:45:0::2;::::0;::::2;4478:21:3::0;4535:2;4515:18;;;4508:30;-1:-1:-1;;;4554:18:3;;;4547:46;4610:18;;5749:45:0::2;4294:340:3::0;5749:45:0::2;-1:-1:-1::0;;;;;5804:15:0;::::2;;::::0;;;:9:::2;:15;::::0;;;;:22;;-1:-1:-1;;5804:22:0::2;5822:4;5804:22;::::0;;5850:30:::2;5863:16;5814:4:::0;5863:10:::2;:16::i;5850:30::-;5898:31;::::0;-1:-1:-1;;;5898:31:0;;-1:-1:-1;;;;;4015:32:3;;;5898:31:0::2;::::0;::::2;3997:51:3::0;4064:18;;;4057:34;;;5836:44:0;;-1:-1:-1;5905:5:0::2;5898:22:::0;;::::2;::::0;::::2;::::0;3970:18:3;;5898:31:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5890:65;;;::::0;-1:-1:-1;;;5890:65:0;;6266:2:3;5890:65:0::2;::::0;::::2;6248:21:3::0;6305:2;6285:18;;;6278:30;-1:-1:-1;;;6324:18:3;;;6317:51;6385:18;;5890:65:0::2;6064:345:3::0;5890:65:0::2;5990:2;-1:-1:-1::0;;;;;5970:28:0::2;5984:4;-1:-1:-1::0;;;;;5970:28:0::2;;5994:3;5970:28;;;;10028:25:3::0;;10016:2;10001:18;;9882:177;5970:28:0::2;;;;;;;;5739:266;6403:1:::1;5630:375:::0;;:::o;6999:194::-;7085:4;-1:-1:-1;;;;;6244:12:0;;6236:48;;;;-1:-1:-1;;;6236:48:0;;9048:2:3;6236:48:0;;;9030:21:3;9087:2;9067:18;;;9060:30;-1:-1:-1;;;9106:18:3;;;9099:53;9169:18;;6236:48:0;8846:347:3;6236:48:0;-1:-1:-1;;;;;7113:11:0;;::::1;1785:3;7113:11:::0;;;:6:::1;:11;::::0;;;;;::::1;:19:::0;7105:53:::1;;;::::0;-1:-1:-1;;;7105:53:0;;6616:2:3;7105:53:0::1;::::0;::::1;6598:21:3::0;6655:2;6635:18;;;6628:30;-1:-1:-1;;;6674:18:3;;;6667:51;6735:18;;7105:53:0::1;6414:345:3::0;7105:53:0::1;-1:-1:-1::0;;;;;;7168:11:0;;::::1;;::::0;;;:6:::1;:11;::::0;;;;:18;;-1:-1:-1;;;;;;7168:18:0::1;::::0;;;::::1;;::::0;;6999:194::o;2498:1038::-;-1:-1:-1;;;;;2732:18:0;;2555:7;2732:18;;;:12;:18;;;;;;2764:8;2760:416;;2918:38;;-1:-1:-1;;;2918:38:0;;-1:-1:-1;;;;;3470:32:3;;;2918:38:0;;;3452:51:3;2973:2:0;;2928:8;2918:32;;;;;;3425:18:3;;2918:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;2959:4;2918:45;:::i;:::-;:51;;2966:3;2918:51;:::i;:::-;2917:58;;;;:::i;:::-;3109:38;;-1:-1:-1;;;3109:38:0;;-1:-1:-1;;;;;3470:32:3;;;3109:38:0;;;3452:51:3;2911:64:0;;-1:-1:-1;3163:2:0;;3119:8;3109:32;;;;3425:18:3;;3109:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;;3150:9;3109:50;:::i;:::-;3108:57;;;;:::i;:::-;3101:64;;;;:::i;:::-;;;2760:416;3327:34;;-1:-1:-1;;;3327:34:0;;-1:-1:-1;;;;;3470:32:3;;;3327:34:0;;;3452:51:3;3378:2:0;;3337:8;3327:28;;;;;;3425:18:3;;3327:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;3364:4;3327:41;:::i;:::-;:47;;3371:3;3327:47;:::i;:::-;3326:54;;;;:::i;:::-;3319:61;;;;:::i;:::-;3476:32;;-1:-1:-1;;;3476:32:0;;-1:-1:-1;;;;;3470:32:3;;;3476::0;;;3452:51:3;3319:61:0;;-1:-1:-1;3482:4:0;3476:26;;;;;;3425:18:3;;3476:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3469:39;;;;:::i;:::-;;2498:1038;-1:-1:-1;;;2498:1038:0:o;3882:171::-;3943:7;3962:12;3986:5;-1:-1:-1;;;;;3977:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3962:40;-1:-1:-1;4037:9:0;4020:13;3962:40;4020:6;:13;:::i;:::-;4019:27;;;;:::i;14:173:3:-;82:20;;-1:-1:-1;;;;;131:31:3;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:367::-;255:8;265:6;319:3;312:4;304:6;300:17;296:27;286:55;;337:1;334;327:12;286:55;-1:-1:-1;360:20:3;;403:18;392:30;;389:50;;;435:1;432;425:12;389:50;472:4;464:6;460:17;448:29;;532:3;525:4;515:6;512:1;508:14;500:6;496:27;492:38;489:47;486:67;;;549:1;546;539:12;486:67;192:367;;;;;:::o;564:186::-;623:6;676:2;664:9;655:7;651:23;647:32;644:52;;;692:1;689;682:12;644:52;715:29;734:9;715:29;:::i;755:260::-;823:6;831;884:2;872:9;863:7;859:23;855:32;852:52;;;900:1;897;890:12;852:52;923:29;942:9;923:29;:::i;:::-;913:39;;971:38;1005:2;994:9;990:18;971:38;:::i;:::-;961:48;;755:260;;;;;:::o;1020:254::-;1088:6;1096;1149:2;1137:9;1128:7;1124:23;1120:32;1117:52;;;1165:1;1162;1155:12;1117:52;1188:29;1207:9;1188:29;:::i;:::-;1178:39;1264:2;1249:18;;;;1236:32;;-1:-1:-1;;;1020:254:3:o;1279:773::-;1401:6;1409;1417;1425;1478:2;1466:9;1457:7;1453:23;1449:32;1446:52;;;1494:1;1491;1484:12;1446:52;1534:9;1521:23;1563:18;1604:2;1596:6;1593:14;1590:34;;;1620:1;1617;1610:12;1590:34;1659:70;1721:7;1712:6;1701:9;1697:22;1659:70;:::i;:::-;1748:8;;-1:-1:-1;1633:96:3;-1:-1:-1;1836:2:3;1821:18;;1808:32;;-1:-1:-1;1852:16:3;;;1849:36;;;1881:1;1878;1871:12;1849:36;;1920:72;1984:7;1973:8;1962:9;1958:24;1920:72;:::i;:::-;1279:773;;;;-1:-1:-1;2011:8:3;-1:-1:-1;;;;1279:773:3:o;2835:277::-;2902:6;2955:2;2943:9;2934:7;2930:23;2926:32;2923:52;;;2971:1;2968;2961:12;2923:52;3003:9;2997:16;3056:5;3049:13;3042:21;3035:5;3032:32;3022:60;;3078:1;3075;3068:12;3117:184;3187:6;3240:2;3228:9;3219:7;3215:23;3211:32;3208:52;;;3256:1;3253;3246:12;3208:52;-1:-1:-1;3279:16:3;;3117:184;-1:-1:-1;3117:184:3:o;4639:334::-;4841:2;4823:21;;;4880:2;4860:18;;;4853:30;-1:-1:-1;;;4914:2:3;4899:18;;4892:40;4964:2;4949:18;;4639:334::o;5322:397::-;5524:2;5506:21;;;5563:2;5543:18;;;5536:30;5602:34;5597:2;5582:18;;5575:62;-1:-1:-1;;;5668:2:3;5653:18;;5646:31;5709:3;5694:19;;5322:397::o;7110:342::-;7312:2;7294:21;;;7351:2;7331:18;;;7324:30;-1:-1:-1;;;7385:2:3;7370:18;;7363:48;7443:2;7428:18;;7110:342::o;10064:128::-;10104:3;10135:1;10131:6;10128:1;10125:13;10122:39;;;10141:18;;:::i;:::-;-1:-1:-1;10177:9:3;;10064:128::o;10197:217::-;10237:1;10263;10253:132;;10307:10;10302:3;10298:20;10295:1;10288:31;10342:4;10339:1;10332:15;10370:4;10367:1;10360:15;10253:132;-1:-1:-1;10399:9:3;;10197:217::o;10419:168::-;10459:7;10525:1;10521;10517:6;10513:14;10510:1;10507:21;10502:1;10495:9;10488:17;10484:45;10481:71;;;10532:18;;:::i;:::-;-1:-1:-1;10572:9:3;;10419:168::o;10592:135::-;10631:3;-1:-1:-1;;10652:17:3;;10649:43;;;10672:18;;:::i;:::-;-1:-1:-1;10719:1:3;10708:13;;10592:135::o;10732:127::-;10793:10;10788:3;10784:20;10781:1;10774:31;10824:4;10821:1;10814:15;10848:4;10845:1;10838:15;10864:127;10925:10;10920:3;10916:20;10913:1;10906:31;10956:4;10953:1;10946:15;10980:4;10977:1;10970:15

Swarm Source

ipfs://db9fcd60eb17f39ee92519edcca90797b5899a6eda01706a94f18a550b612269

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  ]

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.