ETH Price: $2,984.56 (+1.04%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw215853422025-01-09 7:10:23345 days ago1736406623IN
0xcE3C8215...706F2EA46
0 ETH0.000362573.48789429
Exit146503272022-04-24 23:17:531335 days ago1650842273IN
0xcE3C8215...706F2EA46
0 ETH0.0040038641.63278671
Withdraw140165182022-01-16 12:28:531433 days ago1642336133IN
0xcE3C8215...706F2EA46
0 ETH0.0057739989.98668943
Get Reward140165102022-01-16 12:28:071433 days ago1642336087IN
0xcE3C8215...706F2EA46
0 ETH0.00918053107.00797962
Withdraw139712542022-01-09 12:02:231440 days ago1641729743IN
0xcE3C8215...706F2EA46
0 ETH0.00785268122.38276101
Withdraw139556862022-01-07 2:38:301443 days ago1641523110IN
0xcE3C8215...706F2EA46
0 ETH0.00974658151.89885356
Withdraw139410872022-01-04 20:21:311445 days ago1641327691IN
0xcE3C8215...706F2EA46
0 ETH0.00855618133.37153561
Stake139125972021-12-31 10:25:581449 days ago1640946358IN
0xcE3C8215...706F2EA46
0 ETH0.0077500667.23402343
Withdraw139120912021-12-31 8:30:281450 days ago1640939428IN
0xcE3C8215...706F2EA46
0 ETH0.006050587.74818711
Stake139103822021-12-31 2:21:411450 days ago1640917301IN
0xcE3C8215...706F2EA46
0 ETH0.01313075113.90114403
Get Reward138797082021-12-26 8:23:551455 days ago1640507035IN
0xcE3C8215...706F2EA46
0 ETH0.0027575838.90767736
Stake138665962021-12-24 7:34:481457 days ago1640331288IN
0xcE3C8215...706F2EA46
0 ETH0.0055195449.95877126
Get Reward138492232021-12-21 15:05:591459 days ago1640099159IN
0xcE3C8215...706F2EA46
0 ETH0.0056859163.60576482
Get Reward138345252021-12-19 8:41:061462 days ago1639903266IN
0xcE3C8215...706F2EA46
0 ETH0.0030199733.01560368
Get Reward138332112021-12-19 3:42:031462 days ago1639885323IN
0xcE3C8215...706F2EA46
0 ETH0.0043523348.70943189
Withdraw138331972021-12-19 3:38:091462 days ago1639885089IN
0xcE3C8215...706F2EA46
0 ETH0.0041000244.29916972
Stake138223612021-12-17 11:23:211463 days ago1639740201IN
0xcE3C8215...706F2EA46
0 ETH0.0053801246.30773756
Get Reward138114642021-12-15 18:50:321465 days ago1639594232IN
0xcE3C8215...706F2EA46
0 ETH0.0059185129.3888921
Get Reward138114642021-12-15 18:50:321465 days ago1639594232IN
0xcE3C8215...706F2EA46
0 ETH0.00481924105.35712807
Get Reward138114642021-12-15 18:50:321465 days ago1639594232IN
0xcE3C8215...706F2EA46
0 ETH0.00494573108.12238688
Get Reward138114642021-12-15 18:50:321465 days ago1639594232IN
0xcE3C8215...706F2EA46
0 ETH0.0067440775.47676929
Withdraw138110962021-12-15 17:33:551465 days ago1639589635IN
0xcE3C8215...706F2EA46
0 ETH0.01000452132.59282123
Withdraw137954952021-12-13 7:36:481468 days ago1639381008IN
0xcE3C8215...706F2EA46
0 ETH0.0037192540.18518103
Withdraw137919872021-12-12 18:36:321468 days ago1639334192IN
0xcE3C8215...706F2EA46
0 ETH0.0061559256.14000685
Withdraw137768522021-12-10 10:27:151470 days ago1639132035IN
0xcE3C8215...706F2EA46
0 ETH0.0031210945.27588281
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
StakeBUND

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-03-03
*/

pragma solidity ^0.5.0;


library Math {
    function max(uint256 a, uint256 b) internal pure returns (uint256) {
        return a >= b ? a : b;
    }

    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }

    function average(uint256 a, uint256 b) internal pure returns (uint256) {
        return (a / 2) + (b / 2) + (((a % 2) + (b % 2)) / 2);
    }
}

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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

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

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;

        return c;
    }

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Context {
    constructor() internal {}

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

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor() internal {
        _owner = msg.sender;
        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 msg.sender == _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;
    }
}

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

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

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

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

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

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

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

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash =
            0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;

        assembly {
            codehash := extcodehash(account)
        }
        return (codehash != 0x0 && codehash != accountHash);
    }

    function toPayable(address account)
        internal
        pure
        returns (address payable)
    {
        return address(uint160(account));
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        (bool success, ) = recipient.call.value(amount)("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }
}

library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        callOptionalReturn(
            token,
            abi.encodeWithSelector(token.transfer.selector, to, value)
        );
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        callOptionalReturn(
            token,
            abi.encodeWithSelector(token.transferFrom.selector, from, to, value)
        );
    }

    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(
            token,
            abi.encodeWithSelector(token.approve.selector, spender, value)
        );
    }

    function safeIncreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 newAllowance =
            token.allowance(address(this), spender).add(value);
        callOptionalReturn(
            token,
            abi.encodeWithSelector(
                token.approve.selector,
                spender,
                newAllowance
            )
        );
    }

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 newAllowance =
            token.allowance(address(this), spender).sub(
                value,
                "SafeERC20: decreased allowance below zero"
            );
        callOptionalReturn(
            token,
            abi.encodeWithSelector(
                token.approve.selector,
                spender,
                newAllowance
            )
        );
    }

    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) {
            // Return data is optional

            require(
                abi.decode(returndata, (bool)),
                "SafeERC20: ERC20 operation did not succeed"
            );
        }
    }
}

