ETH Price: $3,075.91 (-5.41%)

Contract

0x3333336D579A0107849Eb68C9f1c0B92D48C2889
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim205913462024-08-23 12:37:59142 days ago1724416679IN
0x3333336D...2D48C2889
0 ETH0.000129591.79960041
Claim193573682024-03-03 21:37:35315 days ago1709501855IN
0x3333336D...2D48C2889
0 ETH0.0035089552.19713638
Claim192853842024-02-22 19:59:59325 days ago1708631999IN
0x3333336D...2D48C2889
0 ETH0.0036178453.81699978
Claim180050432023-08-27 9:14:59505 days ago1693127699IN
0x3333336D...2D48C2889
0 ETH0.00072210.74019101
Claim179496232023-08-19 15:10:35512 days ago1692457835IN
0x3333336D...2D48C2889
0 ETH0.0008966816.32927282
Claim175618622023-06-26 6:36:11567 days ago1687761371IN
0x3333336D...2D48C2889
0 ETH0.0008743713.00898257
Claim174762382023-06-14 5:53:35579 days ago1686722015IN
0x3333336D...2D48C2889
0 ETH0.0010466315.57198506
Claim174342222023-06-08 7:51:23585 days ago1686210683IN
0x3333336D...2D48C2889
0 ETH0.0009724219.40474141
Claim172454982023-05-12 17:05:11611 days ago1683911111IN
0x3333336D...2D48C2889
0 ETH0.0051068170.91516805
Claim172454962023-05-12 17:04:47611 days ago1683911087IN
0x3333336D...2D48C2889
0 ETH0.0047423770.55740672
Claim171711662023-05-02 5:57:59622 days ago1683007079IN
0x3333336D...2D48C2889
0 ETH0.0044565666.30517212
Claim171393372023-04-27 18:36:35626 days ago1682620595IN
0x3333336D...2D48C2889
0 ETH0.0023566735.06277802
Claim171336052023-04-26 23:17:11627 days ago1682551031IN
0x3333336D...2D48C2889
0 ETH0.0024009135.72097167
Claim171203442023-04-25 2:35:47629 days ago1682390147IN
0x3333336D...2D48C2889
0 ETH0.0025057134.79536007
Claim171003712023-04-22 7:23:11632 days ago1682148191IN
0x3333336D...2D48C2889
0 ETH0.0020885331.06790483
Claim170913922023-04-21 1:04:11633 days ago1682039051IN
0x3333336D...2D48C2889
0 ETH0.0027199540.46053699
Claim170911842023-04-21 0:22:35633 days ago1682036555IN
0x3333336D...2D48C2889
0 ETH0.0030545242.41627664
Claim170741042023-04-18 14:18:35635 days ago1681827515IN
0x3333336D...2D48C2889
0 ETH0.002718354.23053581
Claim170650052023-04-17 7:23:59637 days ago1681716239IN
0x3333336D...2D48C2889
0 ETH0.0017529626.0807437
Claim170635052023-04-17 2:17:11637 days ago1681697831IN
0x3333336D...2D48C2889
0 ETH0.0012387324.71890399
Claim170584852023-04-16 9:10:47638 days ago1681636247IN
0x3333336D...2D48C2889
0 ETH0.001871125.978541
Claim170539692023-04-15 17:47:59638 days ago1681580879IN
0x3333336D...2D48C2889
0 ETH0.0017860324.80152362
Claim170450652023-04-14 11:16:35640 days ago1681470995IN
0x3333336D...2D48C2889
0 ETH0.001372524.99966077
Claim170204502023-04-10 21:31:11643 days ago1681162271IN
0x3333336D...2D48C2889
0 ETH0.0018671133.92346165
Claim170200152023-04-10 20:02:47643 days ago1681156967IN
0x3333336D...2D48C2889
0 ETH0.0017353324.05540787
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
205913462024-08-23 12:37:59142 days ago1724416679
0x3333336D...2D48C2889
0 ETH
193573682024-03-03 21:37:35315 days ago1709501855
0x3333336D...2D48C2889
0 ETH
192853842024-02-22 19:59:59325 days ago1708631999
0x3333336D...2D48C2889
0 ETH
180050432023-08-27 9:14:59505 days ago1693127699
0x3333336D...2D48C2889
0 ETH
179496232023-08-19 15:10:35512 days ago1692457835
0x3333336D...2D48C2889
0 ETH
175618622023-06-26 6:36:11567 days ago1687761371
0x3333336D...2D48C2889
0 ETH
174942502023-06-16 18:42:35576 days ago1686940955
0x3333336D...2D48C2889
0 ETH
174942502023-06-16 18:42:35576 days ago1686940955
0x3333336D...2D48C2889
0 ETH
174762382023-06-14 5:53:35579 days ago1686722015
0x3333336D...2D48C2889
0 ETH
174342222023-06-08 7:51:23585 days ago1686210683
0x3333336D...2D48C2889
0 ETH
172454982023-05-12 17:05:11611 days ago1683911111
0x3333336D...2D48C2889
0 ETH
172454962023-05-12 17:04:47611 days ago1683911087
0x3333336D...2D48C2889
0 ETH
171711662023-05-02 5:57:59622 days ago1683007079
0x3333336D...2D48C2889
0 ETH
171393372023-04-27 18:36:35626 days ago1682620595
0x3333336D...2D48C2889
0 ETH
171336052023-04-26 23:17:11627 days ago1682551031
0x3333336D...2D48C2889
0 ETH
171203442023-04-25 2:35:47629 days ago1682390147
0x3333336D...2D48C2889
0 ETH
171003712023-04-22 7:23:11632 days ago1682148191
0x3333336D...2D48C2889
0 ETH
170913922023-04-21 1:04:11633 days ago1682039051
0x3333336D...2D48C2889
0 ETH
170911842023-04-21 0:22:35633 days ago1682036555
0x3333336D...2D48C2889
0 ETH
170741042023-04-18 14:18:35635 days ago1681827515
0x3333336D...2D48C2889
0 ETH
170650052023-04-17 7:23:59637 days ago1681716239
0x3333336D...2D48C2889
0 ETH
170635052023-04-17 2:17:11637 days ago1681697831
0x3333336D...2D48C2889
0 ETH
170584852023-04-16 9:10:47638 days ago1681636247
0x3333336D...2D48C2889
0 ETH
170539692023-04-15 17:47:59638 days ago1681580879
0x3333336D...2D48C2889
0 ETH
170450652023-04-14 11:16:35640 days ago1681470995
0x3333336D...2D48C2889
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vesting

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

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

