ETH Price: $3,450.43 (+1.54%)
Gas: 11 Gwei

Contract

0xBF401F1cB0b372B809301Fd66a5a7AAB042D6fb9
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw160756622022-11-29 12:31:11596 days ago1669725071IN
0xBF401F1c...B042D6fb9
0 ETH0.0010002410.90834295
Withdraw160046402022-11-19 14:25:11605 days ago1668867911IN
0xBF401F1c...B042D6fb9
0 ETH0.0009604810.47479986
Withdraw159750572022-11-15 11:11:47610 days ago1668510707IN
0xBF401F1c...B042D6fb9
0 ETH0.0012985114.16125526
Withdraw159201212022-11-07 19:05:23617 days ago1667847923IN
0xBF401F1c...B042D6fb9
0 ETH0.0017038618.58184947
Withdraw159196102022-11-07 17:22:23617 days ago1667841743IN
0xBF401F1c...B042D6fb9
0 ETH0.0013738417.08019535
Withdraw157358812022-10-13 1:22:23643 days ago1665624143IN
0xBF401F1c...B042D6fb9
0 ETH0.0013830515.08321104
Stake156573002022-10-02 1:54:11654 days ago1664675651IN
0xBF401F1c...B042D6fb9
0 ETH0.000531534.77496781
Stake155955382022-09-23 10:45:59663 days ago1663929959IN
0xBF401F1c...B042D6fb9
0 ETH0.000154974.50402416
Stake155955362022-09-23 10:45:35663 days ago1663929935IN
0xBF401F1c...B042D6fb9
0 ETH0.00094125.23640205
Withdraw155541322022-09-17 15:16:11668 days ago1663427771IN
0xBF401F1c...B042D6fb9
0 ETH0.000527855.41194017
Stake155020882022-09-09 9:50:13677 days ago1662717013IN
0xBF401F1c...B042D6fb9
0 ETH0.0019502617.51602709
Withdraw154934912022-09-08 0:41:05678 days ago1662597665IN
0xBF401F1c...B042D6fb9
0 ETH0.000721337.8666578
Stake153907072022-08-22 14:18:20694 days ago1661177900IN
0xBF401F1c...B042D6fb9
0 ETH0.0027626924.81270001
Stake153365582022-08-14 0:23:14703 days ago1660436594IN
0xBF401F1c...B042D6fb9
0 ETH0.000733186.58571694
Withdraw152615662022-08-02 6:50:34715 days ago1659423034IN
0xBF401F1c...B042D6fb9
0 ETH0.000672027.32887931
Stake151918462022-07-22 10:32:13726 days ago1658485933IN
0xBF401F1c...B042D6fb9
0 ETH0.000160695
Stake151918282022-07-22 10:28:53726 days ago1658485733IN
0xBF401F1c...B042D6fb9
0 ETH0.000192976
Stake151918282022-07-22 10:28:53726 days ago1658485733IN
0xBF401F1c...B042D6fb9
0 ETH0.000160815
Withdraw151282592022-07-12 14:09:34735 days ago1657634974IN
0xBF401F1c...B042D6fb9
0 ETH0.0011844515.87841023
Stake149554342022-06-13 10:11:42765 days ago1655115102IN
0xBF401F1c...B042D6fb9
0 ETH0.0110821799.5327595
Withdraw149533462022-06-13 1:34:35765 days ago1655084075IN
0xBF401F1c...B042D6fb9
0 ETH0.00943279102.87144231
Stake148656342022-05-29 9:12:20780 days ago1653815540IN
0xBF401F1c...B042D6fb9
0 ETH0.000852338
Stake148296512022-05-23 12:44:45786 days ago1653309885IN
0xBF401F1c...B042D6fb9
0 ETH0.0033471418.6244163
Stake147848952022-05-16 7:22:07793 days ago1652685727IN
0xBF401F1c...B042D6fb9
0 ETH0.0024038521.58984017
Withdraw147844972022-05-16 5:43:56793 days ago1652679836IN
0xBF401F1c...B042D6fb9
0 ETH0.0016011717.46197928
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Professional_v8

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-04-13
*/

pragma solidity 0.5.16;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see `ERC20Detailed`.
 */

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

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

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

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

// File: openzeppelin-solidity/contracts/math/SafeMath.sol

pragma solidity 0.5.16;

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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

pragma solidity 0.5.16;

contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    constructor() internal {}

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode
        return msg.data;
    }
}

// File: @openzeppelin/contracts/ownership/Ownable.sol

pragma solidity 0.5.16;