contract LPTokenWrapper is Ownable {
    using SafeMath for uint256;
    using SafeERC20 for IERC20;

    IERC20 public BUND = IERC20(0x8D3E855f3f55109D473735aB76F753218400fe96); // Approve and Transfer for Stake and Withdraw

    uint256 private _totalSupply;
    mapping(address => uint256) private _balances;

    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function stake(uint256 amount) public {
        _totalSupply = _totalSupply.add(amount);
        _balances[msg.sender] = _balances[msg.sender].add(amount);
        BUND.safeTransferFrom(msg.sender, address(this), amount);
    }

    function withdraw(uint256 amount) public {
        _totalSupply = _totalSupply.sub(amount);
        _balances[msg.sender] = _balances[msg.sender].sub(amount);
        BUND.safeTransfer(msg.sender, amount);
    }
}

contract StakeBUND is LPTokenWrapper {
    IERC20 public bundNFT = IERC20(0x92B3367515a7D2dF838c2ccD9F5e1Fc07D977C20); // Must be changed with Presale
    uint256 public constant duration = 30 days;
    
    uint256 public starttime = 1614749400;              //-----| Starts immediately after deploy |-----                           
    uint256 public periodFinish = 0;
    uint256 public rewardRate = 0;
    uint256 public lastUpdateTime;
    uint256 public rewardPerTokenStored;
    bool firstNotify;
  
    uint256 rewardAmount = 0;

    mapping(address => uint256) public userRewardPerTokenPaid;
    mapping(address => uint256) public rewards;

    event RewardAdded(uint256 reward);
    event Staked(address indexed user, uint256 amount);
    event Withdrawn(address indexed user, uint256 amount);
    event Rewarded(address indexed from, address indexed to, uint256 value);

    modifier checkStart() {
        require(
            block.timestamp >= starttime,
            "BUND_BUNDNFT staking pool not started yet."
        );
        _;
    }

    modifier updateReward(address account) {
        rewardPerTokenStored = rewardPerToken();
        lastUpdateTime = lastTimeRewardApplicable();
        if (account != address(0)) {
            rewards[account] = earned(account);
            userRewardPerTokenPaid[account] = rewardPerTokenStored;
        }
        _;
    }
    
    function lastTimeRewardApplicable() public view returns (uint256) {
        return Math.min(block.timestamp, periodFinish);
    }

    function rewardPerToken() public view returns (uint256) {
        if (totalSupply() == 0) {
            return rewardPerTokenStored;
        }
        return
            rewardPerTokenStored.add(
                lastTimeRewardApplicable()
                    .sub(lastUpdateTime)
                    .mul(rewardRate)
                    .mul(1e18)
                    .div(totalSupply())
            );
    }

    function earned(address account) public view returns (uint256) {
        return
            balanceOf(account)
                .mul(rewardPerToken().sub(userRewardPerTokenPaid[account]))
                .div(1e18)
                .add(rewards[account]);
    }

    function stake(uint256 amount) public updateReward(msg.sender) checkStart {
        require(amount > 0, "Cannot stake 0");
        super.stake(amount);
    }

    function withdraw(uint256 amount)
        public
        updateReward(msg.sender)
    {
        require(amount > 0, "Cannot withdraw 0");
        super.withdraw(amount);
    }

    // withdraw stake and get rewards at once
    function exit() external {
        withdraw(balanceOf(msg.sender));
        getReward();
    }

    function getReward() public updateReward(msg.sender){
        uint256 reward = earned(msg.sender);

        if (reward > 0) {
            rewards[msg.sender] = 0;
        
            bundNFT.safeTransfer(msg.sender, reward);
        }
        
    }

    function permitNotifyReward() public view returns (bool) {    //-----| If current reward session has completed |---------
        
        if(block.timestamp > starttime.add(duration)){
           return true;
        }
         
    }
 
    function notifyRewardRate(uint256 _reward) public updateReward(address(0)) onlyOwner{
       
        require(permitNotifyReward() == true || firstNotify == false, "Cannot notify until previous reward session is completed");
        
        rewardRate = _reward.div(duration);
       
        firstNotify = true;
        lastUpdateTime = block.timestamp;
        starttime = block.timestamp; 
        periodFinish = block.timestamp.add(duration);

    }
}

