ETH Price: $3,162.99 (+4.16%)

Contract

0xC88c31BBE13b509E7F32414736F5dC1816F05811
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer With Lo...211924642024-11-15 10:20:5931 hrs ago1731666059IN
0xC88c31BB...816F05811
0 ETH0.0012001614.34537726
Transfer With Lo...211923002024-11-15 9:47:5931 hrs ago1731664079IN
0xC88c31BB...816F05811
0 ETH0.0013623316.2860903
Transfer With Lo...211922952024-11-15 9:46:5931 hrs ago1731664019IN
0xC88c31BB...816F05811
0 ETH0.0017189517.06156146
Transfer With Lo...211842252024-11-14 6:44:592 days ago1731566699IN
0xC88c31BB...816F05811
0 ETH0.0029361729.14317243
Transfer With Lo...211842112024-11-14 6:42:112 days ago1731566531IN
0xC88c31BB...816F05811
0 ETH0.003039730.17081655
Transfer With Lo...211842052024-11-14 6:40:592 days ago1731566459IN
0xC88c31BB...816F05811
0 ETH0.0029570829.35074194
Transfer With Lo...211836252024-11-14 4:44:112 days ago1731559451IN
0xC88c31BB...816F05811
0 ETH0.0022182726.51855298
Transfer With Lo...211828492024-11-14 2:08:232 days ago1731550103IN
0xC88c31BB...816F05811
0 ETH0.0038112445.55522682
Transfer With Lo...211779772024-11-13 9:48:473 days ago1731491327IN
0xC88c31BB...816F05811
0 ETH0.0021301621.1430549
Transfer With Lo...211761862024-11-13 3:49:233 days ago1731469763IN
0xC88c31BB...816F05811
0 ETH0.002601831.10350804
Transfer With Lo...211705252024-11-12 8:51:594 days ago1731401519IN
0xC88c31BB...816F05811
0 ETH0.002774527.54179818
Transfer With Lo...211701712024-11-12 7:40:354 days ago1731397235IN
0xC88c31BB...816F05811
0 ETH0.0024986424.80042957
Transfer With Lo...211700002024-11-12 7:06:114 days ago1731395171IN
0xC88c31BB...816F05811
0 ETH0.0022160726.49219601
Transfer With Lo...211693962024-11-12 5:04:234 days ago1731387863IN
0xC88c31BB...816F05811
0 ETH0.0028953828.73833503
Transfer With Lo...211689252024-11-12 3:29:234 days ago1731382163IN
0xC88c31BB...816F05811
0 ETH0.0022915922.74536922
Transfer With Lo...211686792024-11-12 2:39:594 days ago1731379199IN
0xC88c31BB...816F05811
0 ETH0.0031055530.82434272
Transfer With Lo...211634222024-11-11 9:03:115 days ago1731315791IN
0xC88c31BB...816F05811
0 ETH0.0013519313.41872749
Transfer With Lo...211630672024-11-11 7:52:115 days ago1731311531IN
0xC88c31BB...816F05811
0 ETH0.0009830711.75060701
Transfer With Lo...211629132024-11-11 7:21:235 days ago1731309683IN
0xC88c31BB...816F05811
0 ETH0.0013093612.99775531
Transfer With Lo...211624312024-11-11 5:44:355 days ago1731303875IN
0xC88c31BB...816F05811
0 ETH0.0015145718.10611253
Transfer With Lo...211624212024-11-11 5:42:355 days ago1731303755IN
0xC88c31BB...816F05811
0 ETH0.0016822816.69762024
Transfer With Lo...211624152024-11-11 5:41:235 days ago1731303683IN
0xC88c31BB...816F05811
0 ETH0.0017420917.29131389
Transfer With Lo...211613952024-11-11 2:16:475 days ago1731291407IN
0xC88c31BB...816F05811
0 ETH0.0013248415.83562675
Transfer With Lo...211421662024-11-08 9:56:358 days ago1731059795IN
0xC88c31BB...816F05811
0 ETH0.000705918.43771534
Transfer With Lo...211418762024-11-08 8:58:238 days ago1731056303IN
0xC88c31BB...816F05811
0 ETH0.001074310.66309653
View all transactions

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Comp

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-25
*/

