ETH Price: $3,623.77 (+6.56%)

Contract

0x08BFC2829f96Ec102e034Da64C4B6424Edb33821
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

Transaction Hash
Method
Block
From
To
Transfer Tokens225468112025-05-23 16:39:23170 days ago1748018363IN
0x08BFC282...4Edb33821
0 ETH0.00011551.83555959
Transfer Tokens225111842025-05-18 16:53:11175 days ago1747587191IN
0x08BFC282...4Edb33821
0 ETH0.000062270.98970329
Claim Tokens222072662025-04-06 3:43:59218 days ago1743911039IN
0x08BFC282...4Edb33821
0 ETH0.000086130.92976044
Claim Tokens219546872025-03-01 21:24:35253 days ago1740864275IN
0x08BFC282...4Edb33821
0 ETH0.000112051.2095368
Claim Tokens219418102025-02-28 2:18:59255 days ago1740709139IN
0x08BFC282...4Edb33821
0 ETH0.000273422.95123639
Claim Tokens219190422025-02-24 22:03:59258 days ago1740434639IN
0x08BFC282...4Edb33821
0 ETH0.000200392.16298896
Claim Tokens218596452025-02-16 14:46:11266 days ago1739717171IN
0x08BFC282...4Edb33821
0 ETH0.000157811.70339994
Claim Tokens216814472025-01-22 17:12:59291 days ago1737565979IN
0x08BFC282...4Edb33821
0 ETH0.0009813110.5920425
Claim Tokens216749492025-01-21 19:27:47292 days ago1737487667IN
0x08BFC282...4Edb33821
0 ETH0.0019703421.267494
Claim Tokens216124302025-01-13 1:56:23301 days ago1736733383IN
0x08BFC282...4Edb33821
0 ETH0.000213982.3096955
Claim Tokens215995832025-01-11 6:54:59303 days ago1736578499IN
0x08BFC282...4Edb33821
0 ETH0.000271942.9353001
Claim Tokens215431372025-01-03 9:43:47311 days ago1735897427IN
0x08BFC282...4Edb33821
0 ETH0.0011258212.15188535
Claim Tokens214598702024-12-22 18:37:11322 days ago1734892631IN
0x08BFC282...4Edb33821
0 ETH0.000702727.58503577
Claim Tokens214470362024-12-20 23:32:11324 days ago1734737531IN
0x08BFC282...4Edb33821
0 ETH0.0009474510.22662398
Claim Tokens214457882024-12-20 19:21:59324 days ago1734722519IN
0x08BFC282...4Edb33821
0 ETH0.0016753118.08301265
Claim Tokens214371792024-12-19 14:31:35325 days ago1734618695IN
0x08BFC282...4Edb33821
0 ETH0.0013812614.90909748
Claim Tokens214327252024-12-18 23:34:23326 days ago1734564863IN
0x08BFC282...4Edb33821
0 ETH0.0012712513.72164318
Claim Tokens213994542024-12-14 8:07:11331 days ago1734163631IN
0x08BFC282...4Edb33821
0 ETH0.000852999.20706014
Claim Tokens213923842024-12-13 8:25:59332 days ago1734078359IN
0x08BFC282...4Edb33821
0 ETH0.0009778410.5546401
Claim Tokens213491492024-12-07 7:33:11338 days ago1733556791IN
0x08BFC282...4Edb33821
0 ETH0.0009614710.37791038
Claim Tokens213259722024-12-04 1:51:47341 days ago1733277107IN
0x08BFC282...4Edb33821
0 ETH0.0016880618.22060189
Claim Tokens213250212024-12-03 22:40:59341 days ago1733265659IN
0x08BFC282...4Edb33821
0 ETH0.0020067321.66019282
Claim Tokens213199212024-12-03 5:34:59342 days ago1733204099IN
0x08BFC282...4Edb33821
0 ETH0.0013624314.7058693
Claim Tokens213098052024-12-01 19:39:11343 days ago1733081951IN
0x08BFC282...4Edb33821
0 ETH0.0017860419.27819802
Claim Tokens213029742024-11-30 20:47:23344 days ago1732999643IN
0x08BFC282...4Edb33821
0 ETH0.0014001915.11338311
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer199090182024-05-20 5:21:47539 days ago1716182507
0x08BFC282...4Edb33821
0.001977 ETH
Transfer198000232024-05-04 23:28:47554 days ago1714865327
0x08BFC282...4Edb33821
0.0007 ETH
Transfer195760772024-04-03 15:16:11585 days ago1712157371
0x08BFC282...4Edb33821
0.935 ETH
Transfer195751892024-04-03 12:17:47585 days ago1712146667
0x08BFC282...4Edb33821
0.03 ETH
Transfer195737042024-04-03 7:16:47586 days ago1712128607
0x08BFC282...4Edb33821
0.01 ETH
Transfer195729252024-04-03 4:40:23586 days ago1712119223
0x08BFC282...4Edb33821
0.01 ETH
Transfer195721012024-04-03 1:54:35586 days ago1712109275
0x08BFC282...4Edb33821
0.1 ETH
Transfer195720362024-04-03 1:41:35586 days ago1712108495
0x08BFC282...4Edb33821
0.005 ETH
Transfer195716952024-04-03 0:32:59586 days ago1712104379
0x08BFC282...4Edb33821
0.04 ETH
Transfer195702152024-04-02 19:34:23586 days ago1712086463
0x08BFC282...4Edb33821
0.085 ETH
Transfer195665882024-04-02 7:19:47587 days ago1712042387
0x08BFC282...4Edb33821
0.7 ETH
Transfer195642662024-04-01 23:31:35587 days ago1712014295
0x08BFC282...4Edb33821
0.037 ETH
Transfer195624072024-04-01 17:16:35587 days ago1711991795
0x08BFC282...4Edb33821
0.2 ETH
Transfer195620382024-04-01 16:01:47587 days ago1711987307
0x08BFC282...4Edb33821
0.016 ETH
Transfer195613252024-04-01 13:38:11587 days ago1711978691
0x08BFC282...4Edb33821
0.04481 ETH
Transfer195582212024-04-01 3:08:11588 days ago1711940891
0x08BFC282...4Edb33821
0.139 ETH
Transfer195574512024-04-01 0:32:47588 days ago1711931567
0x08BFC282...4Edb33821
0.0467 ETH
Transfer195572862024-03-31 23:59:35588 days ago1711929575
0x08BFC282...4Edb33821
1.62 ETH
Transfer195571452024-03-31 23:30:59588 days ago1711927859
0x08BFC282...4Edb33821
0.04 ETH
Transfer195566422024-03-31 21:49:35588 days ago1711921775
0x08BFC282...4Edb33821
0.42 ETH
Transfer195565762024-03-31 21:36:23588 days ago1711920983
0x08BFC282...4Edb33821
0.05 ETH
Transfer195563242024-03-31 20:45:23588 days ago1711917923
0x08BFC282...4Edb33821
0.15 ETH
Transfer195559602024-03-31 19:32:23588 days ago1711913543
0x08BFC282...4Edb33821
0.018 ETH
Transfer195559402024-03-31 19:28:11588 days ago1711913291
0x08BFC282...4Edb33821
0.138 ETH
Transfer195558802024-03-31 19:15:59588 days ago1711912559
0x08BFC282...4Edb33821
0.111 ETH
View All Internal Transactions
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x1405620a...AbFdf86A1
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Presale

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT Licensed
pragma solidity ^0.8.18;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external;

    function transfer(address to, uint256 value) external;

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external;

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);
}

interface AggregatorV3Interface {
    function decimals() external view returns (uint8);

    function description() external view returns (string memory);

    function version() external view returns (uint256);

    function getRoundData(uint80 _roundId)
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        );

    function latestRoundData()
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        );
}