Contract Security Audit

Contract ABI

API
[{"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":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Rewarded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"constant":true,"inputs":[],"name":"BUND","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bundNFT","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"duration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_reward","type":"uint256"}],"name":"notifyRewardRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"permitNotifyReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"starttime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","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":"","type":"address"}],"name":"userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

6080604052738d3e855f3f55109d473735ab76f753218400fe96600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507392b3367515a7d2df838c2ccd9f5e1fc07d977c20600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555063603f1ed8600555600060065560006007556000600b55336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3611dfd806101906000396000f3fe608060405234801561001057600080fd5b50600436106101725760003560e01c80637b0a47ee116100de578063a694fc3a11610097578063df136d6511610071578063df136d6514610569578063e9fad8ee14610587578063ebe2b12b14610591578063f2fde38b146105af57610172565b8063a694fc3a146104ff578063c8f33c911461052d578063cd3daf9d1461054b57610172565b80637b0a47ee146103e157806380faa57d146103ff5780638b8763471461041d5780638da58897146104755780638da5cb5b146104935780638f32d59b146104dd57610172565b80632e1a7d4d116101305780632e1a7d4d146102f75780633d18b912146103255780633d52f5931461032f5780634041ef411461035157806370a082311461037f578063715018a6146103d757610172565b80628cc262146101775780630700037d146101cf5780630fb5a6b414610227578063117003fe1461024557806312e9df591461028f57806318160ddd146102d9575b600080fd5b6101b96004803603602081101561018d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105f3565b6040518082815260200191505060405180910390f35b610211600480360360208110156101e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106da565b6040518082815260200191505060405180910390f35b61022f6106f2565b6040518082815260200191505060405180910390f35b61024d6106f9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029761071f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102e1610745565b6040518082815260200191505060405180910390f35b6103236004803603602081101561030d57600080fd5b810190808035906020019092919050505061074f565b005b61032d6108b6565b005b610337610a47565b604051808215151515815260200191505060405180910390f35b61037d6004803603602081101561036757600080fd5b8101908080359060200190929190505050610a75565b005b6103c16004803603602081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cbb565b6040518082815260200191505060405180910390f35b6103df610d04565b005b6103e9610e3d565b6040518082815260200191505060405180910390f35b610407610e43565b6040518082815260200191505060405180910390f35b61045f6004803603602081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e56565b6040518082815260200191505060405180910390f35b61047d610e6e565b6040518082815260200191505060405180910390f35b61049b610e74565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104e5610e9d565b604051808215151515815260200191505060405180910390f35b61052b6004803603602081101561051557600080fd5b8101908080359060200190929190505050610ef4565b005b6105356110b6565b6040518082815260200191505060405180910390f35b6105536110bc565b6040518082815260200191505060405180910390f35b610571611154565b6040518082815260200191505060405180910390f35b61058f61115a565b005b610599611175565b6040518082815260200191505060405180910390f35b6105f1600480360360208110156105c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061117b565b005b60006106d3600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106c5670de0b6b3a76400006106b76106a0600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106926110bc565b61120190919063ffffffff16565b6106a988610cbb565b61124b90919063ffffffff16565b6112d190919063ffffffff16565b61131b90919063ffffffff16565b9050919050565b600d6020528060005260406000206000915090505481565b62278d0081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b336107586110bc565b600981905550610766610e43565b600881905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610833576107a9816105f3565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600082116108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b6108b2826113a3565b5050565b336108bf6110bc565b6009819055506108cd610e43565b600881905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461099a57610910816105f3565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60006109a5336105f3565b90506000811115610a43576000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a423382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114a39092919063ffffffff16565b5b5050565b6000610a6162278d0060055461131b90919063ffffffff16565b421115610a715760019050610a72565b5b90565b6000610a7f6110bc565b600981905550610a8d610e43565b600881905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b5a57610ad0816105f3565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b62610e9d565b610bd4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60011515610be0610a47565b15151480610c01575060001515600a60009054906101000a900460ff161515145b610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611cf66038913960400191505060405180910390fd5b610c6c62278d00836112d190919063ffffffff16565b6007819055506001600a60006101000a81548160ff0219169083151502179055504260088190555042600581905550610cb162278d004261131b90919063ffffffff16565b6006819055505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d0c610e9d565b610d7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b6000610e5142600654611574565b905090565b600c6020528060005260406000206000915090505481565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b33610efd6110bc565b600981905550610f0b610e43565b600881905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fd857610f4e816105f3565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600554421015611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611d54602a913960400191505060405180910390fd5b600082116110a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b6110b28261158d565b5050565b60085481565b6000806110c7610745565b14156110d7576009549050611151565b61114e61113d6110e5610745565b61112f670de0b6b3a7640000611121600754611113600854611105610e43565b61120190919063ffffffff16565b61124b90919063ffffffff16565b61124b90919063ffffffff16565b6112d190919063ffffffff16565b60095461131b90919063ffffffff16565b90505b90565b60095481565b61116b61116633610cbb565b61074f565b6111736108b6565b565b60065481565b611183610e9d565b6111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6111fe8161168f565b50565b600061124383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117d3565b905092915050565b60008083141561125e57600090506112cb565b600082840290508284828161126f57fe5b04146112c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611d7e6021913960400191505060405180910390fd5b809150505b92915050565b600061131383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611893565b905092915050565b600080828401905083811015611399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6113b88160025461120190919063ffffffff16565b60028190555061141081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120190919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114a03382600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114a39092919063ffffffff16565b50565b61156f838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611959565b505050565b60008183106115835781611585565b825b905092915050565b6115a28160025461131b90919063ffffffff16565b6002819055506115fa81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131b90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061168c333083600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ba4909392919063ffffffff16565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611715576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611d2e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000838311158290611880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561184557808201518184015260208101905061182a565b50505050905090810190601f1680156118725780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808311829061193f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156119045780820151818401526020810190506118e9565b50505050905090810190601f1680156119315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161194b57fe5b049050809150509392505050565b6119788273ffffffffffffffffffffffffffffffffffffffff16611caa565b6119ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310611a395780518252602082019150602081019050602083039250611a16565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611a9b576040519150601f19603f3d011682016040523d82523d6000602084013e611aa0565b606091505b509150915081611b18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115611b9e57808060200190516020811015611b3757600080fd5b8101908080519060200190929190505050611b9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611d9f602a913960400191505060405180910390fd5b5b50505050565b611ca4848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611959565b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b8214158015611cec5750808214155b9250505091905056fe43616e6e6f74206e6f7469667920756e74696c2070726576696f7573207265776172642073657373696f6e20697320636f6d706c657465644f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342554e445f42554e444e4654207374616b696e6720706f6f6c206e6f742073746172746564207965742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582021e04d350deafdcd1944a122a60b2ecf2dd1e1ce1214d5a5c68726416444e9c264736f6c63430005110032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101725760003560e01c80637b0a47ee116100de578063a694fc3a11610097578063df136d6511610071578063df136d6514610569578063e9fad8ee14610587578063ebe2b12b14610591578063f2fde38b146105af57610172565b8063a694fc3a146104ff578063c8f33c911461052d578063cd3daf9d1461054b57610172565b80637b0a47ee146103e157806380faa57d146103ff5780638b8763471461041d5780638da58897146104755780638da5cb5b146104935780638f32d59b146104dd57610172565b80632e1a7d4d116101305780632e1a7d4d146102f75780633d18b912146103255780633d52f5931461032f5780634041ef411461035157806370a082311461037f578063715018a6146103d757610172565b80628cc262146101775780630700037d146101cf5780630fb5a6b414610227578063117003fe1461024557806312e9df591461028f57806318160ddd146102d9575b600080fd5b6101b96004803603602081101561018d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105f3565b6040518082815260200191505060405180910390f35b610211600480360360208110156101e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106da565b6040518082815260200191505060405180910390f35b61022f6106f2565b6040518082815260200191505060405180910390f35b61024d6106f9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029761071f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102e1610745565b6040518082815260200191505060405180910390f35b6103236004803603602081101561030d57600080fd5b810190808035906020019092919050505061074f565b005b61032d6108b6565b005b610337610a47565b604051808215151515815260200191505060405180910390f35b61037d6004803603602081101561036757600080fd5b8101908080359060200190929190505050610a75565b005b6103c16004803603602081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cbb565b6040518082815260200191505060405180910390f35b6103df610d04565b005b6103e9610e3d565b6040518082815260200191505060405180910390f35b610407610e43565b6040518082815260200191505060405180910390f35b61045f6004803603602081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e56565b6040518082815260200191505060405180910390f35b61047d610e6e565b6040518082815260200191505060405180910390f35b61049b610e74565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104e5610e9d565b604051808215151515815260200191505060405180910390f35b61052b6004803603602081101561051557600080fd5b8101908080359060200190929190505050610ef4565b005b6105356110b6565b6040518082815260200191505060405180910390f35b6105536110bc565b6040518082815260200191505060405180910390f35b610571611154565b6040518082815260200191505060405180910390f35b61058f61115a565b005b610599611175565b6040518082815260200191505060405180910390f35b6105f1600480360360208110156105c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061117b565b005b60006106d3600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106c5670de0b6b3a76400006106b76106a0600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106926110bc565b61120190919063ffffffff16565b6106a988610cbb565b61124b90919063ffffffff16565b6112d190919063ffffffff16565b61131b90919063ffffffff16565b9050919050565b600d6020528060005260406000206000915090505481565b62278d0081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b336107586110bc565b600981905550610766610e43565b600881905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610833576107a9816105f3565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600082116108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b6108b2826113a3565b5050565b336108bf6110bc565b6009819055506108cd610e43565b600881905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461099a57610910816105f3565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60006109a5336105f3565b90506000811115610a43576000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a423382600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114a39092919063ffffffff16565b5b5050565b6000610a6162278d0060055461131b90919063ffffffff16565b421115610a715760019050610a72565b5b90565b6000610a7f6110bc565b600981905550610a8d610e43565b600881905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b5a57610ad0816105f3565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b62610e9d565b610bd4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60011515610be0610a47565b15151480610c01575060001515600a60009054906101000a900460ff161515145b610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611cf66038913960400191505060405180910390fd5b610c6c62278d00836112d190919063ffffffff16565b6007819055506001600a60006101000a81548160ff0219169083151502179055504260088190555042600581905550610cb162278d004261131b90919063ffffffff16565b6006819055505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d0c610e9d565b610d7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b6000610e5142600654611574565b905090565b600c6020528060005260406000206000915090505481565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b33610efd6110bc565b600981905550610f0b610e43565b600881905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fd857610f4e816105f3565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600554421015611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611d54602a913960400191505060405180910390fd5b600082116110a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b6110b28261158d565b5050565b60085481565b6000806110c7610745565b14156110d7576009549050611151565b61114e61113d6110e5610745565b61112f670de0b6b3a7640000611121600754611113600854611105610e43565b61120190919063ffffffff16565b61124b90919063ffffffff16565b61124b90919063ffffffff16565b6112d190919063ffffffff16565b60095461131b90919063ffffffff16565b90505b90565b60095481565b61116b61116633610cbb565b61074f565b6111736108b6565b565b60065481565b611183610e9d565b6111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6111fe8161168f565b50565b600061124383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117d3565b905092915050565b60008083141561125e57600090506112cb565b600082840290508284828161126f57fe5b04146112c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611d7e6021913960400191505060405180910390fd5b809150505b92915050565b600061131383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611893565b905092915050565b600080828401905083811015611399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6113b88160025461120190919063ffffffff16565b60028190555061141081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120190919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114a03382600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114a39092919063ffffffff16565b50565b61156f838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611959565b505050565b60008183106115835781611585565b825b905092915050565b6115a28160025461131b90919063ffffffff16565b6002819055506115fa81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131b90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061168c333083600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ba4909392919063ffffffff16565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611715576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611d2e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000838311158290611880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561184557808201518184015260208101905061182a565b50505050905090810190601f1680156118725780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808311829061193f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156119045780820151818401526020810190506118e9565b50505050905090810190601f1680156119315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161194b57fe5b049050809150509392505050565b6119788273ffffffffffffffffffffffffffffffffffffffff16611caa565b6119ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310611a395780518252602082019150602081019050602083039250611a16565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611a9b576040519150601f19603f3d011682016040523d82523d6000602084013e611aa0565b606091505b509150915081611b18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115611b9e57808060200190516020811015611b3757600080fd5b8101908080519060200190929190505050611b9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611d9f602a913960400191505060405180910390fd5b5b50505050565b611ca4848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611959565b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b8214158015611cec5750808214155b9250505091905056fe43616e6e6f74206e6f7469667920756e74696c2070726576696f7573207265776172642073657373696f6e20697320636f6d706c657465644f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342554e445f42554e444e4654207374616b696e6720706f6f6c206e6f742073746172746564207965742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582021e04d350deafdcd1944a122a60b2ecf2dd1e1ce1214d5a5c68726416444e9c264736f6c63430005110032

Deployed Bytecode Sourcemap

8782:3765:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8782:3765:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10780:265;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10780:265:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9402:42;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9402:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8939;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8826:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7888:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8104:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11221:181;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11221:181:0;;;;;;;;;;;;;;;;;:::i;:::-;;11562:259;;;:::i;:::-;;11829:241;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12079:465;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12079:465:0;;;;;;;;;;;;;;;;;:::i;:::-;;8203:110;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8203:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2879:140;;;:::i;:::-;;9164:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10213:131;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9338:57;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9338:57:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8994:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2578:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2779:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11053:160;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11053:160:0;;;;;;;;;;;;;;;;;:::i;:::-;;9200:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10352:420;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9236:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11457:97;;;:::i;:::-;;9126:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3027:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3027:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10780:265;10834:7;10874:163;11020:7;:16;11028:7;11020:16;;;;;;;;;;;;;;;;10874:123;10992:4;10874:95;10915:53;10936:22;:31;10959:7;10936:31;;;;;;;;;;;;;;;;10915:16;:14;:16::i;:::-;:20;;:53;;;;:::i;:::-;10874:18;10884:7;10874:9;:18::i;:::-;:40;;:95;;;;:::i;:::-;:117;;:123;;;;:::i;:::-;:145;;:163;;;;:::i;:::-;10854:183;;10780:265;;;:::o;9402:42::-;;;;;;;;;;;;;;;;;:::o;8939:::-;8974:7;8939:42;:::o;8826:74::-;;;;;;;;;;;;;:::o;7888:71::-;;;;;;;;;;;;;:::o;8104:91::-;8148:7;8175:12;;8168:19;;8104:91;:::o;11221:181::-;11293:10;9944:16;:14;:16::i;:::-;9921:20;:39;;;;9988:26;:24;:26::i;:::-;9971:14;:43;;;;10048:1;10029:21;;:7;:21;;;10025:157;;10086:15;10093:7;10086:6;:15::i;:::-;10067:7;:16;10075:7;10067:16;;;;;;;;;;;;;;;:34;;;;10150:20;;10116:22;:31;10139:7;10116:31;;;;;;;;;;;;;;;:54;;;;10025:157;11338:1;11329:6;:10;11321:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11372:22;11387:6;11372:14;:22::i;:::-;11221:181;;:::o;11562:259::-;11603:10;9944:16;:14;:16::i;:::-;9921:20;:39;;;;9988:26;:24;:26::i;:::-;9971:14;:43;;;;10048:1;10029:21;;:7;:21;;;10025:157;;10086:15;10093:7;10086:6;:15::i;:::-;10067:7;:16;10075:7;10067:16;;;;;;;;;;;;;;;:34;;;;10150:20;;10116:22;:31;10139:7;10116:31;;;;;;;;;;;;;;;:54;;;;10025:157;11625:14;11642:18;11649:10;11642:6;:18::i;:::-;11625:35;;11686:1;11677:6;:10;11673:131;;;11726:1;11704:7;:19;11712:10;11704:19;;;;;;;;;;;;;;;:23;;;;11752:40;11773:10;11785:6;11752:7;;;;;;;;;;;:20;;;;:40;;;;;:::i;:::-;11673:131;10192:1;11562:259;:::o;11829:241::-;11880:4;11991:23;8974:7;11991:9;;:13;;:23;;;;:::i;:::-;11973:15;:41;11970:82;;;12036:4;12029:11;;;;11970:82;11829:241;;:::o;12079:465::-;12150:1;9944:16;:14;:16::i;:::-;9921:20;:39;;;;9988:26;:24;:26::i;:::-;9971:14;:43;;;;10048:1;10029:21;;:7;:21;;;10025:157;;10086:15;10093:7;10086:6;:15::i;:::-;10067:7;:16;10075:7;10067:16;;;;;;;;;;;;;;;:34;;;;10150:20;;10116:22;:31;10139:7;10116:31;;;;;;;;;;;;;;;:54;;;;10025:157;2705:9;:7;:9::i;:::-;2697:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12215:4;12191:28;;:20;:18;:20::i;:::-;:28;;;:52;;;;12238:5;12223:20;;:11;;;;;;;;;;;:20;;;12191:52;12183:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12338:21;8974:7;12338;:11;;:21;;;;:::i;:::-;12325:10;:34;;;;12393:4;12379:11;;:18;;;;;;;;;;;;;;;;;;12425:15;12408:14;:32;;;;12463:15;12451:9;:27;;;;12505:29;8974:7;12505:15;:19;;:29;;;;:::i;:::-;12490:12;:44;;;;12079:465;;:::o;8203:110::-;8260:7;8287:9;:18;8297:7;8287:18;;;;;;;;;;;;;;;;8280:25;;8203:110;;;:::o;2879:140::-;2705:9;:7;:9::i;:::-;2697:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2978:1;2941:40;;2962:6;;;;;;;;;;;2941:40;;;;;;;;;;;;3009:1;2992:6;;:19;;;;;;;;;;;;;;;;;;2879:140::o;9164:29::-;;;;:::o;10213:131::-;10270:7;10297:39;10306:15;10323:12;;10297:8;:39::i;:::-;10290:46;;10213:131;:::o;9338:57::-;;;;;;;;;;;;;;;;;:::o;8994:37::-;;;;:::o;2578:79::-;2616:7;2643:6;;;;;;;;;;;2636:13;;2578:79;:::o;2779:92::-;2819:4;2857:6;;;;;;;;;;;2843:20;;:10;:20;;;2836:27;;2779:92;:::o;11053:160::-;11104:10;9944:16;:14;:16::i;:::-;9921:20;:39;;;;9988:26;:24;:26::i;:::-;9971:14;:43;;;;10048:1;10029:21;;:7;:21;;;10025:157;;10086:15;10093:7;10086:6;:15::i;:::-;10067:7;:16;10075:7;10067:16;;;;;;;;;;;;;;;:34;;;;10150:20;;10116:22;:31;10139:7;10116:31;;;;;;;;;;;;;;;:54;;;;10025:157;9764:9;;9745:15;:28;;9723:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11155:1;11146:6;:10;11138:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11186:19;11198:6;11186:11;:19::i;:::-;11053:160;;:::o;9200:29::-;;;;:::o;10352:420::-;10399:7;10440:1;10423:13;:11;:13::i;:::-;:18;10419:78;;;10465:20;;10458:27;;;;10419:78;10527:237;10570:179;10735:13;:11;:13::i;:::-;10570:138;10703:4;10570:106;10665:10;;10570:68;10623:14;;10570:26;:24;:26::i;:::-;:52;;:68;;;;:::i;:::-;:94;;:106;;;;:::i;:::-;:132;;:138;;;;:::i;:::-;:164;;:179;;;;:::i;:::-;10527:20;;:24;;:237;;;;:::i;:::-;10507:257;;10352:420;;:::o;9236:35::-;;;;:::o;11457:97::-;11493:31;11502:21;11512:10;11502:9;:21::i;:::-;11493:8;:31::i;:::-;11535:11;:9;:11::i;:::-;11457:97::o;9126:31::-;;;;:::o;3027:109::-;2705:9;:7;:9::i;:::-;2697:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3100:28;3119:8;3100:18;:28::i;:::-;3027:109;:::o;640:136::-;698:7;725:43;729:1;732;725:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;718:50;;640:136;;;;:::o;1018:250::-;1076:7;1105:1;1100;:6;1096:47;;;1130:1;1123:8;;;;1096:47;1155:9;1171:1;1167;:5;1155:17;;1200:1;1195;1191;:5;;;;;;:10;1183:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1259:1;1252:8;;;1018:250;;;;;:::o;1276:132::-;1334:7;1361:39;1365:1;1368;1361:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1354:46;;1276:132;;;;:::o;451:181::-;509:7;529:9;545:1;541;:5;529:17;;570:1;565;:6;;557:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;623:1;616:8;;;451:181;;;;:::o;8560:215::-;8627:24;8644:6;8627:12;;:16;;:24;;;;:::i;:::-;8612:12;:39;;;;8686:33;8712:6;8686:9;:21;8696:10;8686:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;8662:9;:21;8672:10;8662:21;;;;;;;;;;;;;;;:57;;;;8730:37;8748:10;8760:6;8730:4;;;;;;;;;;;:17;;;;:37;;;;;:::i;:::-;8560:215;:::o;5260:247::-;5377:122;5410:5;5453;:14;;;:23;;;;5478:2;5482:5;5430:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5430:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;5430:58:0;5377:18;:122::i;:::-;5260:247;;;:::o;164:106::-;222:7;253:1;249;:5;:13;;261:1;249:13;;;257:1;249:13;242:20;;164:106;;;;:::o;8321:231::-;8385:24;8402:6;8385:12;;:16;;:24;;;;:::i;:::-;8370:12;:39;;;;8444:33;8470:6;8444:9;:21;8454:10;8444:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;8420:9;:21;8430:10;8420:21;;;;;;;;;;;;;;;:57;;;;8488:56;8510:10;8530:4;8537:6;8488:4;;;;;;;;;;;:21;;;;:56;;;;;;:::i;:::-;8321:231;:::o;3144:266::-;3252:1;3232:22;;:8;:22;;;;3210:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3365:8;3336:38;;3357:6;;;;;;;;;;;3336:38;;;;;;;;;;;;3394:8;3385:6;;:17;;;;;;;;;;;;;;;;;;3144:266;:::o;784:226::-;904:7;937:1;932;:6;;940:12;924:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;924:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;964:9;980:1;976;:5;964:17;;1001:1;994:8;;;784:226;;;;;:::o;1416:225::-;1536:7;1568:1;1564;:5;1571:12;1556:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1556:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1595:9;1611:1;1607;:5;;;;;;1595:17;;1632:1;1625:8;;;1416:225;;;;;:::o;7227:544::-;7315:27;7323:5;7315:25;;;:27::i;:::-;7307:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7392:12;7406:23;7441:5;7433:19;;7453:4;7433:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7433:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;7391:67:0;;;;7477:7;7469:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7558:1;7538:10;:17;:21;7534:230;;;7655:10;7644:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7644:30:0;;;;;;;;;;;;;;;;7618:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7534:230;7227:544;;;;:::o;5515:284::-;5659:132;5692:5;5735;:18;;;:27;;;;5764:4;5770:2;5774:5;5712:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5712:68:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;5712:68:0;5659:18;:132::i;:::-;5515:284;;;;:::o;4242:354::-;4302:4;4319:16;4346:19;4381:66;4346:101;;;;4508:7;4496:20;4484:32;;4557:3;4545:15;;:8;:15;;:42;;;;;4576:11;4564:8;:23;;4545:42;4537:51;;;;4242:354;;;:::o

Swarm Source

bzzr://21e04d350deafdcd1944a122a60b2ecf2dd1e1ce1214d5a5c68726416444e9c2

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

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