pragma solidity 0.5.8;

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 SafeMath {

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

        return c;
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {

        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;

        return c;
    }

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

contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;

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

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

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _burn(address owner, uint256 value) internal {
        require(owner != address(0), "ERC20: burn from the zero address");

        _totalSupply = _totalSupply.sub(value);
        _balances[owner] = _balances[owner].sub(value);
        emit Transfer(owner, address(0), value);
    }

    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function _burnFrom(address owner, uint256 amount) internal {
        _burn(owner, amount);
        _approve(owner, msg.sender, _allowances[owner][msg.sender].sub(amount));
    }
}

contract Comp is ERC20 {
    string public constant name = "Compound";
    string public constant symbol = "COMP"; 
    uint8 public constant decimals = 18; 
    uint256 public constant initialSupply = 10000000 * (10 ** uint256(decimals));
    
    constructor() public {
        super._mint(msg.sender, initialSupply);
        owner = msg.sender;
    }

    address public owner;

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

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

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

    function _transferOwnership(address _newOwner) internal {
        require(_newOwner != address(0), "Already Owner");
        emit OwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }

    function transfer(
        address _to,
        uint256 _value
    )
      public

      returns (bool)
    {
        releaseLock(msg.sender);
        return super.transfer(_to, _value);
    }

    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    )
      public

      returns (bool)
    {
        releaseLock(_from);
        return super.transferFrom(_from, _to, _value);
    }

    event Burn(address indexed burner, uint256 value);

    function burn(uint256 _value) public onlyOwner {
        require(_value <= super.balanceOf(owner), "Balance is too small.");

        _burn(owner, _value);
        emit Burn(owner, _value);
    }

    struct LockInfo {
        uint256 releaseTime;
        uint256 balance;
    }
    mapping(address => LockInfo[]) internal lockInfo;

    event Lock(address indexed holder, uint256 value, uint256 releaseTime);
    event Unlock(address indexed holder, uint256 value);

    function balanceOf(address _holder) public view returns (uint256 balance) {
        uint256 lockedBalance = 0;
        for(uint256 i = 0; i < lockInfo[_holder].length ; i++ ) {
            lockedBalance = lockedBalance.add(lockInfo[_holder][i].balance);
        }
        return super.balanceOf(_holder).add(lockedBalance);
    }

    function releaseLock(address _holder) internal {

        for(uint256 i = 0; i < lockInfo[_holder].length ; i++ ) {
            if (lockInfo[_holder][i].releaseTime <= now) {
                _balances[_holder] = _balances[_holder].add(lockInfo[_holder][i].balance);
                emit Unlock(_holder, lockInfo[_holder][i].balance);
                lockInfo[_holder][i].balance = 0;

                if (i != lockInfo[_holder].length - 1) {
                    lockInfo[_holder][i] = lockInfo[_holder][lockInfo[_holder].length - 1];
                    i--;
                }
                lockInfo[_holder].length--;

            }
        }
    }
    function lockCount(address _holder) public view returns (uint256) {
        return lockInfo[_holder].length;
    }
    function lockState(address _holder, uint256 _idx) public view returns (uint256, uint256) {
        return (lockInfo[_holder][_idx].releaseTime, lockInfo[_holder][_idx].balance);
    }

    function lock(address _holder, uint256 _amount, uint256 _releaseTime) public onlyOwner {
        require(super.balanceOf(_holder) >= _amount, "Balance is too small.");
        require(block.timestamp <= _releaseTime, "TokenTimelock: release time is before current time");
        
        _balances[_holder] = _balances[_holder].sub(_amount);
        lockInfo[_holder].push(
            LockInfo(_releaseTime, _amount)
        );
        emit Lock(_holder, _amount, _releaseTime);
    }

    function unlock(address _holder, uint256 i) public onlyOwner {
        require(i < lockInfo[_holder].length, "No lock information.");

        _balances[_holder] = _balances[_holder].add(lockInfo[_holder][i].balance);
        emit Unlock(_holder, lockInfo[_holder][i].balance);
        lockInfo[_holder][i].balance = 0;

        if (i != lockInfo[_holder].length - 1) {
            lockInfo[_holder][i] = lockInfo[_holder][lockInfo[_holder].length - 1];
        }
        lockInfo[_holder].length--;
    }

    function transferWithLock(address _to, uint256 _value, uint256 _releaseTime) public onlyOwner returns (bool) {
        require(_to != address(0), "wrong address");
        require(_value <= super.balanceOf(owner), "Not enough balance");
        require(block.timestamp <= _releaseTime, "TokenTimelock: release time is before current time");

        _balances[owner] = _balances[owner].sub(_value);
        lockInfo[_to].push(
            LockInfo(_releaseTime, _value)
        );
        emit Transfer(owner, _to, _value);
        emit Lock(_to, _value, _releaseTime);

        return true;
    }
    
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"},{"name":"_idx","type":"uint256"}],"name":"lockState","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"},{"name":"i","type":"uint256"}],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_releaseTime","type":"uint256"}],"name":"transferWithLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"}],"name":"lockCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_releaseTime","type":"uint256"}],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"releaseTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040523480156200001157600080fd5b506200003533601260ff16600a0a62989680026200007c60201b62002b4b1760201c565b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002cf565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6200013c816002546200024660201b620023dd1790919060201c565b6002819055506200019a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200024660201b620023dd1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080828401905083811015620002c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b612e1380620002df6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80637eee288d116100ad578063dd62ed3e11610071578063dd62ed3e1461063c578063de6baccb146106b4578063df03458614610724578063e2ab691d1461077c578063f2fde38b146107d45761012c565b80637eee288d146104555780638da5cb5b146104a357806395d89b41146104ed578063a457c2d714610570578063a9059cbb146105d65761012c565b8063378dc3dc116100f4578063378dc3dc146102e2578063395093511461030057806342966c681461036657806346cf1bb51461039457806370a08231146103fd5761012c565b806306fdde0314610131578063095ea7b3146101b457806318160ddd1461021a57806323b872dd14610238578063313ce567146102be575b600080fd5b610139610818565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561017957808201518184015260208101905061015e565b50505050905090810190601f1680156101a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610200600480360360408110156101ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610851565b604051808215151515815260200191505060405180910390f35b610222610868565b6040518082815260200191505060405180910390f35b6102a46004803603606081101561024e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610872565b604051808215151515815260200191505060405180910390f35b6102c6610891565b604051808260ff1660ff16815260200191505060405180910390f35b6102ea610896565b6040518082815260200191505060405180910390f35b61034c6004803603604081101561031657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108a6565b604051808215151515815260200191505060405180910390f35b6103926004803603602081101561037c57600080fd5b810190808035906020019092919050505061094b565b005b6103e0600480360360408110156103aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b4d565b604051808381526020018281526020019250505060405180910390f35b61043f6004803603602081101561041357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c13565b6040518082815260200191505060405180910390f35b6104a16004803603604081101561046b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d0b565b005b6104ab61122d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104f5611253565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053557808201518184015260208101905061051a565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105bc6004803603604081101561058657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061128c565b604051808215151515815260200191505060405180910390f35b610622600480360360408110156105ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611331565b604051808215151515815260200191505060405180910390f35b61069e6004803603604081101561065257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061134e565b6040518082815260200191505060405180910390f35b61070a600480360360608110156106ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506113d5565b604051808215151515815260200191505060405180910390f35b6107666004803603602081101561073a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061188b565b6040518082815260200191505060405180910390f35b6107d26004803603606081101561079257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506118d7565b005b610816600480360360208110156107ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bf5565b005b6040518060400160405280600881526020017f436f6d706f756e6400000000000000000000000000000000000000000000000081525081565b600061085e338484611cc4565b6001905092915050565b6000600254905090565b600061087d84611ebb565b61088884848461232c565b90509392505050565b601281565b601260ff16600a0a629896800281565b6000610941338461093c85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123dd90919063ffffffff16565b611cc4565b6001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b610a39600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612465565b811115610aae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f42616c616e636520697320746f6f20736d616c6c2e000000000000000000000081525060200191505060405180910390fd5b610ada600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826124ad565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a250565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610b9a57fe5b906000526020600020906002020160000154600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610bf657fe5b906000526020600020906002020160010154915091509250929050565b6000806000905060008090505b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015610ce757610cd8600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610cb757fe5b906000526020600020906002020160010154836123dd90919063ffffffff16565b91508080600101915050610c20565b50610d0381610cf585612465565b6123dd90919063ffffffff16565b915050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110610e85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f206c6f636b20696e666f726d6174696f6e2e00000000000000000000000081525060200191505060405180910390fd5b610f31600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610ed257fe5b9060005260206000209060020201600101546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123dd90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610ff557fe5b9060005260206000209060020201600101546040518082815260200191505060405180910390a26000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061106857fe5b9060005260206000209060020201600101819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500381146111d657600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050038154811061115857fe5b9060005260206000209060020201600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106111b057fe5b906000526020600020906002020160008201548160000155600182015481600101559050505b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054809190600190036112289190612aea565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600481526020017f434f4d500000000000000000000000000000000000000000000000000000000081525081565b6000611327338461132285600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b611cc4565b6001905092915050565b600061133c33611ebb565b61134683836126d4565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461149a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561153d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f77726f6e6720616464726573730000000000000000000000000000000000000081525060200191505060405180910390fd5b611568600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612465565b8311156115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b81421115611636576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180612db66032913960400191505060405180910390fd5b6116a983600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8484604051808381526020018281526020019250505060405180910390a2600190509392505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461199a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b816119a484612465565b1015611a18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f42616c616e636520697320746f6f20736d616c6c2e000000000000000000000081525060200191505060405180910390fd5b80421115611a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180612db66032913960400191505060405180910390fd5b611ac2826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280838152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508273ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a2505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611cc1816126eb565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612d926024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612d2a6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008090505b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156123285742600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611f5657fe5b9060005260206000209060020201600001541161231b57612019600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611fba57fe5b9060005260206000209060020201600101546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123dd90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106120dd57fe5b9060005260206000209060020201600101546040518082815260200191505060405180910390a26000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061215057fe5b9060005260206000209060020201600101819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500381146122c757600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050038154811061224057fe5b9060005260206000209060020201600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061229857fe5b906000526020600020906002020160008201548160000155600182015481600101559050508080600190039150505b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054809190600190036123199190612aea565b505b8080600101915050611ec1565b5050565b600061233984848461284e565b6123d284336123cd85600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b611cc4565b600190509392505050565b60008082840190508381101561245b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612533576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612d4c6021913960400191505060405180910390fd5b6125488160025461264b90919063ffffffff16565b60028190555061259f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000828211156126c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b60006126e133848461284e565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561278e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416c7265616479204f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612d6d6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561295a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612d076023913960400191505060405180910390fd5b6129ab816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3e816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123dd90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b815481835581811115612b1757600202816002028360005260206000209182019101612b169190612b1c565b5b505050565b612b4891905b80821115612b4457600080820160009055600182016000905550600201612b22565b5090565b90565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b612c03816002546123dd90919063ffffffff16565b600281905550612c5a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123dd90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373546f6b656e54696d656c6f636b3a2072656c656173652074696d65206973206265666f72652063757272656e742074696d65a165627a7a72305820a1f285ca0f7a23e43cb39a72cede82550bb666122ea484583f10276834f7936c0029

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80637eee288d116100ad578063dd62ed3e11610071578063dd62ed3e1461063c578063de6baccb146106b4578063df03458614610724578063e2ab691d1461077c578063f2fde38b146107d45761012c565b80637eee288d146104555780638da5cb5b146104a357806395d89b41146104ed578063a457c2d714610570578063a9059cbb146105d65761012c565b8063378dc3dc116100f4578063378dc3dc146102e2578063395093511461030057806342966c681461036657806346cf1bb51461039457806370a08231146103fd5761012c565b806306fdde0314610131578063095ea7b3146101b457806318160ddd1461021a57806323b872dd14610238578063313ce567146102be575b600080fd5b610139610818565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561017957808201518184015260208101905061015e565b50505050905090810190601f1680156101a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610200600480360360408110156101ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610851565b604051808215151515815260200191505060405180910390f35b610222610868565b6040518082815260200191505060405180910390f35b6102a46004803603606081101561024e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610872565b604051808215151515815260200191505060405180910390f35b6102c6610891565b604051808260ff1660ff16815260200191505060405180910390f35b6102ea610896565b6040518082815260200191505060405180910390f35b61034c6004803603604081101561031657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108a6565b604051808215151515815260200191505060405180910390f35b6103926004803603602081101561037c57600080fd5b810190808035906020019092919050505061094b565b005b6103e0600480360360408110156103aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b4d565b604051808381526020018281526020019250505060405180910390f35b61043f6004803603602081101561041357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c13565b6040518082815260200191505060405180910390f35b6104a16004803603604081101561046b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d0b565b005b6104ab61122d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104f5611253565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053557808201518184015260208101905061051a565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105bc6004803603604081101561058657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061128c565b604051808215151515815260200191505060405180910390f35b610622600480360360408110156105ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611331565b604051808215151515815260200191505060405180910390f35b61069e6004803603604081101561065257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061134e565b6040518082815260200191505060405180910390f35b61070a600480360360608110156106ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506113d5565b604051808215151515815260200191505060405180910390f35b6107666004803603602081101561073a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061188b565b6040518082815260200191505060405180910390f35b6107d26004803603606081101561079257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506118d7565b005b610816600480360360208110156107ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bf5565b005b6040518060400160405280600881526020017f436f6d706f756e6400000000000000000000000000000000000000000000000081525081565b600061085e338484611cc4565b6001905092915050565b6000600254905090565b600061087d84611ebb565b61088884848461232c565b90509392505050565b601281565b601260ff16600a0a629896800281565b6000610941338461093c85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123dd90919063ffffffff16565b611cc4565b6001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b610a39600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612465565b811115610aae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f42616c616e636520697320746f6f20736d616c6c2e000000000000000000000081525060200191505060405180910390fd5b610ada600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826124ad565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a250565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610b9a57fe5b906000526020600020906002020160000154600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610bf657fe5b906000526020600020906002020160010154915091509250929050565b6000806000905060008090505b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015610ce757610cd8600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610cb757fe5b906000526020600020906002020160010154836123dd90919063ffffffff16565b91508080600101915050610c20565b50610d0381610cf585612465565b6123dd90919063ffffffff16565b915050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110610e85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f206c6f636b20696e666f726d6174696f6e2e00000000000000000000000081525060200191505060405180910390fd5b610f31600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610ed257fe5b9060005260206000209060020201600101546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123dd90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610ff557fe5b9060005260206000209060020201600101546040518082815260200191505060405180910390a26000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061106857fe5b9060005260206000209060020201600101819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500381146111d657600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050038154811061115857fe5b9060005260206000209060020201600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106111b057fe5b906000526020600020906002020160008201548160000155600182015481600101559050505b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054809190600190036112289190612aea565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600481526020017f434f4d500000000000000000000000000000000000000000000000000000000081525081565b6000611327338461132285600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b611cc4565b6001905092915050565b600061133c33611ebb565b61134683836126d4565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461149a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561153d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f77726f6e6720616464726573730000000000000000000000000000000000000081525060200191505060405180910390fd5b611568600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612465565b8311156115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b81421115611636576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180612db66032913960400191505060405180910390fd5b6116a983600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8484604051808381526020018281526020019250505060405180910390a2600190509392505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461199a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b816119a484612465565b1015611a18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f42616c616e636520697320746f6f20736d616c6c2e000000000000000000000081525060200191505060405180910390fd5b80421115611a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180612db66032913960400191505060405180910390fd5b611ac2826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280838152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508273ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a2505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e6f74206f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611cc1816126eb565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612d926024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612d2a6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008090505b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156123285742600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611f5657fe5b9060005260206000209060020201600001541161231b57612019600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611fba57fe5b9060005260206000209060020201600101546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123dd90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106120dd57fe5b9060005260206000209060020201600101546040518082815260200191505060405180910390a26000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061215057fe5b9060005260206000209060020201600101819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500381146122c757600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050038154811061224057fe5b9060005260206000209060020201600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061229857fe5b906000526020600020906002020160008201548160000155600182015481600101559050508080600190039150505b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054809190600190036123199190612aea565b505b8080600101915050611ec1565b5050565b600061233984848461284e565b6123d284336123cd85600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b611cc4565b600190509392505050565b60008082840190508381101561245b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612533576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612d4c6021913960400191505060405180910390fd5b6125488160025461264b90919063ffffffff16565b60028190555061259f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000828211156126c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b60006126e133848461284e565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561278e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416c7265616479204f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612d6d6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561295a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612d076023913960400191505060405180910390fd5b6129ab816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3e816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123dd90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b815481835581811115612b1757600202816002028360005260206000209182019101612b169190612b1c565b5b505050565b612b4891905b80821115612b4457600080820160009055600182016000905550600201612b22565b5090565b90565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b612c03816002546123dd90919063ffffffff16565b600281905550612c5a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123dd90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373546f6b656e54696d656c6f636b3a2072656c656173652074696d65206973206265666f72652063757272656e742074696d65a165627a7a72305820a1f285ca0f7a23e43cb39a72cede82550bb666122ea484583f10276834f7936c0029