contract Presale is Ownable {
    IERC20 public mainToken;
    IERC20 public USDT = IERC20(0xdAC17F958D2ee523a2206206994597C13D831ec7);

    AggregatorV3Interface public priceFeed;

    struct Phase {
        uint256 endTime;
        uint256 tokensToSell;
        uint256 totalSoldTokens;
        uint256 tokenPerUsdPrice;
    }
    mapping(uint256 => Phase) public phases;

    // Stats
    uint256 public totalStages;
    uint256 public currentStage;
    uint256 public soldToken;
    uint256 public amountRaised;
    uint256 public amountRaisedUSDT;
    uint256 public uniqueBuyers;

    address payable public fundReceiver;

    bool public presaleStatus;
    bool public isPresaleEnded;
    uint256 public claimStartTime;

    address[] public UsersAddresses;
    struct User {
        uint256 native_balance;
        uint256 usdt_balance;
        uint256 token_balance;
        uint256 claimed_tokens;
    }

    mapping(address => User) public users;
    mapping(address => bool) public isExist;

    event BuyToken(address indexed _user, uint256 indexed _amount);
    event ClaimToken(address indexed _user, uint256 indexed _amount);
    event UpdatePrice(uint256 _oldPrice, uint256 _newPrice);

    constructor(
        IERC20 _token,
        uint256[] memory tokensToSell,
        uint256[] memory endTimestamps,
        uint256[] memory tokenPerUsdPrice
    ) {
        require(
            tokensToSell.length == endTimestamps.length &&
                endTimestamps.length == tokenPerUsdPrice.length,
            "tokens and duration length mismatch"
        );
        mainToken = _token;
        fundReceiver = payable(0xE8EC5F7aF62e5Ad1284749517DC8C168225e2BF3);
        priceFeed = AggregatorV3Interface(
            0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
        );

        for (uint256 i = 0; i < tokensToSell.length; i++) {
            phases[i].endTime = endTimestamps[i];
            phases[i].tokensToSell = tokensToSell[i];
            phases[i].tokenPerUsdPrice = tokenPerUsdPrice[i];
        }
        totalStages = tokensToSell.length;
    }

    // to get real time price of Eth
    function getLatestPrice() public view returns (uint256) {
        (, int256 price, , , ) = priceFeed.latestRoundData();
        return uint256(price);
    }

    // to buy token during preSale time with Eth => for web3 use
    function buyToken() public payable {
        require(!isPresaleEnded, "Presale ended!");
        require(presaleStatus, " Presale is Paused, check back later");
        if (!isExist[msg.sender]) {
            isExist[msg.sender] = true;
            uniqueBuyers++;
            UsersAddresses.push(msg.sender);
        }
        fundReceiver.transfer(msg.value);
        // Check active phase
        uint256 activePhase = activePhaseInd();
        if (activePhase != currentStage) {
            currentStage = activePhase;
        }

        uint256 numberOfTokens;
        numberOfTokens = nativeToToken(msg.value, activePhase);
        require(
            phases[currentStage].totalSoldTokens + numberOfTokens <=
                phases[currentStage].tokensToSell,
            "Phase Limit Reached"
        );
        soldToken = soldToken + (numberOfTokens);
        amountRaised = amountRaised + (msg.value);

        users[msg.sender].native_balance =
            users[msg.sender].native_balance +
            (msg.value);
        users[msg.sender].token_balance =
            users[msg.sender].token_balance +
            (numberOfTokens);
        phases[currentStage].totalSoldTokens += numberOfTokens;
    }

    // to buy token during preSale time with USDT => for web3 use
    function buyTokenUSDT(uint256 amount) public {
        require(!isPresaleEnded, "Presale ended!");
        require(presaleStatus, " Presale is Paused, check back later");
        if (!isExist[msg.sender]) {
            isExist[msg.sender] = true;
            uniqueBuyers++;
        }
        USDT.transferFrom(msg.sender, fundReceiver, amount);
        // Check active phase
        uint256 activePhase = activePhaseInd();
        if (activePhase != currentStage) {
            currentStage = activePhase;
        }

        uint256 numberOfTokens;
        numberOfTokens = usdtToToken(amount, activePhase);
        require(
            phases[currentStage].totalSoldTokens + numberOfTokens <=
                phases[currentStage].tokensToSell,
            "Phase Limit Reached"
        );
        soldToken = soldToken + numberOfTokens;
        amountRaisedUSDT = amountRaisedUSDT + amount;

        users[msg.sender].usdt_balance += amount;

        users[msg.sender].token_balance =
            users[msg.sender].token_balance +
            numberOfTokens;
        phases[currentStage].totalSoldTokens += numberOfTokens;
    }

    function claimTokens() external {
        require(isPresaleEnded, "Presale has not ended yet");
        require(isExist[msg.sender],"User don't exist");
        User storage user = users[msg.sender];
        require(user.token_balance > 0, "No tokens purchased");
        uint256 claimableTokens = user.token_balance - user.claimed_tokens;
        require(claimableTokens > 0, "No tokens to claim");
        user.claimed_tokens += claimableTokens;
        mainToken.transfer(msg.sender, claimableTokens);
        emit ClaimToken(msg.sender, claimableTokens);
    }

    function activePhaseInd() public view returns (uint256) {
        if (block.timestamp < phases[currentStage].endTime) {
            if (
                phases[currentStage].totalSoldTokens <
                phases[currentStage].tokensToSell
            ) {
                return currentStage;
            } else {
                return currentStage + 1;
            }
        } else {
            return currentStage + 1;
        }
    }

    function changeClaimAddress(address _oldAddress, address _newWallet)
        public
        onlyOwner
    {
        require(isExist[_oldAddress], " Old User not a participant");
        User storage user = users[_oldAddress];
        User storage newUser = users[_newWallet];
        newUser.token_balance = user.token_balance;
        newUser.claimed_tokens = user.claimed_tokens;
        user.token_balance = 0;
        user.claimed_tokens = 0;
        isExist[_oldAddress] = false;
        isExist[_newWallet] = true;
    }

    function getPhaseDetail(uint256 phaseInd)
        external
        view
        returns (
            uint256 tokenToSell,
            uint256 soldTokens,
            uint256 priceUsd,
            uint256 duration
        )
    {
        Phase memory phase = phases[phaseInd];
        return (
            phase.tokensToSell,
            phase.totalSoldTokens,
            phase.tokenPerUsdPrice,
            phase.endTime
        );
    }

    function setPresaleStatus(bool _status) external onlyOwner {
        presaleStatus = _status;
    }

    function endPresale() external onlyOwner {
        isPresaleEnded = true;
        claimStartTime = block.timestamp;
    }

    // to check number of token for given Eth
    function nativeToToken(uint256 _amount, uint256 phaseId)
        public
        view
        returns (uint256)
    {
        uint256 ethToUsd = (_amount * (getLatestPrice())) / (1 ether);
        uint256 numberOfTokens = (ethToUsd * phases[phaseId].tokenPerUsdPrice) /
            (1e8);
        return numberOfTokens;
    }

    // to check number of token for given usdt
    function usdtToToken(uint256 _amount, uint256 phaseId)
        public
        view
        returns (uint256)
    {
        uint256 numberOfTokens = (_amount * phases[phaseId].tokenPerUsdPrice) /
            (1e6);
        return numberOfTokens;
    }

    function updateInfos(
        uint256 _sold,
        uint256 _raised,
        uint256 _raisedInUsdt
    ) external onlyOwner {
        soldToken = _sold;
        amountRaised = _raised;
        amountRaisedUSDT = _raisedInUsdt;
    }

    // change tokens
    function updateToken(address _token) external onlyOwner {
        mainToken = IERC20(_token);
    }

    function updateEndTime(uint256 _phase, uint256 _time) public onlyOwner {
        phases[_phase].endTime = _time;
    }

    //change tokens for buy
    function updateStableTokens(IERC20 _USDT) external onlyOwner {
        USDT = IERC20(_USDT);
    }

    // to withdraw funds for liquidity
    function initiateTransfer(uint256 _value) external onlyOwner {
        fundReceiver.transfer(_value);
    }

    function changeFundReciever(address _addr) external onlyOwner {
        fundReceiver = payable(_addr);
    }

    function updatePriceFeed(AggregatorV3Interface _priceFeed)
        external
        onlyOwner
    {
        priceFeed = _priceFeed;
    }

    // to withdraw out tokens
    function transferTokens(IERC20 token, uint256 _value) external onlyOwner {
        token.transfer(msg.sender, _value);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256[]","name":"tokensToSell","type":"uint256[]"},{"internalType":"uint256[]","name":"endTimestamps","type":"uint256[]"},{"internalType":"uint256[]","name":"tokenPerUsdPrice","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BuyToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ClaimToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_oldPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"UpdatePrice","type":"event"},{"inputs":[],"name":"USDT","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"UsersAddresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activePhaseInd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountRaised","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountRaisedUSDT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyTokenUSDT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oldAddress","type":"address"},{"internalType":"address","name":"_newWallet","type":"address"}],"name":"changeClaimAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"changeFundReciever","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentStage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLatestPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseInd","type":"uint256"}],"name":"getPhaseDetail","outputs":[{"internalType":"uint256","name":"tokenToSell","type":"uint256"},{"internalType":"uint256","name":"soldTokens","type":"uint256"},{"internalType":"uint256","name":"priceUsd","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"initiateTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPresaleEnded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"phaseId","type":"uint256"}],"name":"nativeToToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"phases","outputs":[{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"tokensToSell","type":"uint256"},{"internalType":"uint256","name":"totalSoldTokens","type":"uint256"},{"internalType":"uint256","name":"tokenPerUsdPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceFeed","outputs":[{"internalType":"contract AggregatorV3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setPresaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"soldToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniqueBuyers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_phase","type":"uint256"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"updateEndTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sold","type":"uint256"},{"internalType":"uint256","name":"_raised","type":"uint256"},{"internalType":"uint256","name":"_raisedInUsdt","type":"uint256"}],"name":"updateInfos","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract AggregatorV3Interface","name":"_priceFeed","type":"address"}],"name":"updatePriceFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_USDT","type":"address"}],"name":"updateStableTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"updateToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"phaseId","type":"uint256"}],"name":"usdtToToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"native_balance","type":"uint256"},{"internalType":"uint256","name":"usdt_balance","type":"uint256"},{"internalType":"uint256","name":"token_balance","type":"uint256"},{"internalType":"uint256","name":"claimed_tokens","type":"uint256"}],"stateMutability":"view","type":"function"}]

