ETH Price: $3,417.21 (+3.05%)

Contract

0xc58467b855401EF3FF8FdA9216F236e29f0d6277
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Gasgains (GASG) (@$0.00)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve200076242024-06-03 0:09:47204 days ago1717373387IN
Gasgains: GASG Token
0 ETH0.000199468.201905
Approve198460972024-05-11 10:08:35226 days ago1715422115IN
Gasgains: GASG Token
0 ETH0.000125245.15007427
Approve197038732024-04-21 12:47:35246 days ago1713703655IN
Gasgains: GASG Token
0 ETH0.000196888.09600499
Approve196950062024-04-20 7:01:47247 days ago1713596507IN
Gasgains: GASG Token
0 ETH0.000223349.18413272
Approve195251692024-03-27 10:48:23271 days ago1711536503IN
Gasgains: GASG Token
0 ETH0.0005418722.28215872
Approve194872022024-03-22 2:30:35277 days ago1711074635IN
Gasgains: GASG Token
0 ETH0.0005392222.17281656
Approve192605052024-02-19 8:09:59308 days ago1708330199IN
Gasgains: GASG Token
0 ETH0.0006504726.74774546
Approve189156652024-01-01 22:51:59357 days ago1704149519IN
Gasgains: GASG Token
0 ETH0.0002944612.10827131
Approve189067422023-12-31 16:47:47358 days ago1704041267IN
Gasgains: GASG Token
0 ETH0.0007888617.05467913
Approve188722032023-12-26 20:19:59363 days ago1703621999IN
Gasgains: GASG Token
0 ETH0.0007371515.83817236
Approve188721732023-12-26 20:13:47363 days ago1703621627IN
Gasgains: GASG Token
0 ETH0.0007059715.24676351
Approve187652902023-12-11 20:17:47378 days ago1702325867IN
Gasgains: GASG Token
0 ETH0.0009777140.20383607
Approve185615602023-11-13 7:41:47406 days ago1699861307IN
Gasgains: GASG Token
0 ETH0.0006543226.90593307
Approve183286452023-10-11 17:20:11439 days ago1697044811IN
Gasgains: GASG Token
0 ETH0.000236169.71096336
Approve180191742023-08-29 8:45:47482 days ago1693298747IN
Gasgains: GASG Token
0 ETH0.0003719415.29450455
Approve175397852023-06-23 4:04:23550 days ago1687493063IN
Gasgains: GASG Token
0 ETH0.0004058316.68803786
Approve172761902023-05-17 1:45:47587 days ago1684287947IN
Gasgains: GASG Token
0 ETH0.0009401138.65773727
Approve170516742023-04-15 9:58:35618 days ago1681552715IN
Gasgains: GASG Token
0 ETH0.0005753823.65975324
Approve170113252023-04-09 14:27:11624 days ago1681050431IN
Gasgains: GASG Token
0 ETH0.0005611523.07481609
Approve170097022023-04-09 8:55:47624 days ago1681030547IN
Gasgains: GASG Token
0 ETH0.0004722419.41871043
Approve170093852023-04-09 7:50:59624 days ago1681026659IN
Gasgains: GASG Token
0 ETH0.0005428722.32303398
Approve169676082023-04-03 9:27:11630 days ago1680514031IN
Gasgains: GASG Token
0 ETH0.0005321721.88324099
Approve169623272023-04-02 15:35:23631 days ago1680449723IN
Gasgains: GASG Token
0 ETH0.0007538831
Approve169621062023-04-02 14:50:11631 days ago1680447011IN
Gasgains: GASG Token
0 ETH0.0006279225.8203097
Approve169558132023-04-01 17:34:35632 days ago1680370475IN
Gasgains: GASG Token
0 ETH0.0006612127.189172
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Gasgains

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-01-22
*/

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

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) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