contract Ownable is Context {
    address private _owner;

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

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

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

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

    function isOwner() public view returns (bool) {
        return _msgSender() == _owner;
    }

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

pragma solidity 0.5.16;

contract Professional_v8 is Ownable {
    using SafeMath for uint256;

    /**
     *  @dev Structs to store user staking data.
     */
    struct Deposits {
        uint256 depositAmount;
        uint256 depositTime;
        uint256 endTime;
        uint64 userIndex;
        bool paid;
        bool eligible;
    }

    /**
     *  @dev Structs to store interest rate change.
     */
    struct Rates {
        uint64 newInterestRate;
        uint256 timeStamp;
    }

    mapping(address => Deposits) private deposits;
    mapping(uint64 => Rates) public rates;
    mapping(address => bool) private hasStaked;

    address public tokenAddress;
    uint256 public stakedBalance;
    uint256 public rewardBalance;
    uint256 public stakedTotal;
    uint256 public totalReward;
    uint64 public index;
    uint64 public rate;
    uint256 public lockDuration;
    uint256 public eligibilityAmount;
    string public name;

    IERC20 public ERC20Interface;

    /**
     *  @dev Emitted when user stakes 'stakedAmount' value of tokens
     */
    event Staked(
        address indexed token,
        address indexed staker_,
        uint256 stakedAmount_
    );

    /**
     *  @dev Emitted when user withdraws his stakings
     */
    event PaidOut(
        address indexed token,
        address indexed staker_,
        uint256 amount_,
        uint256 reward_
    );

    /**
     *   @param
     *   name_ name of the contract
     *   tokenAddress_ contract address of the token
     *   rate_ rate multiplied by 100
     *   lockduration_ duration in days
     */
    constructor(
        string memory name_,
        address tokenAddress_,
        uint64 rate_,
        uint256 lockDuration_
    ) public Ownable() {
        name = name_;
        require(tokenAddress_ != address(0), "Zero token address");
        tokenAddress = tokenAddress_;
        lockDuration = lockDuration_;
        require(rate_ != 0, "Zero interest rate");
        rate = rate_;
        rates[index] = Rates(rate, block.timestamp);
    }

    /**
     *  Requirements:
     *  `rate_` New effective interest rate multiplied by 100
     *  @dev to set interest rates
     */
    function setRate(uint64 rate_) external onlyOwner {
        require(rate_ != 0, "Zero interest rate");
        rate = rate_;
        index++;
        rates[index] = Rates(rate_, block.timestamp);
    }

    /**
     *  Requirements:
     *  `amount_` Eligibility amount to be set for Professional Tier unlocks
     *  @dev to set eligibility amount
     */
    function setEligibilityAmount(
        uint256 eligibilityAmount_ //external
    ) external onlyOwner {
        eligibilityAmount = eligibilityAmount_;
    }

    /**
     *  Requirements:
     *  `lockduration_' lock days
     *  @dev to set lock duration days
     */
    function changeLockDuration(uint256 lockduration_) external onlyOwner {
        lockDuration = lockduration_;
    }

    /**
     *  Requirements:
     *  `user_` User wallet address
     *  @dev to view eligibility status of user
     */
    function eligibility(address user_) external view returns (bool) {
        return deposits[user_].eligible;
    }

    /**
     *  Requirements:
     *  `rewardAmount` rewards to be added to the staking contract
     *  @dev to add rewards to the staking contract
     *  once the allowance is given to this contract for 'rewardAmount' by the user
     */
    function addReward(uint256 rewardAmount)
        external
        _hasAllowance(msg.sender, rewardAmount)
        returns (bool)
    {
        require(rewardAmount > 0, "Reward must be positive");
        address from = msg.sender;

        if (!_payMe(from, rewardAmount)) {
            return false;
        }

        totalReward = totalReward.add(rewardAmount);
        rewardBalance = rewardBalance.add(rewardAmount);
        return true;
    }

    /**
     *  Requirements:
     *  `user` User wallet address
     *  @dev returns user staking data
     */
    function userDeposits(address user)
        external
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            bool
        )
    {
        if (hasStaked[user]) {
            return (
                deposits[user].depositAmount,
                deposits[user].depositTime,
                deposits[user].endTime,
                deposits[user].userIndex,
                deposits[user].paid
            );
        }
    }

    /**
     *  Requirements:
     *  `amount` Amount to be staked
     /**
     *  @dev to stake 'amount' value of tokens 
     *  once the user has given allowance to the staking contract
     */
    function stake(uint256 amount)
        external
        _hasAllowance(msg.sender, amount)
        returns (bool)
    {
        require(amount > 0, "Can't stake 0 amount");
        address from = msg.sender;
        require(!hasStaked[from], "Already Staked");
        return (_stake(from, amount));
    }

    function _stake(address from, uint256 amount) private returns (bool) {
        if (!_payMe(from, amount)) {
            return false;
        }

        hasStaked[from] = true;
        bool stakerEligibility;
        if (amount >= eligibilityAmount) {
            stakerEligibility = true;
        }

        deposits[from] = Deposits(
            amount,
            block.timestamp,
            block.timestamp.add((lockDuration.mul(86400))), //lockDuration * 24 * 3600
            index,
            false,
            stakerEligibility
        );

        emit Staked(tokenAddress, from, amount);

        stakedBalance = stakedBalance.add(amount);
        stakedTotal = stakedTotal.add(amount);
        return true;
    }

    /**
     * @dev to withdraw user stakings after the lock period ends.
     */
    function withdraw() external returns (bool) {
        address from = msg.sender;
        require(hasStaked[from], "No stakes found for user");
        require(
            block.timestamp >= deposits[from].endTime,
            "Requesting before lock time"
        );
        require(!deposits[from].paid, "Already paid out");
        return (_withdraw(from));
    }

    function _withdraw(address from) private returns (bool) {
        uint256 payOut = _calculate(from);
        uint256 amount = deposits[from].depositAmount;
        uint256 reward = payOut.sub(amount);
        require(reward <= rewardBalance, "Not enough rewards");

        stakedBalance = stakedBalance.sub(amount);
        rewardBalance = rewardBalance.sub(reward);
        deposits[from].paid = true;
        hasStaked[from] = false;
        if (deposits[from].eligible) {
            deposits[from].eligible = false;
        }

        if (_payDirect(from, payOut)) {
            emit PaidOut(tokenAddress, from, amount, reward);
            return true;
        }
        return false;
    }

    function emergencyWithdraw() external returns (bool) {
        address from = msg.sender;
        require(hasStaked[from], "No stakes found for user");
        require(
            block.timestamp >= deposits[from].endTime,
            "Requesting before lock time"
        );
        require(!deposits[from].paid, "Already paid out");

        return (_emergencyWithdraw(from));
    }

    function _emergencyWithdraw(address from) private returns (bool) {
        uint256 amount = deposits[from].depositAmount;
        stakedBalance = stakedBalance.sub(amount);
        deposits[from].paid = true;
        hasStaked[from] = false; //Check-Effects-Interactions pattern
        if (deposits[from].eligible) {
            deposits[from].eligible = false;
        }

        bool principalPaid = _payDirect(from, amount);
        require(principalPaid, "Error paying");
        emit PaidOut(tokenAddress, from, amount, 0);

        return true;
    }

    /**
     *  Requirements:
     *  `from` User wallet address
     * @dev to calculate the rewards based on user staked 'amount'
     * 'userIndex' - the index of the interest rate at the time of user stake.
     * 'depositTime' - time of staking
     */
    function calculate(address from) external view returns (uint256) {
        return _calculate(from);
    }

    function _calculate(address from) private view returns (uint256) {
        if (!hasStaked[from]) return 0;
        (
            uint256 amount,
            uint256 depositTime,
            uint256 endTime,
            uint64 userIndex
        ) =
            (
                deposits[from].depositAmount,
                deposits[from].depositTime,
                deposits[from].endTime,
                deposits[from].userIndex
            );

        uint256 time;
        uint256 interest;
        uint256 _lockduration = endTime.sub(depositTime);
        for (uint64 i = userIndex; i < index; i++) {
            //loop runs till the latest index/interest rate change
            if (endTime < rates[i + 1].timeStamp) {
                //if the change occurs after the endTime loop breaks
                break;
            } else {
                time = rates[i + 1].timeStamp.sub(depositTime);
                interest = amount.mul(rates[i].newInterestRate).mul(time).div(
                    _lockduration.mul(10000)
                ); //replace with (_lockduration * 10000)
                amount += interest;
                depositTime = rates[i + 1].timeStamp;
                userIndex++;
            }
        }

        if (depositTime < endTime) {
            //final calculation for the remaining time period
            time = endTime.sub(depositTime);

            interest = time
                .mul(amount)
                .mul(rates[userIndex].newInterestRate)
                .div(_lockduration.mul(10000)); //replace with (lockduration * 10000)

            amount += interest;
        }

        return (amount);
    }

    function _payMe(address payer, uint256 amount) private returns (bool) {
        return _payTo(payer, address(this), amount);
    }

    function _payTo(
        address allower,
        address receiver,
        uint256 amount
    ) private _hasAllowance(allower, amount) returns (bool) {
        ERC20Interface = IERC20(tokenAddress);
        return ERC20Interface.transferFrom(allower, receiver, amount);
    }

    function _payDirect(address to, uint256 amount) private returns (bool) {
        ERC20Interface = IERC20(tokenAddress);
        return ERC20Interface.transfer(to, amount);
    }

    modifier _hasAllowance(address allower, uint256 amount) {
        // Make sure the allower has provided the right allowance.
        ERC20Interface = IERC20(tokenAddress);
        uint256 ourAllowance = ERC20Interface.allowance(allower, address(this));
        require(amount <= ourAllowance, "Make sure to add enough allowance");
        _;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"address","name":"tokenAddress_","type":"address"},{"internalType":"uint64","name":"rate_","type":"uint64"},{"internalType":"uint256","name":"lockDuration_","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"staker_","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward_","type":"uint256"}],"name":"PaidOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"staker_","type":"address"},{"indexed":false,"internalType":"uint256","name":"stakedAmount_","type":"uint256"}],"name":"Staked","type":"event"},{"constant":true,"inputs":[],"name":"ERC20Interface","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"rewardAmount","type":"uint256"}],"name":"addReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"calculate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"lockduration_","type":"uint256"}],"name":"changeLockDuration","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user_","type":"address"}],"name":"eligibility","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"eligibilityAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"emergencyWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"index","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint64","name":"","type":"uint64"}],"name":"rates","outputs":[{"internalType":"uint64","name":"newInterestRate","type":"uint64"},{"internalType":"uint256","name":"timeStamp","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"eligibilityAmount_","type":"uint256"}],"name":"setEligibilityAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint64","name":"rate_","type":"uint64"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakedTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"userDeposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200359038038062003590833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291908051906020019092919080519060200190929190505050620001296200044c60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a383600c9080519060200190620001fc92919062000454565b50600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620002a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5a65726f20746f6b656e2061646472657373000000000000000000000000000081525060200191505060405180910390fd5b82600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a8190555060008267ffffffffffffffff1614156200036b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5a65726f20696e7465726573742072617465000000000000000000000000000081525060200191505060405180910390fd5b81600960086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506040518060400160405280600960089054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020014281525060026000600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550602082015181600101559050505050505062000503565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200049757805160ff1916838001178555620004c8565b82800160010185558215620004c8579182015b82811115620004c7578251825591602001919060010190620004aa565b5b509050620004d79190620004db565b5090565b6200050091905b80821115620004fc576000816000905550600101620004e2565b5090565b90565b61307d80620005136000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806363c36dec116100de5780638f32d59b11610097578063aa5c3ab411610071578063aa5c3ab4146106d1578063d66692a7146106ef578063db2e21bc1461070d578063f2fde38b1461072f5761018e565b80638f32d59b1461061f5780639d76ea5814610641578063a694fc3a1461068b5761018e565b806363c36dec146104ed578063715018a614610549578063715d94021461055357806374de4ec414610571578063750142e6146105b75780638da5cb5b146105d55761018e565b80632986c0e51161014b5780633ccfd60b116101255780633ccfd60b146104275780633e4134831461044957806350003ca6146104775780635b9f0016146104cf5761018e565b80632986c0e51461038b5780632c4e722e146103bd578063398327e6146103ef5761018e565b8063045544431461019357806306fdde03146101b15780630ba36dcd146102345780630f0a3d13146102ac5780631bbc4b831461031357806327a59fb81461035d575b600080fd5b61019b610773565b6040518082815260200191505060405180910390f35b6101b9610779565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f95780820151818401526020810190506101de565b50505050905090810190601f1680156102265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766004803603602081101561024a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610817565b60405180868152602001858152602001848152602001838152602001821515151581526020019550505050505060405180910390f35b6102e2600480360360208110156102c257600080fd5b81019080803567ffffffffffffffff169060200190929190505050610a07565b604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390f35b61031b610a3f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103896004803603602081101561037357600080fd5b8101908080359060200190929190505050610a65565b005b610393610ae9565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b6103c5610b03565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b6104256004803603602081101561040557600080fd5b81019080803567ffffffffffffffff169060200190929190505050610b1d565b005b61042f610d23565b604051808215151515815260200191505060405180910390f35b6104756004803603602081101561045f57600080fd5b8101908080359060200190929190505050610f72565b005b6104b96004803603602081101561048d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff6565b6040518082815260200191505060405180910390f35b6104d7611008565b6040518082815260200191505060405180910390f35b61052f6004803603602081101561050357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061100e565b604051808215151515815260200191505060405180910390f35b610551611067565b005b61055b6111a0565b6040518082815260200191505060405180910390f35b61059d6004803603602081101561058757600080fd5b81019080803590602001909291905050506111a6565b604051808215151515815260200191505060405180910390f35b6105bf61144f565b6040518082815260200191505060405180910390f35b6105dd611455565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61062761147e565b604051808215151515815260200191505060405180910390f35b6106496114dc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106b7600480360360208110156106a157600080fd5b8101908080359060200190929190505050611502565b604051808215151515815260200191505060405180910390f35b6106d9611824565b6040518082815260200191505060405180910390f35b6106f761182a565b6040518082815260200191505060405180910390f35b610715611830565b604051808215151515815260200191505060405180910390f35b6107716004803603602081101561074557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a7f565b005b600a5481565b600c8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561080f5780601f106107e45761010080835404028352916020019161080f565b820191906000526020600020905b8154815290600101906020018083116107f257829003601f168201915b505050505081565b6000806000806000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156109fd57600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900467ffffffffffffffff16600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160089054906101000a900460ff168167ffffffffffffffff169150945094509450945094506109fe565b5b91939590929450565b60026020528060005260406000206000915090508060000160009054906101000a900467ffffffffffffffff16908060010154905082565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a6d61147e565b610adf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b600960009054906101000a900467ffffffffffffffff1681565b600960089054906101000a900467ffffffffffffffff1681565b610b2561147e565b610b97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008167ffffffffffffffff161415610c18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5a65726f20696e7465726573742072617465000000000000000000000000000081525060200191505060405180910390fd5b80600960086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506009600081819054906101000a900467ffffffffffffffff168092919060010191906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505060405180604001604052808267ffffffffffffffff1681526020014281525060026000600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506020820151816001015590505050565b600080339050600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610de8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f207374616b657320666f756e6420666f722075736572000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154421015610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f52657175657374696e67206265666f7265206c6f636b2074696d65000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160089054906101000a900460ff1615610f63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c72656164792070616964206f75740000000000000000000000000000000081525060200191505060405180910390fd5b610f6c81611b05565b91505090565b610f7a61147e565b610fec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b8190555050565b600061100182611e39565b9050919050565b60055481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160099054906101000a900460ff169050919050565b61106f61147e565b6110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b60003382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156112e257600080fd5b505afa1580156112f6573d6000803e3d6000fd5b505050506040513d602081101561130c57600080fd5b8101908080519060200190929190505050905080821115611378576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe16021913960400191505060405180910390fd5b600085116113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f526577617264206d75737420626520706f73697469766500000000000000000081525060200191505060405180910390fd5b60003390506113fd8187612239565b61140b576000945050611447565b6114208660085461224e90919063ffffffff16565b60088190555061143b8660065461224e90919063ffffffff16565b60068190555060019450505b505050919050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114c06122d6565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d602081101561166857600080fd5b81019080805190602001909291905050509050808211156116d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe16021913960400191505060405180910390fd5b6000851161174a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f43616e2774207374616b65203020616d6f756e7400000000000000000000000081525060200191505060405180910390fd5b6000339050600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f416c7265616479205374616b656400000000000000000000000000000000000081525060200191505060405180910390fd5b61181981876122de565b945050505050919050565b60065481565b60075481565b600080339050600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f207374616b657320666f756e6420666f722075736572000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201544210156119ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f52657175657374696e67206265666f7265206c6f636b2074696d65000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160089054906101000a900460ff1615611a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c72656164792070616964206f75740000000000000000000000000000000081525060200191505060405180910390fd5b611a7981612572565b91505090565b611a8761147e565b611af9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611b0281612854565b50565b600080611b1183611e39565b90506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000611b6f828461299890919063ffffffff16565b9050600654811115611be9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682072657761726473000000000000000000000000000081525060200191505060405180910390fd5b611bfe8260055461299890919063ffffffff16565b600581905550611c198160065461299890919063ffffffff16565b60068190555060018060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160086101000a81548160ff0219169083151502179055506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160099054906101000a900460ff1615611d82576000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160096101000a81548160ff0219169083151502179055505b611d8c8584612a21565b15611e2c578473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f85ab59351da11b79336de7647172267c33bf533ee87d9d292441c2672177159b8484604051808381526020018281526020019250505060405180910390a360019350505050611e34565b600093505050505b919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e955760009050612234565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900467ffffffffffffffff1693509350935093506000806000611fdb868661299890919063ffffffff16565b905060008490505b600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff16101561217057600260006001830167ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001015486101561204f57612170565b61208f87600260006001850167ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001015461299890919063ffffffff16565b93506121246120a961271084612b7290919063ffffffff16565b61211686612108600260008767ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff168d612b7290919063ffffffff16565b612b7290919063ffffffff16565b612bf890919063ffffffff16565b92508288019750600260006001830167ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060010154965084806001019550508080600101915050611fe3565b50848610156122295761218c868661299890919063ffffffff16565b92506122216121a661271083612b7290919063ffffffff16565b612213600260008867ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff166122058b88612b7290919063ffffffff16565b612b7290919063ffffffff16565b612bf890919063ffffffff16565b915081870196505b869750505050505050505b919050565b6000612246833084612c87565b905092915050565b6000808284019050838110156122cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b60006122ea8383612239565b6122f7576000905061256c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600b54831061235f57600190505b6040518060c001604052808481526020014281526020016123a061239162015180600a54612b7290919063ffffffff16565b4261224e90919063ffffffff16565b8152602001600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001600015158152602001821515815250600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160030160086101000a81548160ff02191690831515021790555060a08201518160030160096101000a81548160ff0219169083151502179055509050508373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5dac0c1b1112564a045ba943c9d50270893e8e826c49be8e7073adc713ab7bd7856040518082815260200191505060405180910390a36125458360055461224e90919063ffffffff16565b6005819055506125608360075461224e90919063ffffffff16565b60078190555060019150505b92915050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506125cf8160055461299890919063ffffffff16565b60058190555060018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160086101000a81548160ff0219169083151502179055506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160099054906101000a900460ff1615612738576000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160096101000a81548160ff0219169083151502179055505b60006127448483612a21565b9050806127b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f4572726f7220706179696e67000000000000000000000000000000000000000081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f85ab59351da11b79336de7647172267c33bf533ee87d9d292441c2672177159b846000604051808381526020018281526020019250505060405180910390a3600192505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806130026026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115612a10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b2f57600080fd5b505af1158015612b43573d6000803e3d6000fd5b505050506040513d6020811015612b5957600080fd5b8101908080519060200190929190505050905092915050565b600080831415612b855760009050612bf2565b6000828402905082848281612b9657fe5b0414612bed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130286021913960400191505060405180910390fd5b809150505b92915050565b6000808211612c6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481612c7a57fe5b0490508091505092915050565b60008382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015612dc357600080fd5b505afa158015612dd7573d6000803e3d6000fd5b505050506040513d6020811015612ded57600080fd5b8101908080519060200190929190505050905080821115612e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe16021913960400191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8888886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612f9957600080fd5b505af1158015612fad573d6000803e3d6000fd5b505050506040513d6020811015612fc357600080fd5b81019080805190602001909291905050509350505050939250505056fe4d616b65207375726520746f2061646420656e6f75676820616c6c6f77616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582033881f354c5e2379944b8ae5262f69ac717dc8f83800e47ce15d29e2a8d0b17c64736f6c6343000510003200000000000000000000000000000000000000000000000000000000000000800000000000000000000000001de5e000c41c8d35b9f1f4985c23988f05831057000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000c50726f66657373696f6e616c0000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c806363c36dec116100de5780638f32d59b11610097578063aa5c3ab411610071578063aa5c3ab4146106d1578063d66692a7146106ef578063db2e21bc1461070d578063f2fde38b1461072f5761018e565b80638f32d59b1461061f5780639d76ea5814610641578063a694fc3a1461068b5761018e565b806363c36dec146104ed578063715018a614610549578063715d94021461055357806374de4ec414610571578063750142e6146105b75780638da5cb5b146105d55761018e565b80632986c0e51161014b5780633ccfd60b116101255780633ccfd60b146104275780633e4134831461044957806350003ca6146104775780635b9f0016146104cf5761018e565b80632986c0e51461038b5780632c4e722e146103bd578063398327e6146103ef5761018e565b8063045544431461019357806306fdde03146101b15780630ba36dcd146102345780630f0a3d13146102ac5780631bbc4b831461031357806327a59fb81461035d575b600080fd5b61019b610773565b6040518082815260200191505060405180910390f35b6101b9610779565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f95780820151818401526020810190506101de565b50505050905090810190601f1680156102265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766004803603602081101561024a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610817565b60405180868152602001858152602001848152602001838152602001821515151581526020019550505050505060405180910390f35b6102e2600480360360208110156102c257600080fd5b81019080803567ffffffffffffffff169060200190929190505050610a07565b604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390f35b61031b610a3f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103896004803603602081101561037357600080fd5b8101908080359060200190929190505050610a65565b005b610393610ae9565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b6103c5610b03565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b6104256004803603602081101561040557600080fd5b81019080803567ffffffffffffffff169060200190929190505050610b1d565b005b61042f610d23565b604051808215151515815260200191505060405180910390f35b6104756004803603602081101561045f57600080fd5b8101908080359060200190929190505050610f72565b005b6104b96004803603602081101561048d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff6565b6040518082815260200191505060405180910390f35b6104d7611008565b6040518082815260200191505060405180910390f35b61052f6004803603602081101561050357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061100e565b604051808215151515815260200191505060405180910390f35b610551611067565b005b61055b6111a0565b6040518082815260200191505060405180910390f35b61059d6004803603602081101561058757600080fd5b81019080803590602001909291905050506111a6565b604051808215151515815260200191505060405180910390f35b6105bf61144f565b6040518082815260200191505060405180910390f35b6105dd611455565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61062761147e565b604051808215151515815260200191505060405180910390f35b6106496114dc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106b7600480360360208110156106a157600080fd5b8101908080359060200190929190505050611502565b604051808215151515815260200191505060405180910390f35b6106d9611824565b6040518082815260200191505060405180910390f35b6106f761182a565b6040518082815260200191505060405180910390f35b610715611830565b604051808215151515815260200191505060405180910390f35b6107716004803603602081101561074557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a7f565b005b600a5481565b600c8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561080f5780601f106107e45761010080835404028352916020019161080f565b820191906000526020600020905b8154815290600101906020018083116107f257829003601f168201915b505050505081565b6000806000806000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156109fd57600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900467ffffffffffffffff16600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160089054906101000a900460ff168167ffffffffffffffff169150945094509450945094506109fe565b5b91939590929450565b60026020528060005260406000206000915090508060000160009054906101000a900467ffffffffffffffff16908060010154905082565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a6d61147e565b610adf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b600960009054906101000a900467ffffffffffffffff1681565b600960089054906101000a900467ffffffffffffffff1681565b610b2561147e565b610b97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008167ffffffffffffffff161415610c18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5a65726f20696e7465726573742072617465000000000000000000000000000081525060200191505060405180910390fd5b80600960086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506009600081819054906101000a900467ffffffffffffffff168092919060010191906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505060405180604001604052808267ffffffffffffffff1681526020014281525060026000600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506020820151816001015590505050565b600080339050600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610de8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f207374616b657320666f756e6420666f722075736572000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154421015610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f52657175657374696e67206265666f7265206c6f636b2074696d65000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160089054906101000a900460ff1615610f63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c72656164792070616964206f75740000000000000000000000000000000081525060200191505060405180910390fd5b610f6c81611b05565b91505090565b610f7a61147e565b610fec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b8190555050565b600061100182611e39565b9050919050565b60055481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160099054906101000a900460ff169050919050565b61106f61147e565b6110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b60003382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156112e257600080fd5b505afa1580156112f6573d6000803e3d6000fd5b505050506040513d602081101561130c57600080fd5b8101908080519060200190929190505050905080821115611378576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe16021913960400191505060405180910390fd5b600085116113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f526577617264206d75737420626520706f73697469766500000000000000000081525060200191505060405180910390fd5b60003390506113fd8187612239565b61140b576000945050611447565b6114208660085461224e90919063ffffffff16565b60088190555061143b8660065461224e90919063ffffffff16565b60068190555060019450505b505050919050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114c06122d6565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d602081101561166857600080fd5b81019080805190602001909291905050509050808211156116d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe16021913960400191505060405180910390fd5b6000851161174a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f43616e2774207374616b65203020616d6f756e7400000000000000000000000081525060200191505060405180910390fd5b6000339050600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f416c7265616479205374616b656400000000000000000000000000000000000081525060200191505060405180910390fd5b61181981876122de565b945050505050919050565b60065481565b60075481565b600080339050600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f207374616b657320666f756e6420666f722075736572000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201544210156119ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f52657175657374696e67206265666f7265206c6f636b2074696d65000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160089054906101000a900460ff1615611a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c72656164792070616964206f75740000000000000000000000000000000081525060200191505060405180910390fd5b611a7981612572565b91505090565b611a8761147e565b611af9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611b0281612854565b50565b600080611b1183611e39565b90506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000611b6f828461299890919063ffffffff16565b9050600654811115611be9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682072657761726473000000000000000000000000000081525060200191505060405180910390fd5b611bfe8260055461299890919063ffffffff16565b600581905550611c198160065461299890919063ffffffff16565b60068190555060018060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160086101000a81548160ff0219169083151502179055506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160099054906101000a900460ff1615611d82576000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160096101000a81548160ff0219169083151502179055505b611d8c8584612a21565b15611e2c578473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f85ab59351da11b79336de7647172267c33bf533ee87d9d292441c2672177159b8484604051808381526020018281526020019250505060405180910390a360019350505050611e34565b600093505050505b919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e955760009050612234565b600080600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900467ffffffffffffffff1693509350935093506000806000611fdb868661299890919063ffffffff16565b905060008490505b600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff16101561217057600260006001830167ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001015486101561204f57612170565b61208f87600260006001850167ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001015461299890919063ffffffff16565b93506121246120a961271084612b7290919063ffffffff16565b61211686612108600260008767ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff168d612b7290919063ffffffff16565b612b7290919063ffffffff16565b612bf890919063ffffffff16565b92508288019750600260006001830167ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060010154965084806001019550508080600101915050611fe3565b50848610156122295761218c868661299890919063ffffffff16565b92506122216121a661271083612b7290919063ffffffff16565b612213600260008867ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff166122058b88612b7290919063ffffffff16565b612b7290919063ffffffff16565b612bf890919063ffffffff16565b915081870196505b869750505050505050505b919050565b6000612246833084612c87565b905092915050565b6000808284019050838110156122cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b60006122ea8383612239565b6122f7576000905061256c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600b54831061235f57600190505b6040518060c001604052808481526020014281526020016123a061239162015180600a54612b7290919063ffffffff16565b4261224e90919063ffffffff16565b8152602001600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001600015158152602001821515815250600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160030160086101000a81548160ff02191690831515021790555060a08201518160030160096101000a81548160ff0219169083151502179055509050508373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5dac0c1b1112564a045ba943c9d50270893e8e826c49be8e7073adc713ab7bd7856040518082815260200191505060405180910390a36125458360055461224e90919063ffffffff16565b6005819055506125608360075461224e90919063ffffffff16565b60078190555060019150505b92915050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506125cf8160055461299890919063ffffffff16565b60058190555060018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160086101000a81548160ff0219169083151502179055506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160099054906101000a900460ff1615612738576000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160096101000a81548160ff0219169083151502179055505b60006127448483612a21565b9050806127b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f4572726f7220706179696e67000000000000000000000000000000000000000081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f85ab59351da11b79336de7647172267c33bf533ee87d9d292441c2672177159b846000604051808381526020018281526020019250505060405180910390a3600192505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806130026026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115612a10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b2f57600080fd5b505af1158015612b43573d6000803e3d6000fd5b505050506040513d6020811015612b5957600080fd5b8101908080519060200190929190505050905092915050565b600080831415612b855760009050612bf2565b6000828402905082848281612b9657fe5b0414612bed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130286021913960400191505060405180910390fd5b809150505b92915050565b6000808211612c6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481612c7a57fe5b0490508091505092915050565b60008382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015612dc357600080fd5b505afa158015612dd7573d6000803e3d6000fd5b505050506040513d6020811015612ded57600080fd5b8101908080519060200190929190505050905080821115612e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe16021913960400191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8888886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612f9957600080fd5b505af1158015612fad573d6000803e3d6000fd5b505050506040513d6020811015612fc357600080fd5b81019080805190602001909291905050509350505050939250505056fe4d616b65207375726520746f2061646420656e6f75676820616c6c6f77616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582033881f354c5e2379944b8ae5262f69ac717dc8f83800e47ce15d29e2a8d0b17c64736f6c63430005100032

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

00000000000000000000000000000000000000000000000000000000000000800000000000000000000000001de5e000c41c8d35b9f1f4985c23988f05831057000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000c50726f66657373696f6e616c0000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Professional
Arg [1] : tokenAddress_ (address): 0x1DE5e000C41C8d35b9f1f4985C23988f05831057
Arg [2] : rate_ (uint64): 362
Arg [3] : lockDuration_ (uint256): 60

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 0000000000000000000000001de5e000c41c8d35b9f1f4985c23988f05831057
Arg [2] : 000000000000000000000000000000000000000000000000000000000000016a
Arg [3] : 000000000000000000000000000000000000000000000000000000000000003c
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [5] : 50726f66657373696f6e616c0000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

4024:11154:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4024:11154:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4890:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4963:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4963:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8144:511;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8144:511:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4574:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4574:37:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4990:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6933:117;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6933:117:0;;;;;;;;;;;;;;;;;:::i;:::-;;4839:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4865:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6275:206;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6275:206:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10033:375;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6648:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6648:161:0;;;;;;;;;;;;;;;;;:::i;:::-;;12386:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12386:107:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4703:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7185:115;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7185:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3459:140;;;:::i;:::-;;4924:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7555:464;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7555:464:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4806:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3156:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3357:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4669:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8868:313;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8868:313:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4738:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4773:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11139:395;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3607:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3607:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4890:27;;;;:::o;4963:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8144:511::-;8244:7;8266;8288;8310;8332:4;8368:9;:15;8378:4;8368:15;;;;;;;;;;;;;;;;;;;;;;;;;8364:284;;;8426:8;:14;8435:4;8426:14;;;;;;;;;;;;;;;:28;;;8473:8;:14;8482:4;8473:14;;;;;;;;;;;;;;;:26;;;8518:8;:14;8527:4;8518:14;;;;;;;;;;;;;;;:22;;;8559:8;:14;8568:4;8559:14;;;;;;;;;;;;;;;:24;;;;;;;;;;;;8602:8;:14;8611:4;8602:14;;;;;;;;;;;;;;;:19;;;;;;;;;;;;8400:236;;;;;;;;;;;;;;;;;8364:284;8144:511;;;;;;;;:::o;4574:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4990:28::-;;;;;;;;;;;;;:::o;6933:117::-;3283:9;:7;:9::i;:::-;3275:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7029:13;7014:12;:28;;;;6933:117;:::o;4839:19::-;;;;;;;;;;;;;:::o;4865:18::-;;;;;;;;;;;;;:::o;6275:206::-;3283:9;:7;:9::i;:::-;3275:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6353:1;6344:5;:10;;;;6336:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6395:5;6388:4;;:12;;;;;;;;;;;;;;;;;;6411:5;;:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6444:29;;;;;;;;6450:5;6444:29;;;;;;6457:15;6444:29;;;6429:5;:12;6435:5;;;;;;;;;;;6429:12;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6275:206;:::o;10033:375::-;10071:4;10088:12;10103:10;10088:25;;10132:9;:15;10142:4;10132:15;;;;;;;;;;;;;;;;;;;;;;;;;10124:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10228:8;:14;10237:4;10228:14;;;;;;;;;;;;;;;:22;;;10209:15;:41;;10187:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10325:8;:14;10334:4;10325:14;;;;;;;;;;;;;;;:19;;;;;;;;;;;;10324:20;10316:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10384:15;10394:4;10384:9;:15::i;:::-;10376:24;;;10033:375;:::o;6648:161::-;3283:9;:7;:9::i;:::-;3275:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6783:18;6763:17;:38;;;;6648:161;:::o;12386:107::-;12442:7;12469:16;12480:4;12469:10;:16::i;:::-;12462:23;;12386:107;;;:::o;4703:28::-;;;;:::o;7185:115::-;7244:4;7268:8;:15;7277:5;7268:15;;;;;;;;;;;;;;;:24;;;;;;;;;;;;7261:31;;7185:115;;;:::o;3459:140::-;3283:9;:7;:9::i;:::-;3275:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3558:1;3521:40;;3542:6;;;;;;;;;;;3521:40;;;;;;;;;;;;3589:1;3572:6;;:19;;;;;;;;;;;;;;;;;;3459:140::o;4924:32::-;;;;:::o;7555:464::-;7681:4;7637:10;7649:12;14981;;;;;;;;;;;14957:14;;:37;;;;;;;;;;;;;;;;;;15005:20;15028:14;;;;;;;;;;;:24;;;15053:7;15070:4;15028:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15028:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15028:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15028:48:0;;;;;;;;;;;;;;;;15005:71;;15105:12;15095:6;:22;;15087:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7726:1;7711:12;:16;7703:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7766:12;7781:10;7766:25;;7809:26;7816:4;7822:12;7809:6;:26::i;:::-;7804:72;;7859:5;7852:12;;;;;7804:72;7902:29;7918:12;7902:11;;:15;;:29;;;;:::i;:::-;7888:11;:43;;;;7958:31;7976:12;7958:13;;:17;;:31;;;;:::i;:::-;7942:13;:47;;;;8007:4;8000:11;;;15166:1;7555:464;;;;;;:::o;4806:26::-;;;;:::o;3156:79::-;3194:7;3221:6;;;;;;;;;;;3214:13;;3156:79;:::o;3357:94::-;3397:4;3437:6;;;;;;;;;;;3421:22;;:12;:10;:12::i;:::-;:22;;;3414:29;;3357:94;:::o;4669:27::-;;;;;;;;;;;;;:::o;8868:313::-;8978:4;8940:10;8952:6;14981:12;;;;;;;;;;;14957:14;;:37;;;;;;;;;;;;;;;;;;15005:20;15028:14;;;;;;;;;;;:24;;;15053:7;15070:4;15028:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15028:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15028:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15028:48:0;;;;;;;;;;;;;;;;15005:71;;15105:12;15095:6;:22;;15087:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9017:1;9008:6;:10;9000:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9054:12;9069:10;9054:25;;9099:9;:15;9109:4;9099:15;;;;;;;;;;;;;;;;;;;;;;;;;9098:16;9090:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9152:20;9159:4;9165:6;9152;:20::i;:::-;9144:29;;;8868:313;;;;;;:::o;4738:28::-;;;;:::o;4773:26::-;;;;:::o;11139:395::-;11186:4;11203:12;11218:10;11203:25;;11247:9;:15;11257:4;11247:15;;;;;;;;;;;;;;;;;;;;;;;;;11239:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11343:8;:14;11352:4;11343:14;;;;;;;;;;;;;;;:22;;;11324:15;:41;;11302:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11440:8;:14;11449:4;11440:14;;;;;;;;;;;;;;;:19;;;;;;;;;;;;11439:20;11431:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11501:24;11520:4;11501:18;:24::i;:::-;11493:33;;;11139:395;:::o;3607:109::-;3283:9;:7;:9::i;:::-;3275:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3680:28;3699:8;3680:18;:28::i;:::-;3607:109;:::o;10416:715::-;10466:4;10483:14;10500:16;10511:4;10500:10;:16::i;:::-;10483:33;;10527:14;10544:8;:14;10553:4;10544:14;;;;;;;;;;;;;;;:28;;;10527:45;;10583:14;10600:18;10611:6;10600;:10;;:18;;;;:::i;:::-;10583:35;;10647:13;;10637:6;:23;;10629:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10712:25;10730:6;10712:13;;:17;;:25;;;;:::i;:::-;10696:13;:41;;;;10764:25;10782:6;10764:13;;:17;;:25;;;;:::i;:::-;10748:13;:41;;;;10822:4;10800:8;:14;10809:4;10800:14;;;;;;;;;;;;;;;:19;;;:26;;;;;;;;;;;;;;;;;;10855:5;10837:9;:15;10847:4;10837:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10875:8;:14;10884:4;10875:14;;;;;;;;;;;;;;;:23;;;;;;;;;;;;10871:87;;;10941:5;10915:8;:14;10924:4;10915:14;;;;;;;;;;;;;;;:23;;;:31;;;;;;;;;;;;;;;;;;10871:87;10974:24;10985:4;10991:6;10974:10;:24::i;:::-;10970:131;;;11042:4;11020:43;;11028:12;;;;;;;;;;;11020:43;;;11048:6;11056;11020:43;;;;;;;;;;;;;;;;;;;;;;;;11085:4;11078:11;;;;;;;10970:131;11118:5;11111:12;;;;;10416:715;;;;:::o;12501:1694::-;12557:7;12582:9;:15;12592:4;12582:15;;;;;;;;;;;;;;;;;;;;;;;;;12577:30;;12606:1;12599:8;;;;12577:30;12633:14;12662:19;12696:15;12726:16;12788:8;:14;12797:4;12788:14;;;;;;;;;;;;;;;:28;;;12835:8;:14;12844:4;12835:14;;;;;;;;;;;;;;;:26;;;12880:8;:14;12889:4;12880:14;;;;;;;;;;;;;;;:22;;;12921:8;:14;12930:4;12921:14;;;;;;;;;;;;;;;:24;;;;;;;;;;;;12618:342;;;;;;;;12973:12;12996:16;13023:21;13047:24;13059:11;13047:7;:11;;:24;;;;:::i;:::-;13023:48;;13087:8;13098:9;13087:20;;13082:679;13113:5;;;;;;;;;;;13109:9;;:1;:9;;;13082:679;;;13222:5;:12;13232:1;13228;:5;13222:12;;;;;;;;;;;;;;;:22;;;13212:7;:32;13208:542;;;13335:5;;13208:542;13388:39;13415:11;13388:5;:12;13398:1;13394;:5;13388:12;;;;;;;;;;;;;;;:22;;;:26;;:39;;;;:::i;:::-;13381:46;;13457:116;13530:24;13548:5;13530:13;:17;;:24;;;;:::i;:::-;13457:46;13498:4;13457:36;13468:5;:8;13474:1;13468:8;;;;;;;;;;;;;;;:24;;;;;;;;;;;;13457:36;;:6;:10;;:36;;;;:::i;:::-;:40;;:46;;;;:::i;:::-;:50;;:116;;;;:::i;:::-;13446:127;;13641:8;13631:18;;;;13682:5;:12;13692:1;13688;:5;13682:12;;;;;;;;;;;;;;;:22;;;13668:36;;13723:11;;;;;;;13120:3;;;;;;;13082:679;;;;13791:7;13777:11;:21;13773:387;;;13885:24;13897:11;13885:7;:11;;:24;;;;:::i;:::-;13878:31;;13937:138;14050:24;14068:5;14050:13;:17;;:24;;;;:::i;:::-;13937:90;13994:5;:16;14000:9;13994:16;;;;;;;;;;;;;;;:32;;;;;;;;;;;;13937:90;;:34;13964:6;13937:4;:26;;:34;;;;:::i;:::-;:56;;:90;;;;:::i;:::-;:112;;:138;;;;:::i;:::-;13926:149;;14140:8;14130:18;;;;13773:387;14180:6;14172:15;;;;;;;;;12501:1694;;;;:::o;14203:132::-;14267:4;14291:36;14298:5;14313:4;14320:6;14291;:36::i;:::-;14284:43;;14203:132;;;;:::o;1101:181::-;1159:7;1179:9;1195:1;1191;:5;1179:17;;1220:1;1215;:6;;1207:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1273:1;1266:8;;;1101:181;;;;:::o;2478:98::-;2523:15;2558:10;2551:17;;2478:98;:::o;9189:751::-;9252:4;9274:20;9281:4;9287:6;9274;:20::i;:::-;9269:66;;9318:5;9311:12;;;;9269:66;9365:4;9347:9;:15;9357:4;9347:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;9380;9427:17;;9417:6;:27;9413:84;;9481:4;9461:24;;9413:84;9526:230;;;;;;;;9549:6;9526:230;;;;9570:15;9526:230;;;;9600:46;9621:23;9638:5;9621:12;;:16;;:23;;;;:::i;:::-;9600:15;:19;;:46;;;;:::i;:::-;9526:230;;;;9688:5;;;;;;;;;;;9526:230;;;;;;9708:5;9526:230;;;;;;9728:17;9526:230;;;;;9509:8;:14;9518:4;9509:14;;;;;;;;;;;;;;;:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9795:4;9774:34;;9781:12;;;;;;;;;;;9774:34;;;9801:6;9774:34;;;;;;;;;;;;;;;;;;9837:25;9855:6;9837:13;;:17;;:25;;;;:::i;:::-;9821:13;:41;;;;9887:23;9903:6;9887:11;;:15;;:23;;;;:::i;:::-;9873:11;:37;;;;9928:4;9921:11;;;9189:751;;;;;:::o;11542:571::-;11601:4;11618:14;11635:8;:14;11644:4;11635:14;;;;;;;;;;;;;;;:28;;;11618:45;;11690:25;11708:6;11690:13;;:17;;:25;;;;:::i;:::-;11674:13;:41;;;;11748:4;11726:8;:14;11735:4;11726:14;;;;;;;;;;;;;;;:19;;;:26;;;;;;;;;;;;;;;;;;11781:5;11763:9;:15;11773:4;11763:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11838:8;:14;11847:4;11838:14;;;;;;;;;;;;;;;:23;;;;;;;;;;;;11834:87;;;11904:5;11878:8;:14;11887:4;11878:14;;;;;;;;;;;;;;;:23;;;:31;;;;;;;;;;;;;;;;;;11834:87;11933:18;11954:24;11965:4;11971:6;11954:10;:24::i;:::-;11933:45;;11997:13;11989:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12065:4;12043:38;;12051:12;;;;;;;;;;;12043:38;;;12071:6;12079:1;12043:38;;;;;;;;;;;;;;;;;;;;;;;;12101:4;12094:11;;;;11542:571;;;:::o;3724:266::-;3832:1;3812:22;;:8;:22;;;;3790:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3945:8;3916:38;;3937:6;;;;;;;;;;;3916:38;;;;;;;;;;;;3974:8;3965:6;;:17;;;;;;;;;;;;;;;;;;3724:266;:::o;1290:184::-;1348:7;1381:1;1376;:6;;1368:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1428:9;1444:1;1440;:5;1428:17;;1465:1;1458:8;;;1290:184;;;;:::o;14634:180::-;14699:4;14740:12;;;;;;;;;;;14716:14;;:37;;;;;;;;;;;;;;;;;;14771:14;;;;;;;;;;;:23;;;14795:2;14799:6;14771:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14771:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14771:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14771:35:0;;;;;;;;;;;;;;;;14764:42;;14634:180;;;;:::o;1482:250::-;1540:7;1569:1;1564;:6;1560:47;;;1594:1;1587:8;;;;1560:47;1619:9;1635:1;1631;:5;1619:17;;1664:1;1659;1655;:5;;;;;;:10;1647:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1723:1;1716:8;;;1482:250;;;;;:::o;1740:331::-;1798:7;1897:1;1893;:5;1885:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1940:9;1956:1;1952;:5;;;;;;1940:17;;2062:1;2055:8;;;1740:331;;;;:::o;14343:283::-;14492:4;14466:7;14475:6;14981:12;;;;;;;;;;;14957:14;;:37;;;;;;;;;;;;;;;;;;15005:20;15028:14;;;;;;;;;;;:24;;;15053:7;15070:4;15028:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15028:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15028:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15028:48:0;;;;;;;;;;;;;;;;15005:71;;15105:12;15095:6;:22;;15087:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14533:12;;;;;;;;;;;14509:14;;:37;;;;;;;;;;;;;;;;;;14564:14;;;;;;;;;;;:27;;;14592:7;14601:8;14611:6;14564:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14564:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14564:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14564:54:0;;;;;;;;;;;;;;;;14557:61;;14343:283;;;;;;;;:::o

Swarm Source

bzzr://33881f354c5e2379944b8ae5262f69ac717dc8f83800e47ce15d29e2a8d0b17c

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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