0x608060405273dac17f958d2ee523a2206206994597c13d831ec7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006657600080fd5b50604051620038cf380380620038cf83398181016040528101906200008c9190620005d3565b620000ac620000a0620002ca60201b60201c565b620002d260201b60201c565b81518351148015620000bf575080518251145b62000101576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000f89062000729565b60405180910390fd5b83600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e8ec5f7af62e5ad1284749517dc8c168225e2bf3600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735f4ec3df9cbd43714fe2740f5e3616155c5b8419600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060005b8351811015620002b7578281815181106200020f576200020e6200074b565b5b602002602001015160046000838152602001908152602001600020600001819055508381815181106200024757620002466200074b565b5b602002602001015160046000838152602001908152602001600020600101819055508181815181106200027f576200027e6200074b565b5b602002602001015160046000838152602001908152602001600020600301819055508080620002ae90620007a9565b915050620001ef565b50825160058190555050505050620007f6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003d782620003aa565b9050919050565b6000620003eb82620003ca565b9050919050565b620003fd81620003de565b81146200040957600080fd5b50565b6000815190506200041d81620003f2565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004738262000428565b810181811067ffffffffffffffff8211171562000495576200049462000439565b5b80604052505050565b6000620004aa62000396565b9050620004b8828262000468565b919050565b600067ffffffffffffffff821115620004db57620004da62000439565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b6200050681620004f1565b81146200051257600080fd5b50565b6000815190506200052681620004fb565b92915050565b6000620005436200053d84620004bd565b6200049e565b90508083825260208201905060208402830185811115620005695762000568620004ec565b5b835b8181101562000596578062000581888262000515565b8452602084019350506020810190506200056b565b5050509392505050565b600082601f830112620005b857620005b762000423565b5b8151620005ca8482602086016200052c565b91505092915050565b60008060008060808587031215620005f057620005ef620003a0565b5b600062000600878288016200040c565b945050602085015167ffffffffffffffff811115620006245762000623620003a5565b5b6200063287828801620005a0565b935050604085015167ffffffffffffffff811115620006565762000655620003a5565b5b6200066487828801620005a0565b925050606085015167ffffffffffffffff811115620006885762000687620003a5565b5b6200069687828801620005a0565b91505092959194509250565b600082825260208201905092915050565b7f746f6b656e7320616e64206475726174696f6e206c656e677468206d69736d6160008201527f7463680000000000000000000000000000000000000000000000000000000000602082015250565b600062000711602383620006a2565b91506200071e82620006b3565b604082019050919050565b60006020820190508181036000830152620007448162000702565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007b682620004f1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620007eb57620007ea6200077a565b5b600182019050919050565b6130c980620008066000396000f3fe60806040526004361061022f5760003560e01c80638e15f4731161012e578063c54e44eb116100ab578063e44542df1161006f578063e44542df146107ee578063e9238daf14610817578063f2fde38b14610854578063f86a35291461087d578063fb4aa0a1146108a85761022f565b8063c54e44eb146106f5578063c63368be14610720578063c8fa553b14610749578063cb33365d14610774578063e00e0612146107b15761022f565b8063a87430ba116100f2578063a87430ba1461060d578063aa1c3aa51461064d578063acfb235514610678578063b5e75e1c146106a3578063bec3fa17146106cc5761022f565b80638e15f4731461056d57806395877f7814610598578063a43be57b146105c1578063a4821719146105d8578063a6a11bb1146105e25761022f565b80635dfd59f6116101bc5780637ad3def2116101805780637ad3def21461049a5780637b3e5e7b146104c35780637decf27f146104ee5780638895283f146105195780638da5cb5b146105425761022f565b80635dfd59f6146103db57806361a31e00146104045780636769d1f91461042d578063715018a614610458578063741bef1a1461046f5761022f565b8063405fb94411610203578063405fb9441461031c57806348c54b9d1461034757806353a29ad21461035e5780635bf5d54c146103875780635cc8ca46146103b25761022f565b806213eb4b146102345780632d2fbfd4146102715780632e37eef6146102b15780633fc15f15146102f1575b600080fd5b34801561024057600080fd5b5061025b60048036038101906102569190612461565b6108d3565b60405161026891906124a9565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906124fa565b6108f3565b6040516102a89493929190612536565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d391906124fa565b610967565b6040516102e89493929190612536565b60405180910390f35b3480156102fd57600080fd5b50610306610997565b60405161031391906125da565b60405180910390f35b34801561032857600080fd5b506103316109bd565b60405161033e91906125f5565b60405180910390f35b34801561035357600080fd5b5061035c6109c3565b005b34801561036a57600080fd5b5061038560048036038101906103809190612461565b610c75565b005b34801561039357600080fd5b5061039c610d35565b6040516103a991906125f5565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190612610565b610d3b565b005b3480156103e757600080fd5b5061040260048036038101906103fd9190612663565b610dd1565b005b34801561041057600080fd5b5061042b600480360381019061042691906124fa565b611043565b005b34801561043957600080fd5b5061044261112b565b60405161044f91906125f5565b60405180910390f35b34801561046457600080fd5b5061046d611131565b005b34801561047b57600080fd5b506104846111b9565b60405161049191906126c4565b60405180910390f35b3480156104a657600080fd5b506104c160048036038101906104bc9190612461565b6111df565b005b3480156104cf57600080fd5b506104d861129f565b6040516104e591906125f5565b60405180910390f35b3480156104fa57600080fd5b506105036112a5565b60405161051091906124a9565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b919061270b565b6112b8565b005b34801561054e57600080fd5b50610557611351565b6040516105649190612747565b60405180910390f35b34801561057957600080fd5b5061058261137a565b60405161058f91906125f5565b60405180910390f35b3480156105a457600080fd5b506105bf60048036038101906105ba91906127a0565b61141b565b005b3480156105cd57600080fd5b506105d66114db565b005b6105e061157b565b005b3480156105ee57600080fd5b506105f76119d4565b60405161060491906125f5565b60405180910390f35b34801561061957600080fd5b50610634600480360381019061062f9190612461565b6119da565b6040516106449493929190612536565b60405180910390f35b34801561065957600080fd5b50610662611a0a565b60405161066f91906125f5565b60405180910390f35b34801561068457600080fd5b5061068d611a10565b60405161069a91906124a9565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c591906124fa565b611a23565b005b3480156106d857600080fd5b506106f360048036038101906106ee919061280b565b611e29565b005b34801561070157600080fd5b5061070a611f16565b60405161071791906125da565b60405180910390f35b34801561072c57600080fd5b506107476004803603810190610742919061284b565b611f3c565b005b34801561075557600080fd5b5061075e611ffc565b60405161076b91906125f5565b60405180910390f35b34801561078057600080fd5b5061079b60048036038101906107969190612878565b61208b565b6040516107a891906125f5565b60405180910390f35b3480156107bd57600080fd5b506107d860048036038101906107d391906124fa565b6120f6565b6040516107e59190612747565b60405180910390f35b3480156107fa57600080fd5b5061081560048036038101906108109190612878565b612135565b005b34801561082357600080fd5b5061083e60048036038101906108399190612878565b6121d0565b60405161084b91906125f5565b60405180910390f35b34801561086057600080fd5b5061087b60048036038101906108769190612461565b61220f565b005b34801561088957600080fd5b50610892612306565b60405161089f91906125f5565b60405180910390f35b3480156108b457600080fd5b506108bd61230c565b6040516108ca91906128d9565b60405180910390f35b600f6020528060005260406000206000915054906101000a900460ff1681565b600080600080600060046000878152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905080602001518160400151826060015183600001519450945094509450509193509193565b60046020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600b60159054906101000a900460ff16610a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0990612951565b60405180910390fd5b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a95906129bd565b60405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90612a29565b60405180910390fd5b600081600301548260020154610b3e9190612a78565b905060008111610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90612af8565b60405180910390fd5b80826003016000828254610b979190612b18565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610bfb929190612b4c565b600060405180830381600087803b158015610c1557600080fd5b505af1158015610c29573d6000803e3d6000fd5b50505050803373ffffffffffffffffffffffffffffffffffffffff167f5d425a3a6a3d5a60fbf147dc6659ce3dfeb701fc44fe90058c32783b8807c57460405160405180910390a35050565b610c7d612332565b73ffffffffffffffffffffffffffffffffffffffff16610c9b611351565b73ffffffffffffffffffffffffffffffffffffffff1614610cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce890612bc1565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b610d43612332565b73ffffffffffffffffffffffffffffffffffffffff16610d61611351565b73ffffffffffffffffffffffffffffffffffffffff1614610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae90612bc1565b60405180910390fd5b826007819055508160088190555080600981905550505050565b610dd9612332565b73ffffffffffffffffffffffffffffffffffffffff16610df7611351565b73ffffffffffffffffffffffffffffffffffffffff1614610e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4490612bc1565b60405180910390fd5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed090612c2d565b60405180910390fd5b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050816002015481600201819055508160030154816003018190555060008260020181905550600082600301819055506000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b61104b612332565b73ffffffffffffffffffffffffffffffffffffffff16611069611351565b73ffffffffffffffffffffffffffffffffffffffff16146110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b690612bc1565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611127573d6000803e3d6000fd5b5050565b60075481565b611139612332565b73ffffffffffffffffffffffffffffffffffffffff16611157611351565b73ffffffffffffffffffffffffffffffffffffffff16146111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a490612bc1565b60405180910390fd5b6111b7600061233a565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111e7612332565b73ffffffffffffffffffffffffffffffffffffffff16611205611351565b73ffffffffffffffffffffffffffffffffffffffff161461125b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125290612bc1565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b600b60159054906101000a900460ff1681565b6112c0612332565b73ffffffffffffffffffffffffffffffffffffffff166112de611351565b73ffffffffffffffffffffffffffffffffffffffff1614611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b90612bc1565b60405180910390fd5b80600b60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156113ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e9190612cda565b5050509150508091505090565b611423612332565b73ffffffffffffffffffffffffffffffffffffffff16611441611351565b73ffffffffffffffffffffffffffffffffffffffff1614611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90612bc1565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6114e3612332565b73ffffffffffffffffffffffffffffffffffffffff16611501611351565b73ffffffffffffffffffffffffffffffffffffffff1614611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90612bc1565b60405180910390fd5b6001600b60156101000a81548160ff02191690831515021790555042600c81905550565b600b60159054906101000a900460ff16156115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290612da1565b60405180910390fd5b600b60149054906101000a900460ff1661161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161190612e33565b60405180910390fd5b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661173f576001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a60008154809291906116d690612e53565b9190505550600d339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156117a7573d6000803e3d6000fd5b5060006117b2611ffc565b905060065481146117c557806006819055505b60006117d1348361208b565b90506004600060065481526020019081526020016000206001015481600460006006548152602001908152602001600020600201546118109190612b18565b1115611851576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184890612ee7565b60405180910390fd5b8060075461185f9190612b18565b600781905550346008546118739190612b18565b60088190555034600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118c79190612b18565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461195b9190612b18565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055508060046000600654815260200190815260200160002060020160008282546119c99190612b18565b925050819055505050565b600c5481565b600e6020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600a5481565b600b60149054906101000a900460ff1681565b600b60159054906101000a900460ff1615611a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a90612da1565b60405180910390fd5b600b60149054906101000a900460ff16611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab990612e33565b60405180910390fd5b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b84576001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a6000815480929190611b7e90612e53565b91905055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401611c0593929190612f28565b600060405180830381600087803b158015611c1f57600080fd5b505af1158015611c33573d6000803e3d6000fd5b505050506000611c41611ffc565b90506006548114611c5457806006819055505b6000611c6083836121d0565b9050600460006006548152602001908152602001600020600101548160046000600654815260200190815260200160002060020154611c9f9190612b18565b1115611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd790612ee7565b60405180910390fd5b80600754611cee9190612b18565b60078190555082600954611d029190612b18565b60098190555082600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611d5a9190612b18565b9250508190555080600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611daf9190612b18565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806004600060065481526020019081526020016000206002016000828254611e1d9190612b18565b92505081905550505050565b611e31612332565b73ffffffffffffffffffffffffffffffffffffffff16611e4f611351565b73ffffffffffffffffffffffffffffffffffffffff1614611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c90612bc1565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611ee0929190612b4c565b600060405180830381600087803b158015611efa57600080fd5b505af1158015611f0e573d6000803e3d6000fd5b505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f44612332565b73ffffffffffffffffffffffffffffffffffffffff16611f62611351565b73ffffffffffffffffffffffffffffffffffffffff1614611fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faf90612bc1565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460006006548152602001908152602001600020600001544210156120765760046000600654815260200190815260200160002060010154600460006006548152602001908152602001600020600201541015612060576006549050612088565b600160065461206f9190612b18565b9050612088565b60016006546120859190612b18565b90505b90565b600080670de0b6b3a764000061209f61137a565b856120aa9190612f5f565b6120b49190612fd0565b905060006305f5e1006004600086815260200190815260200160002060030154836120df9190612f5f565b6120e99190612fd0565b9050809250505092915050565b600d818154811061210657600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61213d612332565b73ffffffffffffffffffffffffffffffffffffffff1661215b611351565b73ffffffffffffffffffffffffffffffffffffffff16146121b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a890612bc1565b60405180910390fd5b8060046000848152602001908152602001600020600001819055505050565b600080620f42406004600085815260200190815260200160002060030154856121f99190612f5f565b6122039190612fd0565b90508091505092915050565b612217612332565b73ffffffffffffffffffffffffffffffffffffffff16612235611351565b73ffffffffffffffffffffffffffffffffffffffff161461228b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228290612bc1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036122fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f190613073565b60405180910390fd5b6123038161233a565b50565b60055481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061242e82612403565b9050919050565b61243e81612423565b811461244957600080fd5b50565b60008135905061245b81612435565b92915050565b600060208284031215612477576124766123fe565b5b60006124858482850161244c565b91505092915050565b60008115159050919050565b6124a38161248e565b82525050565b60006020820190506124be600083018461249a565b92915050565b6000819050919050565b6124d7816124c4565b81146124e257600080fd5b50565b6000813590506124f4816124ce565b92915050565b6000602082840312156125105761250f6123fe565b5b600061251e848285016124e5565b91505092915050565b612530816124c4565b82525050565b600060808201905061254b6000830187612527565b6125586020830186612527565b6125656040830185612527565b6125726060830184612527565b95945050505050565b6000819050919050565b60006125a061259b61259684612403565b61257b565b612403565b9050919050565b60006125b282612585565b9050919050565b60006125c4826125a7565b9050919050565b6125d4816125b9565b82525050565b60006020820190506125ef60008301846125cb565b92915050565b600060208201905061260a6000830184612527565b92915050565b600080600060608486031215612629576126286123fe565b5b6000612637868287016124e5565b9350506020612648868287016124e5565b9250506040612659868287016124e5565b9150509250925092565b6000806040838503121561267a576126796123fe565b5b60006126888582860161244c565b92505060206126998582860161244c565b9150509250929050565b60006126ae826125a7565b9050919050565b6126be816126a3565b82525050565b60006020820190506126d960008301846126b5565b92915050565b6126e88161248e565b81146126f357600080fd5b50565b600081359050612705816126df565b92915050565b600060208284031215612721576127206123fe565b5b600061272f848285016126f6565b91505092915050565b61274181612423565b82525050565b600060208201905061275c6000830184612738565b92915050565b600061276d82612423565b9050919050565b61277d81612762565b811461278857600080fd5b50565b60008135905061279a81612774565b92915050565b6000602082840312156127b6576127b56123fe565b5b60006127c48482850161278b565b91505092915050565b60006127d882612423565b9050919050565b6127e8816127cd565b81146127f357600080fd5b50565b600081359050612805816127df565b92915050565b60008060408385031215612822576128216123fe565b5b6000612830858286016127f6565b9250506020612841858286016124e5565b9150509250929050565b600060208284031215612861576128606123fe565b5b600061286f848285016127f6565b91505092915050565b6000806040838503121561288f5761288e6123fe565b5b600061289d858286016124e5565b92505060206128ae858286016124e5565b9150509250929050565b60006128c382612403565b9050919050565b6128d3816128b8565b82525050565b60006020820190506128ee60008301846128ca565b92915050565b600082825260208201905092915050565b7f50726573616c6520686173206e6f7420656e6465642079657400000000000000600082015250565b600061293b6019836128f4565b915061294682612905565b602082019050919050565b6000602082019050818103600083015261296a8161292e565b9050919050565b7f5573657220646f6e277420657869737400000000000000000000000000000000600082015250565b60006129a76010836128f4565b91506129b282612971565b602082019050919050565b600060208201905081810360008301526129d68161299a565b9050919050565b7f4e6f20746f6b656e732070757263686173656400000000000000000000000000600082015250565b6000612a136013836128f4565b9150612a1e826129dd565b602082019050919050565b60006020820190508181036000830152612a4281612a06565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a83826124c4565b9150612a8e836124c4565b9250828203905081811115612aa657612aa5612a49565b5b92915050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b6000612ae26012836128f4565b9150612aed82612aac565b602082019050919050565b60006020820190508181036000830152612b1181612ad5565b9050919050565b6000612b23826124c4565b9150612b2e836124c4565b9250828201905080821115612b4657612b45612a49565b5b92915050565b6000604082019050612b616000830185612738565b612b6e6020830184612527565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bab6020836128f4565b9150612bb682612b75565b602082019050919050565b60006020820190508181036000830152612bda81612b9e565b9050919050565b7f204f6c642055736572206e6f742061207061727469636970616e740000000000600082015250565b6000612c17601b836128f4565b9150612c2282612be1565b602082019050919050565b60006020820190508181036000830152612c4681612c0a565b9050919050565b600069ffffffffffffffffffff82169050919050565b612c6c81612c4d565b8114612c7757600080fd5b50565b600081519050612c8981612c63565b92915050565b6000819050919050565b612ca281612c8f565b8114612cad57600080fd5b50565b600081519050612cbf81612c99565b92915050565b600081519050612cd4816124ce565b92915050565b600080600080600060a08688031215612cf657612cf56123fe565b5b6000612d0488828901612c7a565b9550506020612d1588828901612cb0565b9450506040612d2688828901612cc5565b9350506060612d3788828901612cc5565b9250506080612d4888828901612c7a565b9150509295509295909350565b7f50726573616c6520656e64656421000000000000000000000000000000000000600082015250565b6000612d8b600e836128f4565b9150612d9682612d55565b602082019050919050565b60006020820190508181036000830152612dba81612d7e565b9050919050565b7f2050726573616c65206973205061757365642c20636865636b206261636b206c60008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b6000612e1d6024836128f4565b9150612e2882612dc1565b604082019050919050565b60006020820190508181036000830152612e4c81612e10565b9050919050565b6000612e5e826124c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e9057612e8f612a49565b5b600182019050919050565b7f5068617365204c696d6974205265616368656400000000000000000000000000600082015250565b6000612ed16013836128f4565b9150612edc82612e9b565b602082019050919050565b60006020820190508181036000830152612f0081612ec4565b9050919050565b6000612f12826125a7565b9050919050565b612f2281612f07565b82525050565b6000606082019050612f3d6000830186612738565b612f4a6020830185612f19565b612f576040830184612527565b949350505050565b6000612f6a826124c4565b9150612f75836124c4565b9250828202612f83816124c4565b91508282048414831517612f9a57612f99612a49565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fdb826124c4565b9150612fe6836124c4565b925082612ff657612ff5612fa1565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061305d6026836128f4565b915061306882613001565b604082019050919050565b6000602082019050818103600083015261308c81613050565b905091905056fea2646970667358221220deca6010cb209fd74914369ccb769d2a5b2da11df2b9854cffa643cb2f8768aa64736f6c63430008120033000000000000000000000000b2cb194701094239db774049d9d72f7838944a1700000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000b5e620f48000000000000000000000000000000000000000000000000000000110d9316ec00000000000000000000000000000000000000000000000000000027ca57357c00000000000000000000000000000000000000000000000000000044364c5bb00000000000000000000000000000000000000000000000000000003e871b540c0000000000000000000000000000000000000000000000000000001c6bf52634000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000660afe2d00000000000000000000000000000000000000000000000000000000660b0c3d00000000000000000000000000000000000000000000000000000000660b1a4d00000000000000000000000000000000000000000000000000000000660b285d00000000000000000000000000000000000000000000000000000000660b366d00000000000000000000000000000000000000000000000000000000660b447d000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000c6aea155000000000000000000000000000000000000000000000000000000009502f9000000000000000000000000000000000000000000000000000000000084746b8e0000000000000000000000000000000000000000000000000000000077359400000000000000000000000000000000000000000000000000000000006c5f40ba00000000000000000000000000000000000000000000000000000000635750ab