contract Gasgains is Ownable, IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

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

    mapping (address => Lock[]) _locks;

    uint256 private _totalSupply = 1000000 ether;

    string private _name = "Gasgains";
    string private _symbol = "GASG";
    uint8 private _decimals = 18;

    uint256 private _percentFees = 5;

    event Deposit(address indexed depositor, uint256 depositAmount, uint256 timestamp, uint256 unlockTimestamp);

    struct Lock {
        uint256 lockAmount;
        uint256 unlockTime;
    }

    constructor() {
        _balances[owner()] = _totalSupply;
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

    function getContractBalance() public view returns (uint256) {
        return _balances[address(this)];
    }

    function getFeeAmount(uint256 amount) public view returns (uint256) {
        return amount.mul(_percentFees).div(100);
    }

    function getUnlockableAmount(address account) public view returns (uint256) {
        Lock[] memory locks = _locks[account];
        uint256 unlockableAmount = 0;

        for (uint i=0; i<locks.length; i++) {
            if (block.timestamp >= locks[i].unlockTime) {
                unlockableAmount = unlockableAmount.add(locks[i].lockAmount);
            }
        }
        
        return unlockableAmount;
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function lock(uint256 amount) public virtual {
        address user = _msgSender();
        uint256 lockAmount = amount;
        uint256 timestamp = block.timestamp;
        uint256 unlockTimestamp = timestamp.add(30 days);

        _depositForLock(user, lockAmount);

        Lock memory currentLock = Lock(
            {
                lockAmount: amount,
                unlockTime: unlockTimestamp
            }
        );

        _locks[user].push(currentLock);

        emit Deposit(user, lockAmount, timestamp, unlockTimestamp);
    }

    function unlock() public virtual {
        uint256 unlockableAmount = getUnlockableAmount(_msgSender());
        require(unlockableAmount > 0, "No unlockable Tokens");
                
        Lock[] storage locks = _locks[_msgSender()];
        uint256 withdrawAmount = 0;

        // loop just in case somehow the order gets messed up, would be possible with single assignment from index 0 too
        for (uint i=0; i<locks.length; i++) {
            if (block.timestamp >= locks[i].unlockTime) {
                withdrawAmount = withdrawAmount.add(locks[i].lockAmount);
                locks = _removeIndex(i, locks);
                break;
            }
        }

        _locks[_msgSender()] = locks;

        _withdrawFromLock(_msgSender(), withdrawAmount);
    }

    function _removeIndex(uint256 index, Lock[] storage array) internal virtual returns(Lock[] storage) {
        if (index >= array.length) {
            return array;
        }

        for (uint i=index; i<array.length-1; i++) {
            array[i] = array[i+1];
        }

        array.pop();

        return array;
    }

    function _depositForLock(address sender, uint256 amount) internal virtual {
        _balances[sender] = _balances[sender].sub(amount, "ERC20: lock amount exceeds balance");
        _balances[address(this)] = _balances[address(this)].add(amount);
    }

    function _withdrawFromLock(address withdrawer, uint256 amount) internal virtual {
        _balances[address(this)] = _balances[address(this)].sub(amount);
        _balances[withdrawer] = _balances[withdrawer].add(amount);
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 transferFee = getFeeAmount(amount);
        uint256 amountAfterFee = amount.sub(transferFee);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amountAfterFee);

        _balances[owner()] = _balances[owner()].add(transferFee);

        emit Transfer(sender, recipient, amount);
    }

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

        _beforeTokenTransfer(address(0), account, amount);

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

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

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

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

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

    function _setupDecimals(uint8 decimals_) internal virtual {
        _decimals = decimals_;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"depositor","type":"address"},{"indexed":false,"internalType":"uint256","name":"depositAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockTimestamp","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getFeeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getUnlockableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405269d3c21bcecceda10000006004556040518060400160405280600881526020017f4761736761696e73000000000000000000000000000000000000000000000000815250600590805190602001906200005f92919062000219565b506040518060400160405280600481526020017f474153470000000000000000000000000000000000000000000000000000000081525060069080519060200190620000ad92919062000219565b506012600760006101000a81548160ff021916908360ff1602179055506005600855348015620000dc57600080fd5b506000620000ef620001e860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060045460016000620001a4620001f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002cf565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200025157600085556200029d565b82601f106200026c57805160ff19168380011785556200029d565b828001600101855582156200029d579182015b828111156200029c5782518255916020019190600101906200027f565b5b509050620002ac9190620002b0565b5090565b5b80821115620002cb576000816000905550600101620002b1565b5090565b61221f80620002df6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80638da5cb5b116100ad578063a9059cbb11610071578063a9059cbb1461051b578063dd4670641461057f578063dd62ed3e146105ad578063e680be4d14610625578063f2fde38b1461067d57610121565b80638da5cb5b146103b457806395d89b41146103e85780639704122c1461046b578063a457c2d7146104ad578063a69df4b51461051157610121565b8063313ce567116100f4578063313ce567146102af57806339509351146102d05780636f9fb98a1461033457806370a0823114610352578063715018a6146103aa57610121565b806306fdde0314610126578063095ea7b3146101a957806318160ddd1461020d57806323b872dd1461022b575b600080fd5b61012e6106c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561016e578082015181840152602081019050610153565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f5600480360360408110156101bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610763565b60405180821515815260200191505060405180910390f35b610215610781565b6040518082815260200191505060405180910390f35b6102976004803603606081101561024157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061078b565b60405180821515815260200191505060405180910390f35b6102b7610864565b604051808260ff16815260200191505060405180910390f35b61031c600480360360408110156102e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087b565b60405180821515815260200191505060405180910390f35b61033c61092e565b6040518082815260200191505060405180910390f35b6103946004803603602081101561036857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610975565b6040518082815260200191505060405180910390f35b6103b26109be565b005b6103bc610b44565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103f0610b6d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610430578082015181840152602081019050610415565b50505050905090810190601f16801561045d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104976004803603602081101561048157600080fd5b8101908080359060200190929190505050610c0f565b6040518082815260200191505060405180910390f35b6104f9600480360360408110156104c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c40565b60405180821515815260200191505060405180910390f35b610519610d0d565b005b6105676004803603604081101561053157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed2565b60405180821515815260200191505060405180910390f35b6105ab6004803603602081101561059557600080fd5b8101908080359060200190929190505050610ef0565b005b61060f600480360360408110156105c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061102e565b6040518082815260200191505060405180910390f35b6106676004803603602081101561063b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b5565b6040518082815260200191505060405180910390f35b6106bf6004803603602081101561069357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111d4565b005b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107595780601f1061072e57610100808354040283529160200191610759565b820191906000526020600020905b81548152906001019060200180831161073c57829003601f168201915b5050505050905090565b60006107776107706113df565b84846113e7565b6001905092915050565b6000600454905090565b60006107988484846115de565b610859846107a46113df565b6108548560405180606001604052806028815260200161215460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061080a6113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b6113e7565b600190509392505050565b6000600760009054906101000a900460ff16905090565b60006109246108886113df565b8461091f85600260006108996113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b6113e7565b6001905092915050565b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109c66113df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c055780601f10610bda57610100808354040283529160200191610c05565b820191906000526020600020905b815481529060010190602001808311610be857829003601f168201915b5050505050905090565b6000610c396064610c2b60085485611ab490919063ffffffff16565b611b3a90919063ffffffff16565b9050919050565b6000610d03610c4d6113df565b84610cfe856040518060600160405280602581526020016121c56025913960026000610c776113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b6113e7565b6001905092915050565b6000610d1f610d1a6113df565b6110b5565b905060008111610d97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f20756e6c6f636b61626c6520546f6b656e7300000000000000000000000081525060200191505060405180910390fd5b600060036000610da56113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000805b8280549050811015610e6557828181548110610dfd57fe5b9060005260206000209060020201600101544210610e5857610e45838281548110610e2457fe5b90600052602060002090600202016000015483611a2c90919063ffffffff16565b9150610e518184611b84565b9250610e65565b8080600101915050610de5565b508160036000610e736113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908054610ebb929190611fd2565b50610ecd610ec76113df565b82611c47565b505050565b6000610ee6610edf6113df565b84846115de565b6001905092915050565b6000610efa6113df565b9050600082905060004290506000610f1e62278d0083611a2c90919063ffffffff16565b9050610f2a8484611d75565b610f3261203e565b6040518060400160405280878152602001838152509050600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508473ffffffffffffffffffffffffffffffffffffffff167f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e85858560405180848152602001838152602001828152602001935050505060405180910390a2505050505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006060600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561115e57838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190611118565b5050505090506000805b82518110156111c95782818151811061117d57fe5b60200260200101516020015142106111bc576111b983828151811061119e57fe5b60200260200101516000015183611a2c90919063ffffffff16565b91505b8080600101915050611168565b508092505050919050565b6111dc6113df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461129c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611322576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806120a36026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561146d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806121a16024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806120c96022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061217c6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806120806023913960400191505060405180910390fd5b6116f5838383611ebd565b600061170082610c0f565b905060006117178284611ec290919063ffffffff16565b90506117858360405180606001604052806026815260200161210d60269139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061181a81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118b6826001600061186d610b44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160006118c2610b44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b6000838311158290611a19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156119de5780820151818401526020810190506119c3565b50505050905090810190601f168015611a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015611aaa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415611ac75760009050611b34565b6000828402905082848281611ad857fe5b0414611b2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121336021913960400191505060405180910390fd5b809150505b92915050565b6000611b7c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f0c565b905092915050565b600081805490508310611b9957819050611c41565b60008390505b6001838054905003811015611c0957826001820181548110611bbd57fe5b9060005260206000209060020201838281548110611bd757fe5b906000526020600020906002020160008201548160000155600182015481600101559050508080600101915050611b9f565b5081805480611c1457fe5b60019003818190600052602060002090600202016000808201600090556001820160009055505090558190505b92915050565b611c9981600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ec290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d2e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b611de1816040518060600160405280602281526020016120eb60229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e7681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b505050565b6000611f0483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061196c565b905092915050565b60008083118290611fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f7d578082015181840152602081019050611f62565b50505050905090810190601f168015611faa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611fc457fe5b049050809150509392505050565b82805482825590600052602060002090600202810192821561202d5760005260206000209160020282015b8281111561202c5782826000820154816000015560018201548160010155505091600201919060020190611ffd565b5b50905061203a9190612058565b5090565b604051806040016040528060008152602001600081525090565b5b8082111561207b57600080820160009055600182016000905550600201612059565b509056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206c6f636b20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fbc401410bb554a8416dcdc0d8ba91f277526fc8f499fafffa1edbc02b7120b164736f6c63430007040033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101215760003560e01c80638da5cb5b116100ad578063a9059cbb11610071578063a9059cbb1461051b578063dd4670641461057f578063dd62ed3e146105ad578063e680be4d14610625578063f2fde38b1461067d57610121565b80638da5cb5b146103b457806395d89b41146103e85780639704122c1461046b578063a457c2d7146104ad578063a69df4b51461051157610121565b8063313ce567116100f4578063313ce567146102af57806339509351146102d05780636f9fb98a1461033457806370a0823114610352578063715018a6146103aa57610121565b806306fdde0314610126578063095ea7b3146101a957806318160ddd1461020d57806323b872dd1461022b575b600080fd5b61012e6106c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561016e578082015181840152602081019050610153565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f5600480360360408110156101bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610763565b60405180821515815260200191505060405180910390f35b610215610781565b6040518082815260200191505060405180910390f35b6102976004803603606081101561024157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061078b565b60405180821515815260200191505060405180910390f35b6102b7610864565b604051808260ff16815260200191505060405180910390f35b61031c600480360360408110156102e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087b565b60405180821515815260200191505060405180910390f35b61033c61092e565b6040518082815260200191505060405180910390f35b6103946004803603602081101561036857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610975565b6040518082815260200191505060405180910390f35b6103b26109be565b005b6103bc610b44565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103f0610b6d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610430578082015181840152602081019050610415565b50505050905090810190601f16801561045d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104976004803603602081101561048157600080fd5b8101908080359060200190929190505050610c0f565b6040518082815260200191505060405180910390f35b6104f9600480360360408110156104c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c40565b60405180821515815260200191505060405180910390f35b610519610d0d565b005b6105676004803603604081101561053157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed2565b60405180821515815260200191505060405180910390f35b6105ab6004803603602081101561059557600080fd5b8101908080359060200190929190505050610ef0565b005b61060f600480360360408110156105c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061102e565b6040518082815260200191505060405180910390f35b6106676004803603602081101561063b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b5565b6040518082815260200191505060405180910390f35b6106bf6004803603602081101561069357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111d4565b005b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107595780601f1061072e57610100808354040283529160200191610759565b820191906000526020600020905b81548152906001019060200180831161073c57829003601f168201915b5050505050905090565b60006107776107706113df565b84846113e7565b6001905092915050565b6000600454905090565b60006107988484846115de565b610859846107a46113df565b6108548560405180606001604052806028815260200161215460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061080a6113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b6113e7565b600190509392505050565b6000600760009054906101000a900460ff16905090565b60006109246108886113df565b8461091f85600260006108996113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b6113e7565b6001905092915050565b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109c66113df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c055780601f10610bda57610100808354040283529160200191610c05565b820191906000526020600020905b815481529060010190602001808311610be857829003601f168201915b5050505050905090565b6000610c396064610c2b60085485611ab490919063ffffffff16565b611b3a90919063ffffffff16565b9050919050565b6000610d03610c4d6113df565b84610cfe856040518060600160405280602581526020016121c56025913960026000610c776113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b6113e7565b6001905092915050565b6000610d1f610d1a6113df565b6110b5565b905060008111610d97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f20756e6c6f636b61626c6520546f6b656e7300000000000000000000000081525060200191505060405180910390fd5b600060036000610da56113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000805b8280549050811015610e6557828181548110610dfd57fe5b9060005260206000209060020201600101544210610e5857610e45838281548110610e2457fe5b90600052602060002090600202016000015483611a2c90919063ffffffff16565b9150610e518184611b84565b9250610e65565b8080600101915050610de5565b508160036000610e736113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908054610ebb929190611fd2565b50610ecd610ec76113df565b82611c47565b505050565b6000610ee6610edf6113df565b84846115de565b6001905092915050565b6000610efa6113df565b9050600082905060004290506000610f1e62278d0083611a2c90919063ffffffff16565b9050610f2a8484611d75565b610f3261203e565b6040518060400160405280878152602001838152509050600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508473ffffffffffffffffffffffffffffffffffffffff167f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e85858560405180848152602001838152602001828152602001935050505060405180910390a2505050505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006060600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561115e57838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190611118565b5050505090506000805b82518110156111c95782818151811061117d57fe5b60200260200101516020015142106111bc576111b983828151811061119e57fe5b60200260200101516000015183611a2c90919063ffffffff16565b91505b8080600101915050611168565b508092505050919050565b6111dc6113df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461129c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611322576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806120a36026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561146d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806121a16024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806120c96022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061217c6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806120806023913960400191505060405180910390fd5b6116f5838383611ebd565b600061170082610c0f565b905060006117178284611ec290919063ffffffff16565b90506117858360405180606001604052806026815260200161210d60269139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061181a81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118b6826001600061186d610b44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160006118c2610b44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b6000838311158290611a19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156119de5780820151818401526020810190506119c3565b50505050905090810190601f168015611a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015611aaa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415611ac75760009050611b34565b6000828402905082848281611ad857fe5b0414611b2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121336021913960400191505060405180910390fd5b809150505b92915050565b6000611b7c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f0c565b905092915050565b600081805490508310611b9957819050611c41565b60008390505b6001838054905003811015611c0957826001820181548110611bbd57fe5b9060005260206000209060020201838281548110611bd757fe5b906000526020600020906002020160008201548160000155600182015481600101559050508080600101915050611b9f565b5081805480611c1457fe5b60019003818190600052602060002090600202016000808201600090556001820160009055505090558190505b92915050565b611c9981600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ec290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d2e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b611de1816040518060600160405280602281526020016120eb60229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e7681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b505050565b6000611f0483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061196c565b905092915050565b60008083118290611fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f7d578082015181840152602081019050611f62565b50505050905090810190601f168015611faa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611fc457fe5b049050809150509392505050565b82805482825590600052602060002090600202810192821561202d5760005260206000209160020282015b8281111561202c5782826000820154816000015560018201548160010155505091600201919060020190611ffd565b5b50905061203a9190612058565b5090565b604051806040016040528060008152602001600081525090565b5b8082111561207b57600080820160009055600182016000905550600201612059565b509056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206c6f636b20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fbc401410bb554a8416dcdc0d8ba91f277526fc8f499fafffa1edbc02b7120b164736f6c63430007040033

Deployed Bytecode Sourcemap

3719:7609:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4459:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6002:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4736:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6179:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4645:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6508:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4971:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4844:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3312:148;;;:::i;:::-;;3098:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4550:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5089:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6734:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7580:790;;;:::i;:::-;;5660:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7011:561;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5843:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5224:428;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3468:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4459:83;4496:13;4529:5;4522:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4459:83;:::o;6002:169::-;6085:4;6102:39;6111:12;:10;:12::i;:::-;6125:7;6134:6;6102:8;:39::i;:::-;6159:4;6152:11;;6002:169;;;;:::o;4736:100::-;4789:7;4816:12;;4809:19;;4736:100;:::o;6179:321::-;6285:4;6302:36;6312:6;6320:9;6331:6;6302:9;:36::i;:::-;6349:121;6358:6;6366:12;:10;:12::i;:::-;6380:89;6418:6;6380:89;;;;;;;;;;;;;;;;;:11;:19;6392:6;6380:19;;;;;;;;;;;;;;;:33;6400:12;:10;:12::i;:::-;6380:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6349:8;:121::i;:::-;6488:4;6481:11;;6179:321;;;;;:::o;4645:83::-;4686:5;4711:9;;;;;;;;;;;4704:16;;4645:83;:::o;6508:218::-;6596:4;6613:83;6622:12;:10;:12::i;:::-;6636:7;6645:50;6684:10;6645:11;:25;6657:12;:10;:12::i;:::-;6645:25;;;;;;;;;;;;;;;:34;6671:7;6645:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6613:8;:83::i;:::-;6714:4;6707:11;;6508:218;;;;:::o;4971:110::-;5022:7;5049:9;:24;5067:4;5049:24;;;;;;;;;;;;;;;;5042:31;;4971:110;:::o;4844:119::-;4910:7;4937:9;:18;4947:7;4937:18;;;;;;;;;;;;;;;;4930:25;;4844:119;;;:::o;3312:148::-;3235:12;:10;:12::i;:::-;3225:22;;:6;;;;;;;;;;:22;;;3217:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3419:1:::1;3382:40;;3403:6;::::0;::::1;;;;;;;;3382:40;;;;;;;;;;;;3450:1;3433:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3312:148::o:0;3098:79::-;3136:7;3163:6;;;;;;;;;;;3156:13;;3098:79;:::o;4550:87::-;4589:13;4622:7;4615:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4550:87;:::o;5089:127::-;5148:7;5175:33;5204:3;5175:24;5186:12;;5175:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;5168:40;;5089:127;;;:::o;6734:269::-;6827:4;6844:129;6853:12;:10;:12::i;:::-;6867:7;6876:96;6915:15;6876:96;;;;;;;;;;;;;;;;;:11;:25;6888:12;:10;:12::i;:::-;6876:25;;;;;;;;;;;;;;;:34;6902:7;6876:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6844:8;:129::i;:::-;6991:4;6984:11;;6734:269;;;;:::o;7580:790::-;7624:24;7651:33;7671:12;:10;:12::i;:::-;7651:19;:33::i;:::-;7624:60;;7722:1;7703:16;:20;7695:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7777:20;7800:6;:20;7807:12;:10;:12::i;:::-;7800:20;;;;;;;;;;;;;;;7777:43;;7831:22;7997:6;7992:270;8009:5;:12;;;;8007:1;:14;7992:270;;;8066:5;8072:1;8066:8;;;;;;;;;;;;;;;;;;:19;;;8047:15;:38;8043:208;;8123:39;8142:5;8148:1;8142:8;;;;;;;;;;;;;;;;;;:19;;;8123:14;:18;;:39;;;;:::i;:::-;8106:56;;8189:22;8202:1;8205:5;8189:12;:22::i;:::-;8181:30;;8230:5;;8043:208;8023:3;;;;;;;7992:270;;;;8297:5;8274:6;:20;8281:12;:10;:12::i;:::-;8274:20;;;;;;;;;;;;;;;:28;;;;;;;;:::i;:::-;;8315:47;8333:12;:10;:12::i;:::-;8347:14;8315:17;:47::i;:::-;7580:790;;;:::o;5660:175::-;5746:4;5763:42;5773:12;:10;:12::i;:::-;5787:9;5798:6;5763:9;:42::i;:::-;5823:4;5816:11;;5660:175;;;;:::o;7011:561::-;7067:12;7082;:10;:12::i;:::-;7067:27;;7105:18;7126:6;7105:27;;7143:17;7163:15;7143:35;;7189:23;7215:22;7229:7;7215:9;:13;;:22;;;;:::i;:::-;7189:48;;7250:33;7266:4;7272:10;7250:15;:33::i;:::-;7296:23;;:::i;:::-;7322:128;;;;;;;;7372:6;7322:128;;;;7409:15;7322:128;;;7296:154;;7463:6;:12;7470:4;7463:12;;;;;;;;;;;;;;;7481:11;7463:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7519:4;7511:53;;;7525:10;7537:9;7548:15;7511:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7011:561;;;;;;:::o;5843:151::-;5932:7;5959:11;:18;5971:5;5959:18;;;;;;;;;;;;;;;:27;5978:7;5959:27;;;;;;;;;;;;;;;;5952:34;;5843:151;;;;:::o;5224:428::-;5291:7;5311:19;5333:6;:15;5340:7;5333:15;;;;;;;;;;;;;;;5311:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5359:24;5405:6;5400:201;5417:5;:12;5415:1;:14;5400:201;;;5474:5;5480:1;5474:8;;;;;;;;;;;;;;:19;;;5455:15;:38;5451:139;;5533:41;5554:5;5560:1;5554:8;;;;;;;;;;;;;;:19;;;5533:16;:20;;:41;;;;:::i;:::-;5514:60;;5451:139;5431:3;;;;;;;5400:201;;;;5628:16;5621:23;;;;5224:428;;;:::o;3468:244::-;3235:12;:10;:12::i;:::-;3225:22;;:6;;;;;;;;;;:22;;;3217:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3577:1:::1;3557:22;;:8;:22;;;;3549:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3667:8;3638:38;;3659:6;::::0;::::1;;;;;;;;3638:38;;;;;;;;;;;;3696:8;3687:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3468:244:::0;:::o;2415:106::-;2468:15;2503:10;2496:17;;2415:106;:::o;10773:346::-;10892:1;10875:19;;:5;:19;;;;10867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10973:1;10954:21;;:7;:21;;;;10946:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11057:6;11027:11;:18;11039:5;11027:18;;;;;;;;;;;;;;;:27;11046:7;11027:27;;;;;;;;;;;;;;;:36;;;;11095:7;11079:32;;11088:5;11079:32;;;11104:6;11079:32;;;;;;;;;;;;;;;;;;10773:346;;;:::o;9221:732::-;9345:1;9327:20;;:6;:20;;;;9319:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9429:1;9408:23;;:9;:23;;;;9400:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9484:47;9505:6;9513:9;9524:6;9484:20;:47::i;:::-;9544:19;9566:20;9579:6;9566:12;:20::i;:::-;9544:42;;9597:22;9622:23;9633:11;9622:6;:10;;:23;;;;:::i;:::-;9597:48;;9678:71;9700:6;9678:71;;;;;;;;;;;;;;;;;:9;:17;9688:6;9678:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;9658:9;:17;9668:6;9658:17;;;;;;;;;;;;;;;:91;;;;9783:40;9808:14;9783:9;:20;9793:9;9783:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9760:9;:20;9770:9;9760:20;;;;;;;;;;;;;;;:63;;;;9857:35;9880:11;9857:9;:18;9867:7;:5;:7::i;:::-;9857:18;;;;;;;;;;;;;;;;:22;;:35;;;;:::i;:::-;9836:9;:18;9846:7;:5;:7::i;:::-;9836:18;;;;;;;;;;;;;;;:56;;;;9927:9;9910:35;;9919:6;9910:35;;;9938:6;9910:35;;;;;;;;;;;;;;;;;;9221:732;;;;;:::o;1120:192::-;1206:7;1239:1;1234;:6;;1242:12;1226:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1266:9;1282:1;1278;:5;1266:17;;1303:1;1296:8;;;1120:192;;;;;:::o;787:181::-;845:7;865:9;881:1;877;:5;865:17;;906:1;901;:6;;893:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;959:1;952:8;;;787:181;;;;:::o;1320:250::-;1378:7;1407:1;1402;:6;1398:47;;;1432:1;1425:8;;;;1398:47;1457:9;1473:1;1469;:5;1457:17;;1502:1;1497;1493;:5;;;;;;:10;1485:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1561:1;1554:8;;;1320:250;;;;;:::o;1578:132::-;1636:7;1663:39;1667:1;1670;1663:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1656:46;;1578:132;;;;:::o;8378:335::-;8462:14;8502:5;:12;;;;8493:5;:21;8489:66;;8538:5;8531:12;;;;8489:66;8572:6;8579:5;8572:12;;8567:90;8601:1;8588:5;:12;;;;:14;8586:1;:16;8567:90;;;8635:5;8643:1;8641;:3;8635:10;;;;;;;;;;;;;;;;;;8624:5;8630:1;8624:8;;;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;;8604:3;;;;;;;8567:90;;;;8669:5;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8700:5;8693:12;;8378:335;;;;;:::o;8983:230::-;9101:36;9130:6;9101:9;:24;9119:4;9101:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;9074:9;:24;9092:4;9074:24;;;;;;;;;;;;;;;:63;;;;9172:33;9198:6;9172:9;:21;9182:10;9172:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;9148:9;:21;9158:10;9148:21;;;;;;;;;;;;;;;:57;;;;8983:230;;:::o;8721:254::-;8826:67;8848:6;8826:67;;;;;;;;;;;;;;;;;:9;:17;8836:6;8826:17;;;;;;;;;;;;;;;;:21;;:67;;;;;:::i;:::-;8806:9;:17;8816:6;8806:17;;;;;;;;;;;;;;;:87;;;;8931:36;8960:6;8931:9;:24;8949:4;8931:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;8904:9;:24;8922:4;8904:24;;;;;;;;;;;;;;;:63;;;;8721:254;;:::o;11233:92::-;;;;:::o;976:136::-;1034:7;1061:43;1065:1;1068;1061:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1054:50;;976:136;;;;:::o;1718:345::-;1804:7;1903:1;1899;:5;1906:12;1891:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1930:9;1946:1;1942;:5;;;;;;1930:17;;2054:1;2047:8;;;1718:345;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://fbc401410bb554a8416dcdc0d8ba91f277526fc8f499fafffa1edbc02b7120b1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

GasGains (GASG) is the solution to the problem of paying hefty transactional charges over the Ethereum blockchain platform. GASG ensures that its users gain the maximum cashback benefits against the gas fee paid for transaction.

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.