pragma solidity ^0.6.12;

/* SPDX-License-Identifier: UNLICENSED */

// ----------------------------------------------------------------------------
// Safe maths
// ----------------------------------------------------------------------------
library SafeMath {
    function add(uint a, uint b) internal pure returns (uint c) {
        c = a + b;
        require(c >= a);
    }
    function sub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
    }
    function mul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }
    function div(uint a, uint b) internal pure returns (uint c) {
        require(b > 0);
        c = a / b;
    }
}

// ----------------------------------------------------------------------------
// Owned contract
// ----------------------------------------------------------------------------
contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() public {
        owner = msg.sender;
    }

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

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }

    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}

// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
// ----------------------------------------------------------------------------
abstract contract ERC20Interface {
    function totalSupply() virtual public view returns (uint);
    function balanceOf(address tokenOwner) virtual public view returns (uint balance);
    function allowance(address tokenOwner, address spender) virtual public view returns (uint remaining);
    function transfer(address to, uint tokens) virtual public returns (bool success);
    function approve(address spender, uint tokens) virtual public returns (bool success);
    function transferFrom(address from, address to, uint tokens) virtual public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}


struct Schedule {
    uint32  start;
    uint32  length;
    uint256 initial;
    uint256 tokens;
}


contract Vesting is Owned, ERC20Interface {
    using SafeMath for uint;

    string public symbol;
    string public  name;
    uint8 public decimals;

    mapping(address => Schedule) public schedules;
    mapping(address => uint256) balances;
    address public lockedTokenAddress;


    // ------------------------------------------------------------------------
    // Constructor
    // ------------------------------------------------------------------------
    constructor() public {
        symbol = "VTLM";
        name = "Vesting Alien Worlds Trilium";
        decimals = 4;
    }

    /* ERC-20 functions, null most of them */

    function balanceOf(address tokenOwner) override virtual public view returns (uint balance) {
        return balances[tokenOwner];
    }

    function totalSupply() override virtual public view returns (uint) {
        return 0;
    }

    function allowance(address tokenOwner, address spender) override virtual public view returns (uint remaining){
        return 0;
    }

    function transfer(address to, uint tokens) override virtual public returns (bool success) {
        require(false, "Use the claim function, not transfer");
    }

    function approve(address spender, uint tokens) override virtual public returns (bool success) {
        require(false, "Cannot approve spending");
    }

    function transferFrom(address from, address to, uint tokens) override virtual public returns (bool success) {
        require(false, "Use the claim function, not transferFrom");
    }


    /* My functions */

    function vestedTotal(address user) private view returns (uint256){
        uint256 time_now = block.timestamp;
        uint256 vesting_seconds = 0;
        Schedule memory s = schedules[user];

        uint256 vested_total = balances[user];

        if (s.start > 0) {
            if (time_now >= s.start) {
                vesting_seconds = time_now - s.start;

                uint256 vest_per_second_sats = s.tokens.sub(s.initial);
                vest_per_second_sats = vest_per_second_sats.div(s.length);
                
                vested_total = vesting_seconds.mul(vest_per_second_sats);
                vested_total = vested_total.add(s.initial); // amount they can withdraw
            }
            else {
                vested_total = 1;
            }
            
            if (vested_total > s.tokens) {
                vested_total = s.tokens;
            }
        }

        return vested_total;
    }

    function maxClaim(address user) public view returns (uint256) {
        uint256 vested_total = vestedTotal(user);
        Schedule memory s = schedules[user];
        uint256 max = 0;

        if (s.start > 0){
            uint256 claimed = s.tokens.sub(balances[user]);

            max = vested_total.sub(claimed);

            if (max > balances[user]){
                max = balances[user];
            }
        }

        return max;
    }

    function claim(uint256 amount) public {
        require(lockedTokenAddress != address(0x0), "Locked token contract has not been set");
        require(amount > 0, "Must claim more than 0");
        require(balances[msg.sender] > 0, "No vesting balance found");

        uint256 vested_total = vestedTotal(msg.sender);

        Schedule memory s = schedules[msg.sender];
        if (s.start > 0){
            uint256 remaining_balance = balances[msg.sender].sub(amount);

            if (vested_total < s.tokens) {
                uint min_balance = s.tokens.sub(vested_total);
                require(remaining_balance >= min_balance, "Cannot transfer this amount due to vesting locks");
            }
        }

        balances[msg.sender] = balances[msg.sender].sub(amount);
        ERC20Interface(lockedTokenAddress).transfer(msg.sender, amount);
    }

    function setSchedule(address user, uint32 start, uint32 length, uint256 initial, uint256 amount) public onlyOwner {
        schedules[user].start = start;
        schedules[user].length = length;
        schedules[user].initial = initial;
        schedules[user].tokens = amount;
    }

    function addTokens(address newOwner, uint256 amount) public onlyOwner {
        require(lockedTokenAddress != address(0x0), "Locked token contract has not been set");

        ERC20Interface tokenContract = ERC20Interface(lockedTokenAddress);

        uint256 userAllowance = tokenContract.allowance(msg.sender, address(this));
        uint256 fromBalance = tokenContract.balanceOf(msg.sender);
        require(fromBalance >= amount, "Sender has insufficient balance");
        require(userAllowance >= amount, "Please allow tokens to be spent by this contract");
        tokenContract.transferFrom(msg.sender, address(this), amount);

        balances[newOwner] = balances[newOwner].add(amount);
        
        emit Transfer(address(0x0), newOwner, amount);
    }

    function removeTokens(address owner, uint256 amount) public onlyOwner {
        ERC20Interface tokenContract = ERC20Interface(lockedTokenAddress);
        tokenContract.transfer(owner, amount);
        
        balances[owner] = balances[owner].sub(amount);
    }

    function setTokenContract(address _lockedTokenAddress) public onlyOwner {
        lockedTokenAddress = _lockedTokenAddress;
    }

    // ------------------------------------------------------------------------
    // Don't accept ETH
    // ------------------------------------------------------------------------
    receive () external payable {
        revert();
    }


    // ------------------------------------------------------------------------
    // Owner can transfer out any accidentally sent ERC20 tokens
    // ------------------------------------------------------------------------
    function transferAnyERC20Token(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        return ERC20Interface(tokenAddress).transfer(owner, tokens);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockedTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"maxClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"schedules","outputs":[{"internalType":"uint32","name":"start","type":"uint32"},{"internalType":"uint32","name":"length","type":"uint32"},{"internalType":"uint256","name":"initial","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint32","name":"start","type":"uint32"},{"internalType":"uint32","name":"length","type":"uint32"},{"internalType":"uint256","name":"initial","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSchedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lockedTokenAddress","type":"address"}],"name":"setTokenContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600481526020017f56544c4d00000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f9291906200010f565b506040518060400160405280601c81526020017f56657374696e6720416c69656e20576f726c6473205472696c69756d0000000081525060039080519060200190620000ed9291906200010f565b5060048060006101000a81548160ff021916908360ff160217905550620001b5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015257805160ff191683800117855562000183565b8280016001018555821562000183579182015b828111156200018257825182559160200191906001019062000165565b5b50905062000192919062000196565b5090565b5b80821115620001b157600081600090555060010162000197565b5090565b6123fc80620001c56000396000f3fe6080604052600436106101395760003560e01c806380c3780f116100ab578063b3efee981161006f578063b3efee981461072e578063bbcd5bbe14610793578063d4ee1d90146107e4578063dc39d06d14610825578063dd62ed3e14610896578063f2fde38b1461091b57610143565b806380c3780f146105255780638da5cb5b146105ab57806395d89b41146105ec578063a666ff3c1461067c578063a9059cbb146106bd57610143565b8063313ce567116100fd578063313ce56714610360578063379607f51461038e5780636039fbdb146103c95780636e1b14e71461042457806370a08231146104a957806379ba50971461050e57610143565b806306fdde0314610148578063095ea7b3146101d857806318160ddd146102495780631e10eeaf1461027457806323b872dd146102cf57610143565b3661014357600080fd5b600080fd5b34801561015457600080fd5b5061015d61096c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019d578082015181840152602081019050610182565b50505050905090810190601f1680156101ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e457600080fd5b50610231600480360360408110156101fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a0a565b60405180821515815260200191505060405180910390f35b34801561025557600080fd5b5061025e610a85565b6040518082815260200191505060405180910390f35b34801561028057600080fd5b506102cd6004803603604081101561029757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a8a565b005b3480156102db57600080fd5b50610348600480360360608110156102f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c50565b60405180821515815260200191505060405180910390f35b34801561036c57600080fd5b50610375610caf565b604051808260ff16815260200191505060405180910390f35b34801561039a57600080fd5b506103c7600480360360208110156103b157600080fd5b8101908080359060200190929190505050610cc2565b005b3480156103d557600080fd5b50610422600480360360408110156103ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ac565b005b34801561043057600080fd5b506104a7600480360360a081101561044757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff16906020019092919080359060200190929190803590602001909291905050506116d9565b005b3480156104b557600080fd5b506104f8600480360360208110156104cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611888565b6040518082815260200191505060405180910390f35b34801561051a57600080fd5b506105236118d1565b005b34801561053157600080fd5b506105746004803603602081101561054857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a6d565b604051808563ffffffff1681526020018463ffffffff16815260200183815260200182815260200194505050505060405180910390f35b3480156105b757600080fd5b506105c0611abd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105f857600080fd5b50610601611ae1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610641578082015181840152602081019050610626565b50505050905090810190601f16801561066e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561068857600080fd5b50610691611b7f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106c957600080fd5b50610716600480360360408110156106e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ba5565b60405180821515815260200191505060405180910390f35b34801561073a57600080fd5b5061077d6004803603602081101561075157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c03565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107e2600480360360208110156107b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ddf565b005b3480156107f057600080fd5b506107f9611e7b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083157600080fd5b5061087e6004803603604081101561084857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ea1565b60405180821515815260200191505060405180910390f35b3480156108a257600080fd5b50610905600480360360408110156108b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fd0565b6040518082815260200191505060405180910390f35b34801561092757600080fd5b5061096a6004803603602081101561093e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fd8565b005b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a025780601f106109d757610100808354040283529160200191610a02565b820191906000526020600020905b8154815290600101906020018083116109e557829003601f168201915b505050505081565b600080610a7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e6e6f7420617070726f7665207370656e64696e6700000000000000000081525060200191505060405180910390fd5b92915050565b600090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ae257600080fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b7a57600080fd5b505af1158015610b8e573d6000803e3d6000fd5b505050506040513d6020811015610ba457600080fd5b810190808051906020019092919050505050610c0882600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207490919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080610ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806122f56028913960400191505060405180910390fd5b9392505050565b600460009054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806123a16026913960400191505060405180910390fd5b60008111610de0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d75737420636c61696d206d6f7265207468616e20300000000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610e95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2076657374696e672062616c616e636520666f756e64000000000000000081525060200191505060405180910390fd5b6000610ea03361208e565b9050610eaa6122c0565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820154815260200160028201548152505090506000816000015163ffffffff161115611043576000610fbd84600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207490919063ffffffff16565b90508160600151831015611041576000610fe484846060015161207490919063ffffffff16565b90508082101561103f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806123416030913960400191505060405180910390fd5b505b505b61109583600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207490919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561116b57600080fd5b505af115801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b810190808051906020019092919050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461120457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806123a16026913960400191505060405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561135a57600080fd5b505afa15801561136e573d6000803e3d6000fd5b505050506040513d602081101561138457600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561140057600080fd5b505afa158015611414573d6000803e3d6000fd5b505050506040513d602081101561142a57600080fd5b81019080805190602001909291905050509050838110156114b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f53656e6465722068617320696e73756666696369656e742062616c616e63650081525060200191505060405180910390fd5b8382101561150c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806123716030913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561159b57600080fd5b505af11580156115af573d6000803e3d6000fd5b505050506040513d60208110156115c557600080fd5b81019080805190602001909291905050505061162984600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225990919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461173157600080fd5b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548163ffffffff021916908363ffffffff16021790555082600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160046101000a81548163ffffffff021916908363ffffffff16021790555081600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461192b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60056020528060005260406000206000915090508060000160009054906101000a900463ffffffff16908060000160049054906101000a900463ffffffff16908060010154908060020154905084565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b775780601f10611b4c57610100808354040283529160200191611b77565b820191906000526020600020905b815481529060010190602001808311611b5a57829003601f168201915b505050505081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611bfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061231d6024913960400191505060405180910390fd5b92915050565b600080611c0f8361208e565b9050611c196122c0565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481526020016002820154815250509050600080826000015163ffffffff161115611dd4576000611d31600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846060015161207490919063ffffffff16565b9050611d46818561207490919063ffffffff16565b9150600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611dd257600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505b505b809350505050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e3757600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611efc57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611f8d57600080fd5b505af1158015611fa1573d6000803e3d6000fd5b505050506040513d6020811015611fb757600080fd5b8101908080519060200190929190505050905092915050565b600092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461203057600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111561208357600080fd5b818303905092915050565b600080429050600061209e6122c0565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820154815260200160028201548152505090506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000826000015163ffffffff16111561224d57816000015163ffffffff16841061223357816000015163ffffffff168403925060006121de8360400151846060015161207490919063ffffffff16565b90506121fd836020015163ffffffff168261227390919063ffffffff16565b9050612212818561229390919063ffffffff16565b915061222b83604001518361225990919063ffffffff16565b915050612238565b600190505b816060015181111561224c57816060015190505b5b80945050505050919050565b600081830190508281101561226d57600080fd5b92915050565b600080821161228157600080fd5b81838161228a57fe5b04905092915050565b6000818302905060008314806122b15750818382816122ae57fe5b04145b6122ba57600080fd5b92915050565b6040518060800160405280600063ffffffff168152602001600063ffffffff1681526020016000815260200160008152509056fe5573652074686520636c61696d2066756e6374696f6e2c206e6f74207472616e7366657246726f6d5573652074686520636c61696d2066756e6374696f6e2c206e6f74207472616e7366657243616e6e6f74207472616e73666572207468697320616d6f756e742064756520746f2076657374696e67206c6f636b73506c6561736520616c6c6f7720746f6b656e7320746f206265207370656e74206279207468697320636f6e74726163744c6f636b656420746f6b656e20636f6e747261637420686173206e6f74206265656e20736574a2646970667358221220c34321948ed714fbcae131a0c6d673e6a3f942cec61ab01a7b0c4211479ceee364736f6c634300060c0033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806380c3780f116100ab578063b3efee981161006f578063b3efee981461072e578063bbcd5bbe14610793578063d4ee1d90146107e4578063dc39d06d14610825578063dd62ed3e14610896578063f2fde38b1461091b57610143565b806380c3780f146105255780638da5cb5b146105ab57806395d89b41146105ec578063a666ff3c1461067c578063a9059cbb146106bd57610143565b8063313ce567116100fd578063313ce56714610360578063379607f51461038e5780636039fbdb146103c95780636e1b14e71461042457806370a08231146104a957806379ba50971461050e57610143565b806306fdde0314610148578063095ea7b3146101d857806318160ddd146102495780631e10eeaf1461027457806323b872dd146102cf57610143565b3661014357600080fd5b600080fd5b34801561015457600080fd5b5061015d61096c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019d578082015181840152602081019050610182565b50505050905090810190601f1680156101ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e457600080fd5b50610231600480360360408110156101fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a0a565b60405180821515815260200191505060405180910390f35b34801561025557600080fd5b5061025e610a85565b6040518082815260200191505060405180910390f35b34801561028057600080fd5b506102cd6004803603604081101561029757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a8a565b005b3480156102db57600080fd5b50610348600480360360608110156102f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c50565b60405180821515815260200191505060405180910390f35b34801561036c57600080fd5b50610375610caf565b604051808260ff16815260200191505060405180910390f35b34801561039a57600080fd5b506103c7600480360360208110156103b157600080fd5b8101908080359060200190929190505050610cc2565b005b3480156103d557600080fd5b50610422600480360360408110156103ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ac565b005b34801561043057600080fd5b506104a7600480360360a081101561044757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff16906020019092919080359060200190929190803590602001909291905050506116d9565b005b3480156104b557600080fd5b506104f8600480360360208110156104cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611888565b6040518082815260200191505060405180910390f35b34801561051a57600080fd5b506105236118d1565b005b34801561053157600080fd5b506105746004803603602081101561054857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a6d565b604051808563ffffffff1681526020018463ffffffff16815260200183815260200182815260200194505050505060405180910390f35b3480156105b757600080fd5b506105c0611abd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105f857600080fd5b50610601611ae1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610641578082015181840152602081019050610626565b50505050905090810190601f16801561066e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561068857600080fd5b50610691611b7f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106c957600080fd5b50610716600480360360408110156106e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ba5565b60405180821515815260200191505060405180910390f35b34801561073a57600080fd5b5061077d6004803603602081101561075157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c03565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107e2600480360360208110156107b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ddf565b005b3480156107f057600080fd5b506107f9611e7b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083157600080fd5b5061087e6004803603604081101561084857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ea1565b60405180821515815260200191505060405180910390f35b3480156108a257600080fd5b50610905600480360360408110156108b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fd0565b6040518082815260200191505060405180910390f35b34801561092757600080fd5b5061096a6004803603602081101561093e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fd8565b005b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a025780601f106109d757610100808354040283529160200191610a02565b820191906000526020600020905b8154815290600101906020018083116109e557829003601f168201915b505050505081565b600080610a7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e6e6f7420617070726f7665207370656e64696e6700000000000000000081525060200191505060405180910390fd5b92915050565b600090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ae257600080fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b7a57600080fd5b505af1158015610b8e573d6000803e3d6000fd5b505050506040513d6020811015610ba457600080fd5b810190808051906020019092919050505050610c0882600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207490919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080610ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806122f56028913960400191505060405180910390fd5b9392505050565b600460009054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806123a16026913960400191505060405180910390fd5b60008111610de0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d75737420636c61696d206d6f7265207468616e20300000000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610e95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2076657374696e672062616c616e636520666f756e64000000000000000081525060200191505060405180910390fd5b6000610ea03361208e565b9050610eaa6122c0565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820154815260200160028201548152505090506000816000015163ffffffff161115611043576000610fbd84600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207490919063ffffffff16565b90508160600151831015611041576000610fe484846060015161207490919063ffffffff16565b90508082101561103f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806123416030913960400191505060405180910390fd5b505b505b61109583600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207490919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561116b57600080fd5b505af115801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b810190808051906020019092919050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461120457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806123a16026913960400191505060405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561135a57600080fd5b505afa15801561136e573d6000803e3d6000fd5b505050506040513d602081101561138457600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561140057600080fd5b505afa158015611414573d6000803e3d6000fd5b505050506040513d602081101561142a57600080fd5b81019080805190602001909291905050509050838110156114b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f53656e6465722068617320696e73756666696369656e742062616c616e63650081525060200191505060405180910390fd5b8382101561150c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806123716030913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561159b57600080fd5b505af11580156115af573d6000803e3d6000fd5b505050506040513d60208110156115c557600080fd5b81019080805190602001909291905050505061162984600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225990919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461173157600080fd5b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548163ffffffff021916908363ffffffff16021790555082600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160046101000a81548163ffffffff021916908363ffffffff16021790555081600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461192b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60056020528060005260406000206000915090508060000160009054906101000a900463ffffffff16908060000160049054906101000a900463ffffffff16908060010154908060020154905084565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b775780601f10611b4c57610100808354040283529160200191611b77565b820191906000526020600020905b815481529060010190602001808311611b5a57829003601f168201915b505050505081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611bfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061231d6024913960400191505060405180910390fd5b92915050565b600080611c0f8361208e565b9050611c196122c0565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481526020016002820154815250509050600080826000015163ffffffff161115611dd4576000611d31600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846060015161207490919063ffffffff16565b9050611d46818561207490919063ffffffff16565b9150600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611dd257600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505b505b809350505050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e3757600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611efc57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611f8d57600080fd5b505af1158015611fa1573d6000803e3d6000fd5b505050506040513d6020811015611fb757600080fd5b8101908080519060200190929190505050905092915050565b600092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461203057600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111561208357600080fd5b818303905092915050565b600080429050600061209e6122c0565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820154815260200160028201548152505090506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000826000015163ffffffff16111561224d57816000015163ffffffff16841061223357816000015163ffffffff168403925060006121de8360400151846060015161207490919063ffffffff16565b90506121fd836020015163ffffffff168261227390919063ffffffff16565b9050612212818561229390919063ffffffff16565b915061222b83604001518361225990919063ffffffff16565b915050612238565b600190505b816060015181111561224c57816060015190505b5b80945050505050919050565b600081830190508281101561226d57600080fd5b92915050565b600080821161228157600080fd5b81838161228a57fe5b04905092915050565b6000818302905060008314806122b15750818382816122ae57fe5b04145b6122ba57600080fd5b92915050565b6040518060800160405280600063ffffffff168152602001600063ffffffff1681526020016000815260200160008152509056fe5573652074686520636c61696d2066756e6374696f6e2c206e6f74207472616e7366657246726f6d5573652074686520636c61696d2066756e6374696f6e2c206e6f74207472616e7366657243616e6e6f74207472616e73666572207468697320616d6f756e742064756520746f2076657374696e67206c6f636b73506c6561736520616c6c6f7720746f6b656e7320746f206265207370656e74206279207468697320636f6e74726163744c6f636b656420746f6b656e20636f6e747261637420686173206e6f74206265656e20736574a2646970667358221220c34321948ed714fbcae131a0c6d673e6a3f942cec61ab01a7b0c4211479ceee364736f6c634300060c0033

Deployed Bytecode Sourcemap

2712:6097:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8365:8;;;2712:6097;;;;2820:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3942:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3525:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7724:268;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4104:185;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2846:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5755:875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6936:780;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6638:290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3380:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1371:196;;;;;;;;;;;;;:::i;:::-;;2876:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;971:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2793;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2971:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3771:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5286:461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8000:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;998:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8619:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3627:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1261:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2820:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3942:154::-;4022:12;4055:5;4047:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3942:154;;;;:::o;3525:94::-;3586:4;3525:94;:::o;7724:268::-;1227:5;;;;;;;;;;1213:19;;:10;:19;;;1205:28;;;;;;7805::::1;7851:18;;;;;;;;;;;7805:65;;7881:13;:22;;;7904:5;7911:6;7881:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;7957:27;7977:6;7957:8;:15;7966:5;7957:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;7939:8;:15;7948:5;7939:15;;;;;;;;;;;;;;;:45;;;;1244:1;7724:268:::0;;:::o;4104:185::-;4198:12;4231:5;4223:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4104:185;;;;;:::o;2846:21::-;;;;;;;;;;;;;:::o;5755:875::-;5842:3;5812:34;;:18;;;;;;;;;;;:34;;;;5804:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5917:1;5908:6;:10;5900:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5987:1;5964:8;:20;5973:10;5964:20;;;;;;;;;;;;;;;;:24;5956:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6030:20;6053:23;6065:10;6053:11;:23::i;:::-;6030:46;;6089:17;;:::i;:::-;6109:9;:21;6119:10;6109:21;;;;;;;;;;;;;;;6089:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6155:1;6145;:7;;;:11;;;6141:340;;;6172:25;6200:32;6225:6;6200:8;:20;6209:10;6200:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6172:60;;6268:1;:8;;;6253:12;:23;6249:221;;;6297:16;6316:26;6329:12;6316:1;:8;;;:12;;:26;;;;:::i;:::-;6297:45;;6390:11;6369:17;:32;;6361:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6249:221;;6141:340;;6516:32;6541:6;6516:8;:20;6525:10;6516:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6493:8;:20;6502:10;6493:20;;;;;;;;;;;;;;;:55;;;;6574:18;;;;;;;;;;;6559:43;;;6603:10;6615:6;6559:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5755:875;;;:::o;6936:780::-;1227:5;;;;;;;;;;1213:19;;:10;:19;;;1205:28;;;;;;7055:3:::1;7025:34;;:18;;;;;;;;;;;:34;;;;7017:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7115:28;7161:18;;;;;;;;;;;7115:65;;7193:21;7217:13;:23;;;7241:10;7261:4;7217:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;7193:74;;7278:19;7300:13;:23;;;7324:10;7300:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;7278:57;;7369:6;7354:11;:21;;7346:65;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;7447:6;7430:13;:23;;7422:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7517:13;:26;;;7544:10;7564:4;7571:6;7517:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;7612:30;7635:6;7612:8;:18;7621:8;7612:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;7591:8;:18;7600:8;7591:18;;;;;;;;;;;;;;;:51;;;;7691:8;7668:40;;7685:3;7668:40;;;7701:6;7668:40;;;;;;;;;;;;;;;;;;1244:1;;;6936:780:::0;;:::o;6638:290::-;1227:5;;;;;;;;;;1213:19;;:10;:19;;;1205:28;;;;;;6787:5:::1;6763:9;:15;6773:4;6763:15;;;;;;;;;;;;;;;:21;;;:29;;;;;;;;;;;;;;;;;;6828:6;6803:9;:15;6813:4;6803:15;;;;;;;;;;;;;;;:22;;;:31;;;;;;;;;;;;;;;;;;6871:7;6845:9;:15;6855:4;6845:15;;;;;;;;;;;;;;;:23;;:33;;;;6914:6;6889:9;:15;6899:4;6889:15;;;;;;;;;;;;;;;:22;;:31;;;;6638:290:::0;;;;;:::o;3380:137::-;3457:12;3489:8;:20;3498:10;3489:20;;;;;;;;;;;;;;;;3482:27;;3380:137;;;:::o;1371:196::-;1438:8;;;;;;;;;;;1424:22;;:10;:22;;;1416:31;;;;;;1491:8;;;;;;;;;;;1463:37;;1484:5;;;;;;;;;;1463:37;;;;;;;;;;;;1519:8;;;;;;;;;;;1511:5;;:16;;;;;;;;;;;;;;;;;;1557:1;1538:8;;:21;;;;;;;;;;;;;;;;;;1371:196::o;2876:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;971:20::-;;;;;;;;;;;;:::o;2793:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2971:33::-;;;;;;;;;;;;;:::o;3771:163::-;3847:12;3880:5;3872:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3771:163;;;;:::o;5286:461::-;5339:7;5359:20;5382:17;5394:4;5382:11;:17::i;:::-;5359:40;;5410:17;;:::i;:::-;5430:9;:15;5440:4;5430:15;;;;;;;;;;;;;;;5410:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5456:11;5498:1;5488;:7;;;:11;;;5484:233;;;5515:15;5533:28;5546:8;:14;5555:4;5546:14;;;;;;;;;;;;;;;;5533:1;:8;;;:12;;:28;;;;:::i;:::-;5515:46;;5584:25;5601:7;5584:12;:16;;:25;;;;:::i;:::-;5578:31;;5636:8;:14;5645:4;5636:14;;;;;;;;;;;;;;;;5630:3;:20;5626:80;;;5676:8;:14;5685:4;5676:14;;;;;;;;;;;;;;;;5670:20;;5626:80;5484:233;;5736:3;5729:10;;;;;5286:461;;;:::o;8000:131::-;1227:5;;;;;;;;;;1213:19;;:10;:19;;;1205:28;;;;;;8104:19:::1;8083:18;;:40;;;;;;;;;;;;;;;;;;8000:131:::0;:::o;998:23::-;;;;;;;;;;;;;:::o;8619:187::-;8714:12;1227:5;;;;;;;;;;;1213:19;;:10;:19;;;1205:28;;;;;;8761:12:::1;8746:37;;;8784:5;::::0;::::1;;;;;;;;8791:6;8746:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;8739:59;;8619:187:::0;;;;:::o;3627:136::-;3721:14;3627:136;;;;:::o;1261:102::-;1227:5;;;;;;;;;;1213:19;;:10;:19;;;1205:28;;;;;;1346:9:::1;1335:8;;:20;;;;;;;;;;;;;;;;;;1261:102:::0;:::o;394:114::-;446:6;478:1;473;:6;;465:15;;;;;;499:1;495;:5;491:9;;394:114;;;;:::o;4325:953::-;4382:7;4401:16;4420:15;4401:34;;4446:23;4484:17;;:::i;:::-;4504:9;:15;4514:4;4504:15;;;;;;;;;;;;;;;4484:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4532:20;4555:8;:14;4564:4;4555:14;;;;;;;;;;;;;;;;4532:37;;4596:1;4586;:7;;;:11;;;4582:657;;;4630:1;:7;;;4618:19;;:8;:19;4614:499;;4687:1;:7;;;4676:18;;:8;:18;4658:36;;4715:28;4746:23;4759:1;:9;;;4746:1;:8;;;:12;;:23;;;;:::i;:::-;4715:54;;4811:34;4836:1;:8;;;4811:34;;:20;:24;;:34;;;;:::i;:::-;4788:57;;4897:41;4917:20;4897:15;:19;;:41;;;;:::i;:::-;4882:56;;4972:27;4989:1;:9;;;4972:12;:16;;:27;;;;:::i;:::-;4957:42;;4614:499;;;;5096:1;5081:16;;4614:499;5160:1;:8;;;5145:12;:23;5141:87;;;5204:1;:8;;;5189:23;;5141:87;4582:657;5258:12;5251:19;;;;;;4325:953;;;:::o;274:114::-;326:6;353:1;349;:5;345:9;;378:1;373;:6;;365:15;;;;;;274:114;;;;:::o;648:113::-;700:6;731:1;727;:5;719:14;;;;;;752:1;748;:5;;;;;;744:9;;648:113;;;;:::o;514:128::-;566:6;593:1;589;:5;585:9;;618:1;613;:6;:20;;;;632:1;627;623;:5;;;;;;:10;613:20;605:29;;;;;;514:128;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://c34321948ed714fbcae131a0c6d673e6a3f942cec61ab01a7b0c4211479ceee3

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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