Deployed Bytecode

0x60806040526004361061022f5760003560e01c80638e15f4731161012e578063c54e44eb116100ab578063e44542df1161006f578063e44542df146107ee578063e9238daf14610817578063f2fde38b14610854578063f86a35291461087d578063fb4aa0a1146108a85761022f565b8063c54e44eb146106f5578063c63368be14610720578063c8fa553b14610749578063cb33365d14610774578063e00e0612146107b15761022f565b8063a87430ba116100f2578063a87430ba1461060d578063aa1c3aa51461064d578063acfb235514610678578063b5e75e1c146106a3578063bec3fa17146106cc5761022f565b80638e15f4731461056d57806395877f7814610598578063a43be57b146105c1578063a4821719146105d8578063a6a11bb1146105e25761022f565b80635dfd59f6116101bc5780637ad3def2116101805780637ad3def21461049a5780637b3e5e7b146104c35780637decf27f146104ee5780638895283f146105195780638da5cb5b146105425761022f565b80635dfd59f6146103db57806361a31e00146104045780636769d1f91461042d578063715018a614610458578063741bef1a1461046f5761022f565b8063405fb94411610203578063405fb9441461031c57806348c54b9d1461034757806353a29ad21461035e5780635bf5d54c146103875780635cc8ca46146103b25761022f565b806213eb4b146102345780632d2fbfd4146102715780632e37eef6146102b15780633fc15f15146102f1575b600080fd5b34801561024057600080fd5b5061025b60048036038101906102569190612461565b6108d3565b60405161026891906124a9565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906124fa565b6108f3565b6040516102a89493929190612536565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d391906124fa565b610967565b6040516102e89493929190612536565b60405180910390f35b3480156102fd57600080fd5b50610306610997565b60405161031391906125da565b60405180910390f35b34801561032857600080fd5b506103316109bd565b60405161033e91906125f5565b60405180910390f35b34801561035357600080fd5b5061035c6109c3565b005b34801561036a57600080fd5b5061038560048036038101906103809190612461565b610c75565b005b34801561039357600080fd5b5061039c610d35565b6040516103a991906125f5565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190612610565b610d3b565b005b3480156103e757600080fd5b5061040260048036038101906103fd9190612663565b610dd1565b005b34801561041057600080fd5b5061042b600480360381019061042691906124fa565b611043565b005b34801561043957600080fd5b5061044261112b565b60405161044f91906125f5565b60405180910390f35b34801561046457600080fd5b5061046d611131565b005b34801561047b57600080fd5b506104846111b9565b60405161049191906126c4565b60405180910390f35b3480156104a657600080fd5b506104c160048036038101906104bc9190612461565b6111df565b005b3480156104cf57600080fd5b506104d861129f565b6040516104e591906125f5565b60405180910390f35b3480156104fa57600080fd5b506105036112a5565b60405161051091906124a9565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b919061270b565b6112b8565b005b34801561054e57600080fd5b50610557611351565b6040516105649190612747565b60405180910390f35b34801561057957600080fd5b5061058261137a565b60405161058f91906125f5565b60405180910390f35b3480156105a457600080fd5b506105bf60048036038101906105ba91906127a0565b61141b565b005b3480156105cd57600080fd5b506105d66114db565b005b6105e061157b565b005b3480156105ee57600080fd5b506105f76119d4565b60405161060491906125f5565b60405180910390f35b34801561061957600080fd5b50610634600480360381019061062f9190612461565b6119da565b6040516106449493929190612536565b60405180910390f35b34801561065957600080fd5b50610662611a0a565b60405161066f91906125f5565b60405180910390f35b34801561068457600080fd5b5061068d611a10565b60405161069a91906124a9565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c591906124fa565b611a23565b005b3480156106d857600080fd5b506106f360048036038101906106ee919061280b565b611e29565b005b34801561070157600080fd5b5061070a611f16565b60405161071791906125da565b60405180910390f35b34801561072c57600080fd5b506107476004803603810190610742919061284b565b611f3c565b005b34801561075557600080fd5b5061075e611ffc565b60405161076b91906125f5565b60405180910390f35b34801561078057600080fd5b5061079b60048036038101906107969190612878565b61208b565b6040516107a891906125f5565b60405180910390f35b3480156107bd57600080fd5b506107d860048036038101906107d391906124fa565b6120f6565b6040516107e59190612747565b60405180910390f35b3480156107fa57600080fd5b5061081560048036038101906108109190612878565b612135565b005b34801561082357600080fd5b5061083e60048036038101906108399190612878565b6121d0565b60405161084b91906125f5565b60405180910390f35b34801561086057600080fd5b5061087b60048036038101906108769190612461565b61220f565b005b34801561088957600080fd5b50610892612306565b60405161089f91906125f5565b60405180910390f35b3480156108b457600080fd5b506108bd61230c565b6040516108ca91906128d9565b60405180910390f35b600f6020528060005260406000206000915054906101000a900460ff1681565b600080600080600060046000878152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905080602001518160400151826060015183600001519450945094509450509193509193565b60046020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600b60159054906101000a900460ff16610a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0990612951565b60405180910390fd5b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a95906129bd565b60405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90612a29565b60405180910390fd5b600081600301548260020154610b3e9190612a78565b905060008111610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90612af8565b60405180910390fd5b80826003016000828254610b979190612b18565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610bfb929190612b4c565b600060405180830381600087803b158015610c1557600080fd5b505af1158015610c29573d6000803e3d6000fd5b50505050803373ffffffffffffffffffffffffffffffffffffffff167f5d425a3a6a3d5a60fbf147dc6659ce3dfeb701fc44fe90058c32783b8807c57460405160405180910390a35050565b610c7d612332565b73ffffffffffffffffffffffffffffffffffffffff16610c9b611351565b73ffffffffffffffffffffffffffffffffffffffff1614610cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce890612bc1565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b610d43612332565b73ffffffffffffffffffffffffffffffffffffffff16610d61611351565b73ffffffffffffffffffffffffffffffffffffffff1614610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae90612bc1565b60405180910390fd5b826007819055508160088190555080600981905550505050565b610dd9612332565b73ffffffffffffffffffffffffffffffffffffffff16610df7611351565b73ffffffffffffffffffffffffffffffffffffffff1614610e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4490612bc1565b60405180910390fd5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed090612c2d565b60405180910390fd5b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050816002015481600201819055508160030154816003018190555060008260020181905550600082600301819055506000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b61104b612332565b73ffffffffffffffffffffffffffffffffffffffff16611069611351565b73ffffffffffffffffffffffffffffffffffffffff16146110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b690612bc1565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611127573d6000803e3d6000fd5b5050565b60075481565b611139612332565b73ffffffffffffffffffffffffffffffffffffffff16611157611351565b73ffffffffffffffffffffffffffffffffffffffff16146111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a490612bc1565b60405180910390fd5b6111b7600061233a565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111e7612332565b73ffffffffffffffffffffffffffffffffffffffff16611205611351565b73ffffffffffffffffffffffffffffffffffffffff161461125b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125290612bc1565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b600b60159054906101000a900460ff1681565b6112c0612332565b73ffffffffffffffffffffffffffffffffffffffff166112de611351565b73ffffffffffffffffffffffffffffffffffffffff1614611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b90612bc1565b60405180910390fd5b80600b60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156113ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e9190612cda565b5050509150508091505090565b611423612332565b73ffffffffffffffffffffffffffffffffffffffff16611441611351565b73ffffffffffffffffffffffffffffffffffffffff1614611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90612bc1565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6114e3612332565b73ffffffffffffffffffffffffffffffffffffffff16611501611351565b73ffffffffffffffffffffffffffffffffffffffff1614611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90612bc1565b60405180910390fd5b6001600b60156101000a81548160ff02191690831515021790555042600c81905550565b600b60159054906101000a900460ff16156115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290612da1565b60405180910390fd5b600b60149054906101000a900460ff1661161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161190612e33565b60405180910390fd5b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661173f576001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a60008154809291906116d690612e53565b9190505550600d339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156117a7573d6000803e3d6000fd5b5060006117b2611ffc565b905060065481146117c557806006819055505b60006117d1348361208b565b90506004600060065481526020019081526020016000206001015481600460006006548152602001908152602001600020600201546118109190612b18565b1115611851576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184890612ee7565b60405180910390fd5b8060075461185f9190612b18565b600781905550346008546118739190612b18565b60088190555034600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118c79190612b18565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461195b9190612b18565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055508060046000600654815260200190815260200160002060020160008282546119c99190612b18565b925050819055505050565b600c5481565b600e6020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600a5481565b600b60149054906101000a900460ff1681565b600b60159054906101000a900460ff1615611a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a90612da1565b60405180910390fd5b600b60149054906101000a900460ff16611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab990612e33565b60405180910390fd5b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b84576001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a6000815480929190611b7e90612e53565b91905055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401611c0593929190612f28565b600060405180830381600087803b158015611c1f57600080fd5b505af1158015611c33573d6000803e3d6000fd5b505050506000611c41611ffc565b90506006548114611c5457806006819055505b6000611c6083836121d0565b9050600460006006548152602001908152602001600020600101548160046000600654815260200190815260200160002060020154611c9f9190612b18565b1115611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd790612ee7565b60405180910390fd5b80600754611cee9190612b18565b60078190555082600954611d029190612b18565b60098190555082600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611d5a9190612b18565b9250508190555080600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611daf9190612b18565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806004600060065481526020019081526020016000206002016000828254611e1d9190612b18565b92505081905550505050565b611e31612332565b73ffffffffffffffffffffffffffffffffffffffff16611e4f611351565b73ffffffffffffffffffffffffffffffffffffffff1614611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c90612bc1565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611ee0929190612b4c565b600060405180830381600087803b158015611efa57600080fd5b505af1158015611f0e573d6000803e3d6000fd5b505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f44612332565b73ffffffffffffffffffffffffffffffffffffffff16611f62611351565b73ffffffffffffffffffffffffffffffffffffffff1614611fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faf90612bc1565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460006006548152602001908152602001600020600001544210156120765760046000600654815260200190815260200160002060010154600460006006548152602001908152602001600020600201541015612060576006549050612088565b600160065461206f9190612b18565b9050612088565b60016006546120859190612b18565b90505b90565b600080670de0b6b3a764000061209f61137a565b856120aa9190612f5f565b6120b49190612fd0565b905060006305f5e1006004600086815260200190815260200160002060030154836120df9190612f5f565b6120e99190612fd0565b9050809250505092915050565b600d818154811061210657600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61213d612332565b73ffffffffffffffffffffffffffffffffffffffff1661215b611351565b73ffffffffffffffffffffffffffffffffffffffff16146121b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a890612bc1565b60405180910390fd5b8060046000848152602001908152602001600020600001819055505050565b600080620f42406004600085815260200190815260200160002060030154856121f99190612f5f565b6122039190612fd0565b90508091505092915050565b612217612332565b73ffffffffffffffffffffffffffffffffffffffff16612235611351565b73ffffffffffffffffffffffffffffffffffffffff161461228b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228290612bc1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036122fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f190613073565b60405180910390fd5b6123038161233a565b50565b60055481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061242e82612403565b9050919050565b61243e81612423565b811461244957600080fd5b50565b60008135905061245b81612435565b92915050565b600060208284031215612477576124766123fe565b5b60006124858482850161244c565b91505092915050565b60008115159050919050565b6124a38161248e565b82525050565b60006020820190506124be600083018461249a565b92915050565b6000819050919050565b6124d7816124c4565b81146124e257600080fd5b50565b6000813590506124f4816124ce565b92915050565b6000602082840312156125105761250f6123fe565b5b600061251e848285016124e5565b91505092915050565b612530816124c4565b82525050565b600060808201905061254b6000830187612527565b6125586020830186612527565b6125656040830185612527565b6125726060830184612527565b95945050505050565b6000819050919050565b60006125a061259b61259684612403565b61257b565b612403565b9050919050565b60006125b282612585565b9050919050565b60006125c4826125a7565b9050919050565b6125d4816125b9565b82525050565b60006020820190506125ef60008301846125cb565b92915050565b600060208201905061260a6000830184612527565b92915050565b600080600060608486031215612629576126286123fe565b5b6000612637868287016124e5565b9350506020612648868287016124e5565b9250506040612659868287016124e5565b9150509250925092565b6000806040838503121561267a576126796123fe565b5b60006126888582860161244c565b92505060206126998582860161244c565b9150509250929050565b60006126ae826125a7565b9050919050565b6126be816126a3565b82525050565b60006020820190506126d960008301846126b5565b92915050565b6126e88161248e565b81146126f357600080fd5b50565b600081359050612705816126df565b92915050565b600060208284031215612721576127206123fe565b5b600061272f848285016126f6565b91505092915050565b61274181612423565b82525050565b600060208201905061275c6000830184612738565b92915050565b600061276d82612423565b9050919050565b61277d81612762565b811461278857600080fd5b50565b60008135905061279a81612774565b92915050565b6000602082840312156127b6576127b56123fe565b5b60006127c48482850161278b565b91505092915050565b60006127d882612423565b9050919050565b6127e8816127cd565b81146127f357600080fd5b50565b600081359050612805816127df565b92915050565b60008060408385031215612822576128216123fe565b5b6000612830858286016127f6565b9250506020612841858286016124e5565b9150509250929050565b600060208284031215612861576128606123fe565b5b600061286f848285016127f6565b91505092915050565b6000806040838503121561288f5761288e6123fe565b5b600061289d858286016124e5565b92505060206128ae858286016124e5565b9150509250929050565b60006128c382612403565b9050919050565b6128d3816128b8565b82525050565b60006020820190506128ee60008301846128ca565b92915050565b600082825260208201905092915050565b7f50726573616c6520686173206e6f7420656e6465642079657400000000000000600082015250565b600061293b6019836128f4565b915061294682612905565b602082019050919050565b6000602082019050818103600083015261296a8161292e565b9050919050565b7f5573657220646f6e277420657869737400000000000000000000000000000000600082015250565b60006129a76010836128f4565b91506129b282612971565b602082019050919050565b600060208201905081810360008301526129d68161299a565b9050919050565b7f4e6f20746f6b656e732070757263686173656400000000000000000000000000600082015250565b6000612a136013836128f4565b9150612a1e826129dd565b602082019050919050565b60006020820190508181036000830152612a4281612a06565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a83826124c4565b9150612a8e836124c4565b9250828203905081811115612aa657612aa5612a49565b5b92915050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b6000612ae26012836128f4565b9150612aed82612aac565b602082019050919050565b60006020820190508181036000830152612b1181612ad5565b9050919050565b6000612b23826124c4565b9150612b2e836124c4565b9250828201905080821115612b4657612b45612a49565b5b92915050565b6000604082019050612b616000830185612738565b612b6e6020830184612527565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bab6020836128f4565b9150612bb682612b75565b602082019050919050565b60006020820190508181036000830152612bda81612b9e565b9050919050565b7f204f6c642055736572206e6f742061207061727469636970616e740000000000600082015250565b6000612c17601b836128f4565b9150612c2282612be1565b602082019050919050565b60006020820190508181036000830152612c4681612c0a565b9050919050565b600069ffffffffffffffffffff82169050919050565b612c6c81612c4d565b8114612c7757600080fd5b50565b600081519050612c8981612c63565b92915050565b6000819050919050565b612ca281612c8f565b8114612cad57600080fd5b50565b600081519050612cbf81612c99565b92915050565b600081519050612cd4816124ce565b92915050565b600080600080600060a08688031215612cf657612cf56123fe565b5b6000612d0488828901612c7a565b9550506020612d1588828901612cb0565b9450506040612d2688828901612cc5565b9350506060612d3788828901612cc5565b9250506080612d4888828901612c7a565b9150509295509295909350565b7f50726573616c6520656e64656421000000000000000000000000000000000000600082015250565b6000612d8b600e836128f4565b9150612d9682612d55565b602082019050919050565b60006020820190508181036000830152612dba81612d7e565b9050919050565b7f2050726573616c65206973205061757365642c20636865636b206261636b206c60008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b6000612e1d6024836128f4565b9150612e2882612dc1565b604082019050919050565b60006020820190508181036000830152612e4c81612e10565b9050919050565b6000612e5e826124c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e9057612e8f612a49565b5b600182019050919050565b7f5068617365204c696d6974205265616368656400000000000000000000000000600082015250565b6000612ed16013836128f4565b9150612edc82612e9b565b602082019050919050565b60006020820190508181036000830152612f0081612ec4565b9050919050565b6000612f12826125a7565b9050919050565b612f2281612f07565b82525050565b6000606082019050612f3d6000830186612738565b612f4a6020830185612f19565b612f576040830184612527565b949350505050565b6000612f6a826124c4565b9150612f75836124c4565b9250828202612f83816124c4565b91508282048414831517612f9a57612f99612a49565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fdb826124c4565b9150612fe6836124c4565b925082612ff657612ff5612fa1565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061305d6026836128f4565b915061306882613001565b604082019050919050565b6000602082019050818103600083015261308c81613050565b905091905056fea2646970667358221220deca6010cb209fd74914369ccb769d2a5b2da11df2b9854cffa643cb2f8768aa64736f6c63430008120033