Deployed Bytecode Sourcemap

4938:4981:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4938:4981:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4968:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4968:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2493:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2493:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1970:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6152:236;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6152:236:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5061:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5104:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2913:206;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2913:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6454:200;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6454:200:0;;;;;;;;;;;;;;;;;:::i;:::-;;8080:185;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8080:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6942:335;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6942:335:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8776:516;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8776:516:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5308:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5015:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5015:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3127:216;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3127:216:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5942:202;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5942:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2351:134;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2351:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9300:610;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9300:610:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7958:116;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7958:116:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8273:495;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8273:495:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5609:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5609:111:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4968:40;;;;;;;;;;;;;;;;;;;:::o;2493:148::-;2558:4;2575:36;2584:10;2596:7;2605:5;2575:8;:36::i;:::-;2629:4;2622:11;;2493:148;;;;:::o;1970:91::-;2014:7;2041:12;;2034:19;;1970:91;:::o;6152:236::-;6284:4;6306:18;6318:5;6306:11;:18::i;:::-;6342:38;6361:5;6368:3;6373:6;6342:18;:38::i;:::-;6335:45;;6152:236;;;;;:::o;5061:35::-;5094:2;5061:35;:::o;5104:76::-;5094:2;5162:17;;5156:2;:23;5144:8;:36;5104:76;:::o;2913:206::-;2993:4;3010:79;3019:10;3031:7;3040:48;3077:10;3040:11;:23;3052:10;3040:23;;;;;;;;;;;;;;;:32;3064:7;3040:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;3010:8;:79::i;:::-;3107:4;3100:11;;2913:206;;;;:::o;6454:200::-;5562:5;;;;;;;;;;;5548:19;;:10;:19;;;5540:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6530:22;6546:5;;;;;;;;;;;6530:15;:22::i;:::-;6520:6;:32;;6512:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:20;6597:5;;;;;;;;;;;6604:6;6591:5;:20::i;:::-;6632:5;;;;;;;;;;;6627:19;;;6639:6;6627:19;;;;;;;;;;;;;;;;;;6454:200;:::o;8080:185::-;8151:7;8160;8188:8;:17;8197:7;8188:17;;;;;;;;;;;;;;;8206:4;8188:23;;;;;;;;;;;;;;;;;;:35;;;8225:8;:17;8234:7;8225:17;;;;;;;;;;;;;;;8243:4;8225:23;;;;;;;;;;;;;;;;;;:31;;;8180:77;;;;8080:185;;;;;:::o;6942:335::-;6999:15;7027:21;7051:1;7027:25;;7067:9;7079:1;7067:13;;7063:146;7086:8;:17;7095:7;7086:17;;;;;;;;;;;;;;;:24;;;;7082:1;:28;7063:146;;;7150:47;7168:8;:17;7177:7;7168:17;;;;;;;;;;;;;;;7186:1;7168:20;;;;;;;;;;;;;;;;;;:28;;;7150:13;:17;;:47;;;;:::i;:::-;7134:63;;7113:3;;;;;;;7063:146;;;;7226:43;7255:13;7226:24;7242:7;7226:15;:24::i;:::-;:28;;:43;;;;:::i;:::-;7219:50;;;6942:335;;;:::o;8776:516::-;5562:5;;;;;;;;;;;5548:19;;:10;:19;;;5540:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8860:8;:17;8869:7;8860:17;;;;;;;;;;;;;;;:24;;;;8856:1;:28;8848:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8943:52;8966:8;:17;8975:7;8966:17;;;;;;;;;;;;;;;8984:1;8966:20;;;;;;;;;;;;;;;;;;:28;;;8943:9;:18;8953:7;8943:18;;;;;;;;;;;;;;;;:22;;:52;;;;:::i;:::-;8922:9;:18;8932:7;8922:18;;;;;;;;;;;;;;;:73;;;;9018:7;9011:45;;;9027:8;:17;9036:7;9027:17;;;;;;;;;;;;;;;9045:1;9027:20;;;;;;;;;;;;;;;;;;:28;;;9011:45;;;;;;;;;;;;;;;;;;9098:1;9067:8;:17;9076:7;9067:17;;;;;;;;;;;;;;;9085:1;9067:20;;;;;;;;;;;;;;;;;;:28;;:32;;;;9148:1;9121:8;:17;9130:7;9121:17;;;;;;;;;;;;;;;:24;;;;:28;9116:1;:33;9112:136;;9189:8;:17;9198:7;9189:17;;;;;;;;;;;;;;;9234:1;9207:8;:17;9216:7;9207:17;;;;;;;;;;;;;;;:24;;;;:28;9189:47;;;;;;;;;;;;;;;;;;9166:8;:17;9175:7;9166:17;;;;;;;;;;;;;;;9184:1;9166:20;;;;;;;;;;;;;;;;;;:70;;;;;;;;;;;;;;;;;;;9112:136;9258:8;:17;9267:7;9258:17;;;;;;;;;;;;;;;:26;;;;;;;;;;;;:::i;:::-;;8776:516;;:::o;5308:20::-;;;;;;;;;;;;;:::o;5015:38::-;;;;;;;;;;;;;;;;;;;:::o;3127:216::-;3212:4;3229:84;3238:10;3250:7;3259:53;3296:15;3259:11;:23;3271:10;3259:23;;;;;;;;;;;;;;;:32;3283:7;3259:32;;;;;;;;;;;;;;;;:36;;:53;;;;:::i;:::-;3229:8;:84::i;:::-;3331:4;3324:11;;3127:216;;;;:::o;5942:202::-;6046:4;6068:23;6080:10;6068:11;:23::i;:::-;6109:27;6124:3;6129:6;6109:14;:27::i;:::-;6102:34;;5942:202;;;;:::o;2351:134::-;2423:7;2450:11;:18;2462:5;2450:18;;;;;;;;;;;;;;;:27;2469:7;2450:27;;;;;;;;;;;;;;;;2443:34;;2351:134;;;;:::o;9300:610::-;9403:4;5562:5;;;;;;;;;;;5548:19;;:10;:19;;;5540:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9443:1;9428:17;;:3;:17;;;;9420:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9492:22;9508:5;;;;;;;;;;;9492:15;:22::i;:::-;9482:6;:32;;9474:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9575:12;9556:15;:31;;9548:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9674:28;9695:6;9674:9;:16;9684:5;;;;;;;;;;;9674:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;9655:9;:16;9665:5;;;;;;;;;;;9655:16;;;;;;;;;;;;;;;:47;;;;9713:8;:13;9722:3;9713:13;;;;;;;;;;;;;;;9746:30;;;;;;;;9755:12;9746:30;;;;9769:6;9746:30;;;9713:74;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9713:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9819:3;9803:28;;9812:5;;;;;;;;;;;9803:28;;;9824:6;9803:28;;;;;;;;;;;;;;;;;;9852:3;9847:31;;;9857:6;9865:12;9847:31;;;;;;;;;;;;;;;;;;;;;;;;9898:4;9891:11;;9300:610;;;;;:::o;7958:116::-;8015:7;8042:8;:17;8051:7;8042:17;;;;;;;;;;;;;;;:24;;;;8035:31;;7958:116;;;:::o;8273:495::-;5562:5;;;;;;;;;;;5548:19;;:10;:19;;;5540:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:7;8379:24;8395:7;8379:15;:24::i;:::-;:35;;8371:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8478:12;8459:15;:31;;8451:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8587:31;8610:7;8587:9;:18;8597:7;8587:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;8566:9;:18;8576:7;8566:18;;;;;;;;;;;;;;;:52;;;;8629:8;:17;8638:7;8629:17;;;;;;;;;;;;;;;8666:31;;;;;;;;8675:12;8666:31;;;;8689:7;8666:31;;;8629:79;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8629:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8729:7;8724:36;;;8738:7;8747:12;8724:36;;;;;;;;;;;;;;;;;;;;;;;;8273:495;;;:::o;5609:111::-;5562:5;;;;;;;;;;;5548:19;;:10;:19;;;5540:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5683:29;5702:9;5683:18;:29::i;:::-;5609:111;:::o;4408:335::-;4518:1;4501:19;;:5;:19;;;;4493:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4599:1;4580:21;;:7;:21;;;;4572:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4683:5;4653:11;:18;4665:5;4653:18;;;;;;;;;;;;;;;:27;4672:7;4653:27;;;;;;;;;;;;;;;:35;;;;4720:7;4704:31;;4713:5;4704:31;;;4729:5;4704:31;;;;;;;;;;;;;;;;;;4408:335;;;:::o;7285:667::-;7349:9;7361:1;7349:13;;7345:600;7368:8;:17;7377:7;7368:17;;;;;;;;;;;;;;;:24;;;;7364:1;:28;7345:600;;;7456:3;7420:8;:17;7429:7;7420:17;;;;;;;;;;;;;;;7438:1;7420:20;;;;;;;;;;;;;;;;;;:32;;;:39;7416:518;;7501:52;7524:8;:17;7533:7;7524:17;;;;;;;;;;;;;;;7542:1;7524:20;;;;;;;;;;;;;;;;;;:28;;;7501:9;:18;7511:7;7501:18;;;;;;;;;;;;;;;;:22;;:52;;;;:::i;:::-;7480:9;:18;7490:7;7480:18;;;;;;;;;;;;;;;:73;;;;7584:7;7577:45;;;7593:8;:17;7602:7;7593:17;;;;;;;;;;;;;;;7611:1;7593:20;;;;;;;;;;;;;;;;;;:28;;;7577:45;;;;;;;;;;;;;;;;;;7672:1;7641:8;:17;7650:7;7641:17;;;;;;;;;;;;;;;7659:1;7641:20;;;;;;;;;;;;;;;;;;:28;;:32;;;;7730:1;7703:8;:17;7712:7;7703:17;;;;;;;;;;;;;;;:24;;;;:28;7698:1;:33;7694:178;;7779:8;:17;7788:7;7779:17;;;;;;;;;;;;;;;7824:1;7797:8;:17;7806:7;7797:17;;;;;;;;;;;;;;;:24;;;;:28;7779:47;;;;;;;;;;;;;;;;;;7756:8;:17;7765:7;7756:17;;;;;;;;;;;;;;;7774:1;7756:20;;;;;;;;;;;;;;;;;;:70;;;;;;;;;;;;;;;;;;;7849:3;;;;;;;;7694:178;7890:8;:17;7899:7;7890:17;;;;;;;;;;;;;;;:26;;;;;;;;;;;;:::i;:::-;;7416:518;7395:3;;;;;;;7345:600;;;;7285:667;:::o;2649:256::-;2738:4;2755:36;2765:6;2773:9;2784:6;2755:9;:36::i;:::-;2802:73;2811:6;2819:10;2831:43;2867:6;2831:11;:19;2843:6;2831:19;;;;;;;;;;;;;;;:31;2851:10;2831:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;2802:8;:73::i;:::-;2893:4;2886:11;;2649:256;;;;;:::o;745:181::-;803:7;823:9;839:1;835;:5;823:17;;864:1;859;:6;;851:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;917:1;910:8;;;745:181;;;;:::o;2069:110::-;2126:7;2153:9;:18;2163:7;2153:18;;;;;;;;;;;;;;;;2146:25;;2069:110;;;:::o;4104:296::-;4194:1;4177:19;;:5;:19;;;;4169:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4262:23;4279:5;4262:12;;:16;;:23;;;;:::i;:::-;4247:12;:38;;;;4315:27;4336:5;4315:9;:16;4325:5;4315:16;;;;;;;;;;;;;;;;:20;;:27;;;;:::i;:::-;4296:9;:16;4306:5;4296:16;;;;;;;;;;;;;;;:46;;;;4382:1;4358:34;;4367:5;4358:34;;;4386:5;4358:34;;;;;;;;;;;;;;;;;;4104:296;;:::o;934:184::-;992:7;1025:1;1020;:6;;1012:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1072:9;1088:1;1084;:5;1072:17;;1109:1;1102:8;;;934:184;;;;:::o;2187:156::-;2256:4;2273:40;2283:10;2295:9;2306:6;2273:9;:40::i;:::-;2331:4;2324:11;;2187:156;;;;:::o;5728:206::-;5824:1;5803:23;;:9;:23;;;;5795:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5888:9;5860:38;;5881:5;;;;;;;;;;;5860:38;;;;;;;;;;;;5917:9;5909:5;;:17;;;;;;;;;;;;;;;;;;5728:206;:::o;3351:429::-;3467:1;3449:20;;:6;:20;;;;3441:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3551:1;3530:23;;:9;:23;;;;3522:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3626:29;3648:6;3626:9;:17;3636:6;3626:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;3606:9;:17;3616:6;3606:17;;;;;;;;;;;;;;;:49;;;;3689:32;3714:6;3689:9;:20;3699:9;3689:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;3666:9;:20;3676:9;3666:20;;;;;;;;;;;;;;;:55;;;;3754:9;3737:35;;3746:6;3737:35;;;3765:6;3737:35;;;;;;;;;;;;;;;;;;3351:429;;;:::o;4938:4981::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3788:308::-;3883:1;3864:21;;:7;:21;;;;3856:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3949:24;3966:6;3949:12;;:16;;:24;;;;:::i;:::-;3934:12;:39;;;;4005:30;4028:6;4005:9;:18;4015:7;4005:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;3984:9;:18;3994:7;3984:18;;;;;;;;;;;;;;;:51;;;;4072:7;4051:37;;4068:1;4051:37;;;4081:6;4051:37;;;;;;;;;;;;;;;;;;3788:308;;:::o

Swarm Source

bzzr://a1f285ca0f7a23e43cb39a72cede82550bb666122ea484583f10276834f7936c

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.