Deployed Bytecode Sourcemap

3552:9136:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4551:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10051:456;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3897:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3587:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4091:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8461:574;;;;;;;;;;;;;:::i;:::-;;12260:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3992:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11458:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9504:539;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12143:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4026:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1052:103;;;;;;;;;;;;;:::i;:::-;;3697:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11729:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4057:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4241:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10515:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;744:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5737:159;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12378:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10624:124;;;;;;;;;;;;;:::i;:::-;;5970:1248;;;:::i;:::-;;4274:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4507:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4129:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4209:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7293:1160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12559:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3617:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11995:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9043:453;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10803:333;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4312:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11838:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11192:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1310:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3959:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4165:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4551:39;;;;;;;;;;;;;;;;;;;;;;:::o;10051:456::-;10157:19;10191:18;10224:16;10255;10299:18;10320:6;:16;10327:8;10320:16;;;;;;;;;;;10299:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10369:5;:18;;;10402:5;:21;;;10438:5;:22;;;10475:5;:13;;;10347:152;;;;;;;;;10051:456;;;;;:::o;3897:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3587:23::-;;;;;;;;;;;;;:::o;4091:31::-;;;;:::o;8461:574::-;8512:14;;;;;;;;;;;8504:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;8575:7;:19;8583:10;8575:19;;;;;;;;;;;;;;;;;;;;;;;;;8567:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;8625:17;8645:5;:17;8651:10;8645:17;;;;;;;;;;;;;;;8625:37;;8702:1;8681:4;:18;;;:22;8673:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8738:23;8785:4;:19;;;8764:4;:18;;;:40;;;;:::i;:::-;8738:66;;8841:1;8823:15;:19;8815:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8899:15;8876:4;:19;;;:38;;;;;;;:::i;:::-;;;;;;;;8925:9;;;;;;;;;;;:18;;;8944:10;8956:15;8925:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9011:15;8999:10;8988:39;;;;;;;;;;;;8493:542;;8461:574::o;12260:110::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12356:5:::1;12333:12;;:29;;;;;;;;;;;;;;;;;;12260:110:::0;:::o;3992:27::-;;;;:::o;11458:241::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11610:5:::1;11598:9;:17;;;;11641:7;11626:12;:22;;;;11678:13;11659:16;:32;;;;11458:241:::0;;;:::o;9504:539::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9632:7:::1;:20;9640:11;9632:20;;;;;;;;;;;;;;;;;;;;;;;;;9624:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9695:17;9715:5;:18;9721:11;9715:18;;;;;;;;;;;;;;;9695:38;;9744:20;9767:5;:17;9773:10;9767:17;;;;;;;;;;;;;;;9744:40;;9819:4;:18;;;9795:7;:21;;:42;;;;9873:4;:19;;;9848:7;:22;;:44;;;;9924:1;9903:4;:18;;:22;;;;9958:1;9936:4;:19;;:23;;;;9993:5;9970:7;:20;9978:11;9970:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10031:4;10009:7;:19;10017:10;10009:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;9613:430;;9504:539:::0;;:::o;12143:109::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12215:12:::1;;;;;;;;;;;:21;;:29;12237:6;12215:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12143:109:::0;:::o;4026:24::-;;;;:::o;1052:103::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:30:::1;1144:1;1117:18;:30::i;:::-;1052:103::o:0;3697:38::-;;;;;;;;;;;;;:::o;11729:101::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11815:6:::1;11796:9;;:26;;;;;;;;;;;;;;;;;;11729:101:::0;:::o;4057:27::-;;;;:::o;4241:26::-;;;;;;;;;;;;;:::o;10515:101::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10601:7:::1;10585:13;;:23;;;;;;;;;;;;;;;;;;10515:101:::0;:::o;744:87::-;790:7;817:6;;;;;;;;;;;810:13;;744:87;:::o;5737:159::-;5784:7;5807:12;5829:9;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5804:52;;;;;;5882:5;5867:21;;;5737:159;:::o;12378:142::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12502:10:::1;12490:9;;:22;;;;;;;;;;;;;;;;;;12378:142:::0;:::o;10624:124::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10693:4:::1;10676:14;;:21;;;;;;;;;;;;;;;;;;10725:15;10708:14;:32;;;;10624:124::o:0;5970:1248::-;6025:14;;;;;;;;;;;6024:15;6016:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6077:13;;;;;;;;;;;6069:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6147:7;:19;6155:10;6147:19;;;;;;;;;;;;;;;;;;;;;;;;;6142:154;;6205:4;6183:7;:19;6191:10;6183:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;6224:12;;:14;;;;;;;;;:::i;:::-;;;;;;6253;6273:10;6253:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6142:154;6306:12;;;;;;;;;;;:21;;:32;6328:9;6306:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6380:19;6402:16;:14;:16::i;:::-;6380:38;;6448:12;;6433:11;:27;6429:86;;6492:11;6477:12;:26;;;;6429:86;6527:22;6577:37;6591:9;6602:11;6577:13;:37::i;:::-;6560:54;;6721:6;:20;6728:12;;6721:20;;;;;;;;;;;:33;;;6686:14;6647:6;:20;6654:12;;6647:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;6625:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;6837:14;6824:9;;:28;;;;:::i;:::-;6812:9;:40;;;;6894:9;6878:12;;:26;;;;:::i;:::-;6863:12;:41;;;;7014:9;6965:5;:17;6971:10;6965:17;;;;;;;;;;;;;;;:32;;;:59;;;;:::i;:::-;6917:5;:17;6923:10;6917:17;;;;;;;;;;;;;;;:32;;:107;;;;7130:14;7082:5;:17;7088:10;7082:17;;;;;;;;;;;;;;;:31;;;:63;;;;:::i;:::-;7035:5;:17;7041:10;7035:17;;;;;;;;;;;;;;;:31;;:110;;;;7196:14;7156:6;:20;7163:12;;7156:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;6005:1213;;5970:1248::o;4274:29::-;;;;:::o;4507:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4129:27::-;;;;:::o;4209:25::-;;;;;;;;;;;;;:::o;7293:1160::-;7358:14;;;;;;;;;;;7357:15;7349:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;7410:13;;;;;;;;;;;7402:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7480:7;:19;7488:10;7480:19;;;;;;;;;;;;;;;;;;;;;;;;;7475:108;;7538:4;7516:7;:19;7524:10;7516:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;7557:12;;:14;;;;;;;;;:::i;:::-;;;;;;7475:108;7593:4;;;;;;;;;;;:17;;;7611:10;7623:12;;;;;;;;;;;7637:6;7593:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7686:19;7708:16;:14;:16::i;:::-;7686:38;;7754:12;;7739:11;:27;7735:86;;7798:11;7783:12;:26;;;;7735:86;7833:22;7883:32;7895:6;7903:11;7883;:32::i;:::-;7866:49;;8022:6;:20;8029:12;;8022:20;;;;;;;;;;;:33;;;7987:14;7948:6;:20;7955:12;;7948:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;7926:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;8137:14;8125:9;;:26;;;;:::i;:::-;8113:9;:38;;;;8200:6;8181:16;;:25;;;;:::i;:::-;8162:16;:44;;;;8253:6;8219:5;:17;8225:10;8219:17;;;;;;;;;;;;;;;:30;;;:40;;;;;;;:::i;:::-;;;;;;;;8366:14;8319:5;:17;8325:10;8319:17;;;;;;;;;;;;;;;:31;;;:61;;;;:::i;:::-;8272:5;:17;8278:10;8272:17;;;;;;;;;;;;;;;:31;;:108;;;;8431:14;8391:6;:20;8398:12;;8391:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;7338:1115;;7293:1160;:::o;12559:126::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12643:5:::1;:14;;;12658:10;12670:6;12643:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12559:126:::0;;:::o;3617:71::-;;;;;;;;;;;;;:::o;11995:100::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12081:5:::1;12067:4;;:20;;;;;;;;;;;;;;;;;;11995:100:::0;:::o;9043:453::-;9090:7;9132:6;:20;9139:12;;9132:20;;;;;;;;;;;:28;;;9114:15;:46;9110:379;;;9255:6;:20;9262:12;;9255:20;;;;;;;;;;;:33;;;9199:6;:20;9206:12;;9199:20;;;;;;;;;;;:36;;;:89;9177:245;;;9330:12;;9323:19;;;;9177:245;9405:1;9390:12;;:16;;;;:::i;:::-;9383:23;;;;9110:379;9476:1;9461:12;;:16;;;;:::i;:::-;9454:23;;9043:453;;:::o;10803:333::-;10908:7;10933:16;10986:7;10964:16;:14;:16::i;:::-;10953:7;:28;;;;:::i;:::-;10952:42;;;;:::i;:::-;10933:61;;11005:22;11092:3;11042:6;:15;11049:7;11042:15;;;;;;;;;;;:32;;;11031:8;:43;;;;:::i;:::-;11030:66;;;;:::i;:::-;11005:91;;11114:14;11107:21;;;;10803:333;;;;:::o;4312:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11838:120::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11945:5:::1;11920:6;:14;11927:6;11920:14;;;;;;;;;;;:22;;:30;;;;11838:120:::0;;:::o;11192:258::-;11295:7;11320:22;11406:3;11356:6;:15;11363:7;11356:15;;;;;;;;;;;:32;;;11346:7;:42;;;;:::i;:::-;11345:65;;;;:::i;:::-;11320:90;;11428:14;11421:21;;;11192:258;;;;:::o;1310:238::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1433:1:::1;1413:22;;:8;:22;;::::0;1391:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1512:28;1531:8;1512:18;:28::i;:::-;1310:238:::0;:::o;3959:26::-;;;;:::o;4165:35::-;;;;;;;;;;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;1708:191::-;1782:16;1801:6;;;;;;;;;;;1782:25;;1827:8;1818:6;;:17;;;;;;;;;;;;;;;;;;1882:8;1851:40;;1872:8;1851:40;;;;;;;;;;;;1771:128;1708:191;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:210::-;1474:4;1512:2;1501:9;1497:18;1489:26;;1525:65;1587:1;1576:9;1572:17;1563:6;1525:65;:::i;:::-;1387:210;;;;:::o;1603:77::-;1640:7;1669:5;1658:16;;1603:77;;;:::o;1686:122::-;1759:24;1777:5;1759:24;:::i;:::-;1752:5;1749:35;1739:63;;1798:1;1795;1788:12;1739:63;1686:122;:::o;1814:139::-;1860:5;1898:6;1885:20;1876:29;;1914:33;1941:5;1914:33;:::i;:::-;1814:139;;;;:::o;1959:329::-;2018:6;2067:2;2055:9;2046:7;2042:23;2038:32;2035:119;;;2073:79;;:::i;:::-;2035:119;2193:1;2218:53;2263:7;2254:6;2243:9;2239:22;2218:53;:::i;:::-;2208:63;;2164:117;1959:329;;;;:::o;2294:118::-;2381:24;2399:5;2381:24;:::i;:::-;2376:3;2369:37;2294:118;;:::o;2418:553::-;2595:4;2633:3;2622:9;2618:19;2610:27;;2647:71;2715:1;2704:9;2700:17;2691:6;2647:71;:::i;:::-;2728:72;2796:2;2785:9;2781:18;2772:6;2728:72;:::i;:::-;2810;2878:2;2867:9;2863:18;2854:6;2810:72;:::i;:::-;2892;2960:2;2949:9;2945:18;2936:6;2892:72;:::i;:::-;2418:553;;;;;;;:::o;2977:60::-;3005:3;3026:5;3019:12;;2977:60;;;:::o;3043:142::-;3093:9;3126:53;3144:34;3153:24;3171:5;3153:24;:::i;:::-;3144:34;:::i;:::-;3126:53;:::i;:::-;3113:66;;3043:142;;;:::o;3191:126::-;3241:9;3274:37;3305:5;3274:37;:::i;:::-;3261:50;;3191:126;;;:::o;3323:140::-;3387:9;3420:37;3451:5;3420:37;:::i;:::-;3407:50;;3323:140;;;:::o;3469:159::-;3570:51;3615:5;3570:51;:::i;:::-;3565:3;3558:64;3469:159;;:::o;3634:250::-;3741:4;3779:2;3768:9;3764:18;3756:26;;3792:85;3874:1;3863:9;3859:17;3850:6;3792:85;:::i;:::-;3634:250;;;;:::o;3890:222::-;3983:4;4021:2;4010:9;4006:18;3998:26;;4034:71;4102:1;4091:9;4087:17;4078:6;4034:71;:::i;:::-;3890:222;;;;:::o;4118:619::-;4195:6;4203;4211;4260:2;4248:9;4239:7;4235:23;4231:32;4228:119;;;4266:79;;:::i;:::-;4228:119;4386:1;4411:53;4456:7;4447:6;4436:9;4432:22;4411:53;:::i;:::-;4401:63;;4357:117;4513:2;4539:53;4584:7;4575:6;4564:9;4560:22;4539:53;:::i;:::-;4529:63;;4484:118;4641:2;4667:53;4712:7;4703:6;4692:9;4688:22;4667:53;:::i;:::-;4657:63;;4612:118;4118:619;;;;;:::o;4743:474::-;4811:6;4819;4868:2;4856:9;4847:7;4843:23;4839:32;4836:119;;;4874:79;;:::i;:::-;4836:119;4994:1;5019:53;5064:7;5055:6;5044:9;5040:22;5019:53;:::i;:::-;5009:63;;4965:117;5121:2;5147:53;5192:7;5183:6;5172:9;5168:22;5147:53;:::i;:::-;5137:63;;5092:118;4743:474;;;;;:::o;5223:155::-;5302:9;5335:37;5366:5;5335:37;:::i;:::-;5322:50;;5223:155;;;:::o;5384:189::-;5500:66;5560:5;5500:66;:::i;:::-;5495:3;5488:79;5384:189;;:::o;5579:280::-;5701:4;5739:2;5728:9;5724:18;5716:26;;5752:100;5849:1;5838:9;5834:17;5825:6;5752:100;:::i;:::-;5579:280;;;;:::o;5865:116::-;5935:21;5950:5;5935:21;:::i;:::-;5928:5;5925:32;5915:60;;5971:1;5968;5961:12;5915:60;5865:116;:::o;5987:133::-;6030:5;6068:6;6055:20;6046:29;;6084:30;6108:5;6084:30;:::i;:::-;5987:133;;;;:::o;6126:323::-;6182:6;6231:2;6219:9;6210:7;6206:23;6202:32;6199:119;;;6237:79;;:::i;:::-;6199:119;6357:1;6382:50;6424:7;6415:6;6404:9;6400:22;6382:50;:::i;:::-;6372:60;;6328:114;6126:323;;;;:::o;6455:118::-;6542:24;6560:5;6542:24;:::i;:::-;6537:3;6530:37;6455:118;;:::o;6579:222::-;6672:4;6710:2;6699:9;6695:18;6687:26;;6723:71;6791:1;6780:9;6776:17;6767:6;6723:71;:::i;:::-;6579:222;;;;:::o;6807:125::-;6873:7;6902:24;6920:5;6902:24;:::i;:::-;6891:35;;6807:125;;;:::o;6938:180::-;7040:53;7087:5;7040:53;:::i;:::-;7033:5;7030:64;7020:92;;7108:1;7105;7098:12;7020:92;6938:180;:::o;7124:197::-;7199:5;7237:6;7224:20;7215:29;;7253:62;7309:5;7253:62;:::i;:::-;7124:197;;;;:::o;7327:387::-;7415:6;7464:2;7452:9;7443:7;7439:23;7435:32;7432:119;;;7470:79;;:::i;:::-;7432:119;7590:1;7615:82;7689:7;7680:6;7669:9;7665:22;7615:82;:::i;:::-;7605:92;;7561:146;7327:387;;;;:::o;7720:110::-;7771:7;7800:24;7818:5;7800:24;:::i;:::-;7789:35;;7720:110;;;:::o;7836:150::-;7923:38;7955:5;7923:38;:::i;:::-;7916:5;7913:49;7903:77;;7976:1;7973;7966:12;7903:77;7836:150;:::o;7992:167::-;8052:5;8090:6;8077:20;8068:29;;8106:47;8147:5;8106:47;:::i;:::-;7992:167;;;;:::o;8165:502::-;8247:6;8255;8304:2;8292:9;8283:7;8279:23;8275:32;8272:119;;;8310:79;;:::i;:::-;8272:119;8430:1;8455:67;8514:7;8505:6;8494:9;8490:22;8455:67;:::i;:::-;8445:77;;8401:131;8571:2;8597:53;8642:7;8633:6;8622:9;8618:22;8597:53;:::i;:::-;8587:63;;8542:118;8165:502;;;;;:::o;8673:357::-;8746:6;8795:2;8783:9;8774:7;8770:23;8766:32;8763:119;;;8801:79;;:::i;:::-;8763:119;8921:1;8946:67;9005:7;8996:6;8985:9;8981:22;8946:67;:::i;:::-;8936:77;;8892:131;8673:357;;;;:::o;9036:474::-;9104:6;9112;9161:2;9149:9;9140:7;9136:23;9132:32;9129:119;;;9167:79;;:::i;:::-;9129:119;9287:1;9312:53;9357:7;9348:6;9337:9;9333:22;9312:53;:::i;:::-;9302:63;;9258:117;9414:2;9440:53;9485:7;9476:6;9465:9;9461:22;9440:53;:::i;:::-;9430:63;;9385:118;9036:474;;;;;:::o;9516:104::-;9561:7;9590:24;9608:5;9590:24;:::i;:::-;9579:35;;9516:104;;;:::o;9626:142::-;9729:32;9755:5;9729:32;:::i;:::-;9724:3;9717:45;9626:142;;:::o;9774:254::-;9883:4;9921:2;9910:9;9906:18;9898:26;;9934:87;10018:1;10007:9;10003:17;9994:6;9934:87;:::i;:::-;9774:254;;;;:::o;10034:169::-;10118:11;10152:6;10147:3;10140:19;10192:4;10187:3;10183:14;10168:29;;10034:169;;;;:::o;10209:175::-;10349:27;10345:1;10337:6;10333:14;10326:51;10209:175;:::o;10390:366::-;10532:3;10553:67;10617:2;10612:3;10553:67;:::i;:::-;10546:74;;10629:93;10718:3;10629:93;:::i;:::-;10747:2;10742:3;10738:12;10731:19;;10390:366;;;:::o;10762:419::-;10928:4;10966:2;10955:9;10951:18;10943:26;;11015:9;11009:4;11005:20;11001:1;10990:9;10986:17;10979:47;11043:131;11169:4;11043:131;:::i;:::-;11035:139;;10762:419;;;:::o;11187:166::-;11327:18;11323:1;11315:6;11311:14;11304:42;11187:166;:::o;11359:366::-;11501:3;11522:67;11586:2;11581:3;11522:67;:::i;:::-;11515:74;;11598:93;11687:3;11598:93;:::i;:::-;11716:2;11711:3;11707:12;11700:19;;11359:366;;;:::o;11731:419::-;11897:4;11935:2;11924:9;11920:18;11912:26;;11984:9;11978:4;11974:20;11970:1;11959:9;11955:17;11948:47;12012:131;12138:4;12012:131;:::i;:::-;12004:139;;11731:419;;;:::o;12156:169::-;12296:21;12292:1;12284:6;12280:14;12273:45;12156:169;:::o;12331:366::-;12473:3;12494:67;12558:2;12553:3;12494:67;:::i;:::-;12487:74;;12570:93;12659:3;12570:93;:::i;:::-;12688:2;12683:3;12679:12;12672:19;;12331:366;;;:::o;12703:419::-;12869:4;12907:2;12896:9;12892:18;12884:26;;12956:9;12950:4;12946:20;12942:1;12931:9;12927:17;12920:47;12984:131;13110:4;12984:131;:::i;:::-;12976:139;;12703:419;;;:::o;13128:180::-;13176:77;13173:1;13166:88;13273:4;13270:1;13263:15;13297:4;13294:1;13287:15;13314:194;13354:4;13374:20;13392:1;13374:20;:::i;:::-;13369:25;;13408:20;13426:1;13408:20;:::i;:::-;13403:25;;13452:1;13449;13445:9;13437:17;;13476:1;13470:4;13467:11;13464:37;;;13481:18;;:::i;:::-;13464:37;13314:194;;;;:::o;13514:168::-;13654:20;13650:1;13642:6;13638:14;13631:44;13514:168;:::o;13688:366::-;13830:3;13851:67;13915:2;13910:3;13851:67;:::i;:::-;13844:74;;13927:93;14016:3;13927:93;:::i;:::-;14045:2;14040:3;14036:12;14029:19;;13688:366;;;:::o;14060:419::-;14226:4;14264:2;14253:9;14249:18;14241:26;;14313:9;14307:4;14303:20;14299:1;14288:9;14284:17;14277:47;14341:131;14467:4;14341:131;:::i;:::-;14333:139;;14060:419;;;:::o;14485:191::-;14525:3;14544:20;14562:1;14544:20;:::i;:::-;14539:25;;14578:20;14596:1;14578:20;:::i;:::-;14573:25;;14621:1;14618;14614:9;14607:16;;14642:3;14639:1;14636:10;14633:36;;;14649:18;;:::i;:::-;14633:36;14485:191;;;;:::o;14682:332::-;14803:4;14841:2;14830:9;14826:18;14818:26;;14854:71;14922:1;14911:9;14907:17;14898:6;14854:71;:::i;:::-;14935:72;15003:2;14992:9;14988:18;14979:6;14935:72;:::i;:::-;14682:332;;;;;:::o;15020:182::-;15160:34;15156:1;15148:6;15144:14;15137:58;15020:182;:::o;15208:366::-;15350:3;15371:67;15435:2;15430:3;15371:67;:::i;:::-;15364:74;;15447:93;15536:3;15447:93;:::i;:::-;15565:2;15560:3;15556:12;15549:19;;15208:366;;;:::o;15580:419::-;15746:4;15784:2;15773:9;15769:18;15761:26;;15833:9;15827:4;15823:20;15819:1;15808:9;15804:17;15797:47;15861:131;15987:4;15861:131;:::i;:::-;15853:139;;15580:419;;;:::o;16005:177::-;16145:29;16141:1;16133:6;16129:14;16122:53;16005:177;:::o;16188:366::-;16330:3;16351:67;16415:2;16410:3;16351:67;:::i;:::-;16344:74;;16427:93;16516:3;16427:93;:::i;:::-;16545:2;16540:3;16536:12;16529:19;;16188:366;;;:::o;16560:419::-;16726:4;16764:2;16753:9;16749:18;16741:26;;16813:9;16807:4;16803:20;16799:1;16788:9;16784:17;16777:47;16841:131;16967:4;16841:131;:::i;:::-;16833:139;;16560:419;;;:::o;16985:105::-;17021:7;17061:22;17054:5;17050:34;17039:45;;16985:105;;;:::o;17096:120::-;17168:23;17185:5;17168:23;:::i;:::-;17161:5;17158:34;17148:62;;17206:1;17203;17196:12;17148:62;17096:120;:::o;17222:141::-;17278:5;17309:6;17303:13;17294:22;;17325:32;17351:5;17325:32;:::i;:::-;17222:141;;;;:::o;17369:76::-;17405:7;17434:5;17423:16;;17369:76;;;:::o;17451:120::-;17523:23;17540:5;17523:23;:::i;:::-;17516:5;17513:34;17503:62;;17561:1;17558;17551:12;17503:62;17451:120;:::o;17577:141::-;17633:5;17664:6;17658:13;17649:22;;17680:32;17706:5;17680:32;:::i;:::-;17577:141;;;;:::o;17724:143::-;17781:5;17812:6;17806:13;17797:22;;17828:33;17855:5;17828:33;:::i;:::-;17724:143;;;;:::o;17873:971::-;17976:6;17984;17992;18000;18008;18057:3;18045:9;18036:7;18032:23;18028:33;18025:120;;;18064:79;;:::i;:::-;18025:120;18184:1;18209:63;18264:7;18255:6;18244:9;18240:22;18209:63;:::i;:::-;18199:73;;18155:127;18321:2;18347:63;18402:7;18393:6;18382:9;18378:22;18347:63;:::i;:::-;18337:73;;18292:128;18459:2;18485:64;18541:7;18532:6;18521:9;18517:22;18485:64;:::i;:::-;18475:74;;18430:129;18598:2;18624:64;18680:7;18671:6;18660:9;18656:22;18624:64;:::i;:::-;18614:74;;18569:129;18737:3;18764:63;18819:7;18810:6;18799:9;18795:22;18764:63;:::i;:::-;18754:73;;18708:129;17873:971;;;;;;;;:::o;18850:164::-;18990:16;18986:1;18978:6;18974:14;18967:40;18850:164;:::o;19020:366::-;19162:3;19183:67;19247:2;19242:3;19183:67;:::i;:::-;19176:74;;19259:93;19348:3;19259:93;:::i;:::-;19377:2;19372:3;19368:12;19361:19;;19020:366;;;:::o;19392:419::-;19558:4;19596:2;19585:9;19581:18;19573:26;;19645:9;19639:4;19635:20;19631:1;19620:9;19616:17;19609:47;19673:131;19799:4;19673:131;:::i;:::-;19665:139;;19392:419;;;:::o;19817:223::-;19957:34;19953:1;19945:6;19941:14;19934:58;20026:6;20021:2;20013:6;20009:15;20002:31;19817:223;:::o;20046:366::-;20188:3;20209:67;20273:2;20268:3;20209:67;:::i;:::-;20202:74;;20285:93;20374:3;20285:93;:::i;:::-;20403:2;20398:3;20394:12;20387:19;;20046:366;;;:::o;20418:419::-;20584:4;20622:2;20611:9;20607:18;20599:26;;20671:9;20665:4;20661:20;20657:1;20646:9;20642:17;20635:47;20699:131;20825:4;20699:131;:::i;:::-;20691:139;;20418:419;;;:::o;20843:233::-;20882:3;20905:24;20923:5;20905:24;:::i;:::-;20896:33;;20951:66;20944:5;20941:77;20938:103;;21021:18;;:::i;:::-;20938:103;21068:1;21061:5;21057:13;21050:20;;20843:233;;;:::o;21082:169::-;21222:21;21218:1;21210:6;21206:14;21199:45;21082:169;:::o;21257:366::-;21399:3;21420:67;21484:2;21479:3;21420:67;:::i;:::-;21413:74;;21496:93;21585:3;21496:93;:::i;:::-;21614:2;21609:3;21605:12;21598:19;;21257:366;;;:::o;21629:419::-;21795:4;21833:2;21822:9;21818:18;21810:26;;21882:9;21876:4;21872:20;21868:1;21857:9;21853:17;21846:47;21910:131;22036:4;21910:131;:::i;:::-;21902:139;;21629:419;;;:::o;22054:134::-;22112:9;22145:37;22176:5;22145:37;:::i;:::-;22132:50;;22054:134;;;:::o;22194:147::-;22289:45;22328:5;22289:45;:::i;:::-;22284:3;22277:58;22194:147;;:::o;22347:458::-;22504:4;22542:2;22531:9;22527:18;22519:26;;22555:71;22623:1;22612:9;22608:17;22599:6;22555:71;:::i;:::-;22636:80;22712:2;22701:9;22697:18;22688:6;22636:80;:::i;:::-;22726:72;22794:2;22783:9;22779:18;22770:6;22726:72;:::i;:::-;22347:458;;;;;;:::o;22811:410::-;22851:7;22874:20;22892:1;22874:20;:::i;:::-;22869:25;;22908:20;22926:1;22908:20;:::i;:::-;22903:25;;22963:1;22960;22956:9;22985:30;23003:11;22985:30;:::i;:::-;22974:41;;23164:1;23155:7;23151:15;23148:1;23145:22;23125:1;23118:9;23098:83;23075:139;;23194:18;;:::i;:::-;23075:139;22859:362;22811:410;;;;:::o;23227:180::-;23275:77;23272:1;23265:88;23372:4;23369:1;23362:15;23396:4;23393:1;23386:15;23413:185;23453:1;23470:20;23488:1;23470:20;:::i;:::-;23465:25;;23504:20;23522:1;23504:20;:::i;:::-;23499:25;;23543:1;23533:35;;23548:18;;:::i;:::-;23533:35;23590:1;23587;23583:9;23578:14;;23413:185;;;;:::o;23604:225::-;23744:34;23740:1;23732:6;23728:14;23721:58;23813:8;23808:2;23800:6;23796:15;23789:33;23604:225;:::o;23835:366::-;23977:3;23998:67;24062:2;24057:3;23998:67;:::i;:::-;23991:74;;24074:93;24163:3;24074:93;:::i;:::-;24192:2;24187:3;24183:12;24176:19;;23835:366;;;:::o;24207:419::-;24373:4;24411:2;24400:9;24396:18;24388:26;;24460:9;24454:4;24450:20;24446:1;24435:9;24431:17;24424:47;24488:131;24614:4;24488:131;:::i;:::-;24480:139;;24207:419;;;:::o

Swarm Source

ipfs://deca6010cb209fd74914369ccb769d2a5b2da11df2b9854cffa643cb2f8768aa

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

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