ETH Price: $3,002.78 (-0.57%)

Contract

0x1e4dc6472e51F35F2b48c060DB4B07A288ec1D4C
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Approve295271492026-01-08 9:21:5320 days ago1767864113IN
0x1e4dc647...288ec1D4C
0 ETH0.000001910.0012
Approve108772342024-11-02 16:18:03452 days ago1730564283IN
0x1e4dc647...288ec1D4C
0 ETH0.000000180.00193532
Approve47454962024-06-13 17:46:47594 days ago1718300807IN
0x1e4dc647...288ec1D4C
0 ETH0.000128572.748519
Approve27612492024-04-28 19:25:13640 days ago1714332313IN
0x1e4dc647...288ec1D4C
0 ETH0.000130252.50000029
Execute Genesis ...27453632024-04-28 10:35:41640 days ago1714300541IN
0x1e4dc647...288ec1D4C
0 ETH0.000012860.00097

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TORTokenContract

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "./IOwnerGroupContract.sol";
import "./IBlast.sol";

contract TORTokenContract {


    mapping(address account => uint256) private _balances;
    mapping(address account => mapping(address spender => uint256)) private _allowances;
    mapping(uint => MintOrBurnTransaction) private mintOrBurnTransaction;
    mapping(uint => mapping(address =>bool)) isConfirmed;
    address private _ownerGroupContractAddress;
    bool genesisMintFlag = false;


    uint private transactionCount = 0;
    struct MintOrBurnTransaction {
        address toAddress;
        uint amount;
        bool executed;
        bool mintOrBurn;
        uint confirmationCount;
    }

    uint256 private _totalSupply;
    uint8 private _decimal=18;
    uint private torToWei = (10**_decimal);
    string public _name;
    string public _symbol;
    IOwnerGroupContract private _ownerGroupContract;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event SubmitMintOrBurnTransaction(address indexed admin, uint amount, bool mintOrBurn);
    event ConfirmTransaction(address indexed owner, uint transactionIndex);
    event ExecuteTransaction(address indexed owner, uint transactionIndex);
    event RevokeConfirmation(address indexed owner, uint transactionIndex);
    event GenesisMint(address indexed sender, address indexed to, uint amount);


    constructor(address ownerGroupContractAddress) {
        _name = "TOR Token";
        _symbol = "TOR";
        _totalSupply = 1_000_000_000 * torToWei;
        _ownerGroupContract = IOwnerGroupContract(ownerGroupContractAddress);
        _ownerGroupContractAddress = ownerGroupContractAddress;

        IBlast(0x4300000000000000000000000000000000000002).configureClaimableGas();
    }

    modifier onlyOwner (){
        require(_ownerGroupContract.isOwner(msg.sender), "Only Owner have a permission.");
        _;
    }

    function claimAllGas() external onlyOwner returns (uint256) {
        // This function is public meaning anyone can claim the gas
        return IBlast(0x4300000000000000000000000000000000000002).claimAllGas(address(this), _ownerGroupContractAddress);
    }

    function readGasParams() external view onlyOwner returns (uint256 etherSeconds, uint256 etherBalance, uint256 lastUpdated, GasMode) {
        return IBlast(0x4300000000000000000000000000000000000002).readGasParams(address(this));
    }

    function getPendingMintOrBurnTransactions() public view onlyOwner returns (uint[] memory){

        // Determine the count of pending transactions
        uint pendingCount = 0;
        for (uint i = 0; i < transactionCount; i++) {
            if (!mintOrBurnTransaction[i].executed) {
                pendingCount++;
            }
        }

        // Create a dynamic array to store pending transaction indices
        uint[] memory pendingTransactions = new uint[](pendingCount);
        uint index = 0;
        for (uint i = 0; i < transactionCount; i++) {
            if (!mintOrBurnTransaction[i].executed) {
                pendingTransactions[index] = i;
                index++;
            }
        }
        return pendingTransactions;
    }

    function executeGenesisMint(address toAddress, uint256 amount) public onlyOwner() 
    {
        require(genesisMintFlag != true, "Already Mint");

        _mint(toAddress, amount);        
        genesisMintFlag = true;
        emit GenesisMint(msg.sender, toAddress, amount);

    }

    function getMintOrBurnTransaction(uint index) public view onlyOwner returns (address, uint, bool, bool, uint) {
        require(index < transactionCount, "Index out of bounds");
        MintOrBurnTransaction storage transaction = mintOrBurnTransaction[index];
        return (transaction.toAddress, transaction.amount, transaction.executed, transaction.mintOrBurn, transaction.confirmationCount);
    }

    function submitMintOrBurnTransaction(address toAddress, uint amount, bool mintOrBurn) onlyOwner public returns (uint)
    {
        if(!mintOrBurn){
            require(toAddress != address(0), "Invalid Mint Address");
        }
        else {
            require(_balances[toAddress] >= amount, "Insufficient balance to burn.");
        }

        mintOrBurnTransaction[transactionCount] = MintOrBurnTransaction({
            toAddress: toAddress,
            amount: amount,
            executed: false,
            mintOrBurn: mintOrBurn,
            confirmationCount: 0
        });

        emit SubmitMintOrBurnTransaction(toAddress, amount, mintOrBurn);

        return transactionCount++;
    }

    function confirmTransaction(uint transactionIndex) onlyOwner public
    {
        require(!mintOrBurnTransaction[transactionIndex].executed, "Transaction already executed");
        require(!isConfirmed[transactionIndex][msg.sender], "Transaction already confirmed");

        mintOrBurnTransaction[transactionIndex].confirmationCount++;
        isConfirmed[transactionIndex][msg.sender] = true;

        emit ConfirmTransaction(msg.sender, transactionIndex);

        uint ownerConfirm = _ownerGroupContract.getOwnerCount() / 2;
        if(mintOrBurnTransaction[transactionIndex].confirmationCount > ownerConfirm){
            executeTransaction(transactionIndex);
        }
    }

    function executeTransaction(uint transactionIndex) private {

        mintOrBurnTransaction[transactionIndex].executed = true;
        if(!mintOrBurnTransaction[transactionIndex].mintOrBurn){
            _mint(mintOrBurnTransaction[transactionIndex].toAddress, mintOrBurnTransaction[transactionIndex].amount);
        }
        else {
            _burn(mintOrBurnTransaction[transactionIndex].toAddress, mintOrBurnTransaction[transactionIndex].amount);
        }

        emit ExecuteTransaction(mintOrBurnTransaction[transactionIndex].toAddress, transactionIndex);
    }

    function revokeConfirmation(uint transactionIndex) onlyOwner public {
        require(!mintOrBurnTransaction[transactionIndex].executed, "Transaction already executed");
        require(isConfirmed[transactionIndex][msg.sender], "Transaction not confirmed");

        mintOrBurnTransaction[transactionIndex].confirmationCount--;
        isConfirmed[transactionIndex][msg.sender] = false;
        emit RevokeConfirmation(msg.sender, transactionIndex);
    }

    function _mint(address to, uint256 amount) internal onlyOwner {
        _balances[to] += amount;
    }

    function _burn(address account, uint256 value) internal onlyOwner{

        _balances[account] = _balances[account] - value ;
        _totalSupply = _totalSupply - value;
        emit Transfer(account, address(0), value);
    }

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(_balances[from] >= amount, "ERC20: insufficient balance");

        _balances[from] -= amount;
        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal {
        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);
    }

}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

enum YieldMode {
    AUTOMATIC,
    VOID,
    CLAIMABLE
}

enum GasMode {
    VOID,
    CLAIMABLE 
}

interface IBlast{
    // configure
    function configureContract(address contractAddress, YieldMode _yield, GasMode gasMode, address governor) external;
    function configure(YieldMode _yield, GasMode gasMode, address governor) external;

    // base configuration options
    function configureClaimableYield() external;
    function configureClaimableYieldOnBehalf(address contractAddress) external;
    function configureAutomaticYield() external;
    function configureAutomaticYieldOnBehalf(address contractAddress) external;
    function configureVoidYield() external;
    function configureVoidYieldOnBehalf(address contractAddress) external;
    function configureClaimableGas() external;
    function configureClaimableGasOnBehalf(address contractAddress) external;
    function configureVoidGas() external;
    function configureVoidGasOnBehalf(address contractAddress) external;
    function configureGovernor(address _governor) external;
    function configureGovernorOnBehalf(address _newGovernor, address contractAddress) external;

    // claim yield
    function claimYield(address contractAddress, address recipientOfYield, uint256 amount) external returns (uint256);
    function claimAllYield(address contractAddress, address recipientOfYield) external returns (uint256);

    // claim gas
    function claimAllGas(address contractAddress, address recipientOfGas) external returns (uint256);
    function claimGasAtMinClaimRate(address contractAddress, address recipientOfGas, uint256 minClaimRateBips) external returns (uint256);
    function claimMaxGas(address contractAddress, address recipientOfGas) external returns (uint256);
    function claimGas(address contractAddress, address recipientOfGas, uint256 gasToClaim, uint256 gasSecondsToConsume) external returns (uint256);

    // read functions
    function readClaimableYield(address contractAddress) external view returns (uint256);
    function readYieldConfiguration(address contractAddress) external view returns (uint8);
    function readGasParams(address contractAddress) external view returns (uint256 etherSeconds, uint256 etherBalance, uint256 lastUpdated, GasMode);
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

interface IOwnerGroupContract {

    function isOwner(address owenerAddress) external view returns (bool);
    function isAdmin(address adminAddress) external view returns (bool);
    function getOwnerCount() external view returns (uint);
    function getAdminCount() external view returns (uint);
    function isTrustedContract(address contractAddress) external view returns (bool);

}

Settings
{
  "evmVersion": "paris",
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"ownerGroupContractAddress","type":"address"}],"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":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"transactionIndex","type":"uint256"}],"name":"ConfirmTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"transactionIndex","type":"uint256"}],"name":"ExecuteTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"GenesisMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"transactionIndex","type":"uint256"}],"name":"RevokeConfirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"mintOrBurn","type":"bool"}],"name":"SubmitMintOrBurnTransaction","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":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"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":"claimAllGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionIndex","type":"uint256"}],"name":"confirmTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"executeGenesisMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getMintOrBurnTransaction","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPendingMintOrBurnTransactions","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"readGasParams","outputs":[{"internalType":"uint256","name":"etherSeconds","type":"uint256"},{"internalType":"uint256","name":"etherBalance","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"},{"internalType":"enum GasMode","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionIndex","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"mintOrBurn","type":"bool"}],"name":"submitMintOrBurnTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"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"}]

60806040526000600460146101000a81548160ff02191690831515021790555060006005556012600760006101000a81548160ff021916908360ff160217905550600760009054906101000a900460ff16600a6200005e9190620003d5565b6008553480156200006e57600080fd5b50604051620038c9380380620038c9833981810160405281019062000094919062000490565b6040518060400160405280600981526020017f544f5220546f6b656e000000000000000000000000000000000000000000000081525060099081620000da919062000732565b506040518060400160405280600381526020017f544f520000000000000000000000000000000000000000000000000000000000815250600a908162000121919062000732565b50600854633b9aca0062000136919062000819565b60068190555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff16634e606c476040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200021b57600080fd5b505af115801562000230573d6000803e3d6000fd5b505050505062000864565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620002c957808604811115620002a157620002a06200023b565b5b6001851615620002b15780820291505b8081029050620002c1856200026a565b945062000281565b94509492505050565b600082620002e45760019050620003b7565b81620002f45760009050620003b7565b81600181146200030d576002811462000318576200034e565b6001915050620003b7565b60ff8411156200032d576200032c6200023b565b5b8360020a9150848211156200034757620003466200023b565b5b50620003b7565b5060208310610133831016604e8410600b8410161715620003885782820a9050838111156200038257620003816200023b565b5b620003b7565b62000397848484600162000277565b92509050818404811115620003b157620003b06200023b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620003e282620003be565b9150620003ef83620003c8565b92506200041e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620002d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000458826200042b565b9050919050565b6200046a816200044b565b81146200047657600080fd5b50565b6000815190506200048a816200045f565b92915050565b600060208284031215620004a957620004a862000426565b5b6000620004b98482850162000479565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200054457607f821691505b6020821081036200055a5762000559620004fc565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000585565b620005d0868362000585565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620006136200060d6200060784620003be565b620005e8565b620003be565b9050919050565b6000819050919050565b6200062f83620005f2565b620006476200063e826200061a565b84845462000592565b825550505050565b600090565b6200065e6200064f565b6200066b81848462000624565b505050565b5b8181101562000693576200068760008262000654565b60018101905062000671565b5050565b601f821115620006e257620006ac8162000560565b620006b78462000575565b81016020851015620006c7578190505b620006df620006d68562000575565b83018262000670565b50505b505050565b600082821c905092915050565b60006200070760001984600802620006e7565b1980831691505092915050565b6000620007228383620006f4565b9150826002028217905092915050565b6200073d82620004c2565b67ffffffffffffffff811115620007595762000758620004cd565b5b6200076582546200052b565b6200077282828562000697565b600060209050601f831160018114620007aa576000841562000795578287015190505b620007a1858262000714565b86555062000811565b601f198416620007ba8662000560565b60005b82811015620007e457848901518255600182019150602085019450602081019050620007bd565b8683101562000804578489015162000800601f891682620006f4565b8355505b6001600288020188555050505b505050505050565b60006200082682620003be565b91506200083383620003be565b92508282026200084381620003be565b915082820484148315176200085d576200085c6200023b565b5b5092915050565b61305580620008746000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063645dd1fa11610097578063b09f126611610066578063b09f1266146102dc578063c01a8c84146102fa578063d28d885214610316578063dd62ed3e1461033457610100565b8063645dd1fa1461024057806370a082311461025e578063906396e61461028e578063a9059cbb146102ac57610100565b806320ea8d86116100d357806320ea8d86146101b757806323b872dd146101d357806333ed080114610203578063491ae3481461021f57610100565b8063095ea7b3146101055780630b7bf8b8146101355780631579b5161461016957806318160ddd14610199575b600080fd5b61011f600480360381019061011a91906121ac565b610364565b60405161012c9190612207565b60405180910390f35b61014f600480360381019061014a9190612222565b61037b565b60405161016095949392919061226d565b60405180910390f35b610183600480360381019061017e91906122ec565b610520565b604051610190919061233f565b60405180910390f35b6101a161085e565b6040516101ae919061233f565b60405180910390f35b6101d160048036038101906101cc9190612222565b610868565b005b6101ed60048036038101906101e8919061235a565b610b2a565b6040516101fa9190612207565b60405180910390f35b61021d600480360381019061021891906121ac565b610bd4565b005b610227610d93565b6040516102379493929190612424565b60405180910390f35b610248610f10565b604051610255919061233f565b60405180910390f35b61027860048036038101906102739190612469565b6110a6565b604051610285919061233f565b60405180910390f35b6102966110ee565b6040516102a39190612554565b60405180910390f35b6102c660048036038101906102c191906121ac565b6112e7565b6040516102d39190612207565b60405180910390f35b6102e46112fe565b6040516102f19190612606565b60405180910390f35b610314600480360381019061030f9190612222565b61138c565b005b61031e611719565b60405161032b9190612606565b60405180910390f35b61034e60048036038101906103499190612628565b6117a7565b60405161035b919061233f565b60405180910390f35b600061037133848461182e565b6001905092915050565b6000806000806000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b81526004016103de9190612668565b602060405180830381865afa1580156103fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041f9190612698565b61045e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045590612711565b60405180910390fd5b60055486106104a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104999061277d565b60405180910390fd5b60006002600088815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600101548260020160009054906101000a900460ff168360020160019054906101000a900460ff168460030154955095509550955095505091939590929450565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b815260040161057d9190612668565b602060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190612698565b6105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490612711565b60405180910390fd5b8161067657600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610668906127e9565b60405180910390fd5b6106f8565b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156106f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ee90612855565b60405180910390fd5b5b6040518060a001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020016000151581526020018315158152602001600081525060026000600554815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550608082015181600301559050508373ffffffffffffffffffffffffffffffffffffffff167fcc03cc8aaff0b1befd6987d88c7abd24d9fbf04211fddd8e5e3be06b891f79038484604051610836929190612875565b60405180910390a260056000815480929190610851906128cd565b9190505590509392505050565b6000600654905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b81526004016108c39190612668565b602060405180830381865afa1580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109049190612698565b610943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093a90612711565b60405180910390fd5b6002600082815260200190815260200160002060020160009054906101000a900460ff16156109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e90612961565b60405180910390fd5b6003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3b906129cd565b60405180910390fd5b600260008281526020019081526020016000206003016000815480929190610a6b906129ed565b919050555060006003600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5582604051610b1f919061233f565b60405180910390a250565b6000610b378484846119f7565b610bc9843384600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bc49190612a16565b61182e565b600190509392505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401610c2f9190612668565b602060405180830381865afa158015610c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c709190612698565b610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690612711565b60405180910390fd5b60011515600460149054906101000a900460ff16151503610d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfc90612a96565b60405180910390fd5b610d0f8282611c6a565b6001600460146101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f117a0fabd982f3193b0b071f8c9ca0a1cd748f3deb8adf2f292cabed574e366983604051610d87919061233f565b60405180910390a35050565b600080600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401610df49190612668565b602060405180830381865afa158015610e11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e359190612698565b610e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6b90612711565b60405180910390fd5b73430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff1663dde798a4306040518263ffffffff1660e01b8152600401610ec19190612668565b608060405180830381865afa158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f029190612af0565b935093509350935090919293565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401610f6d9190612668565b602060405180830381865afa158015610f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fae9190612698565b610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe490612711565b60405180910390fd5b73430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff1663954fa5ee30600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b815260040161105e929190612b57565b6020604051808303816000875af115801561107d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a19190612b80565b905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b815260040161114b9190612668565b602060405180830381865afa158015611168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118c9190612698565b6111cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c290612711565b60405180910390fd5b6000805b60055481101561121d576002600082815260200190815260200160002060020160009054906101000a900460ff1661121057818061120c906128cd565b9250505b80806001019150506111cf565b5060008167ffffffffffffffff81111561123a57611239612bad565b5b6040519080825280602002602001820160405280156112685781602001602082028036833780820191505090505b5090506000805b6005548110156112dd576002600082815260200190815260200160002060020160009054906101000a900460ff166112d057808383815181106112b5576112b4612bdc565b5b60200260200101818152505081806112cc906128cd565b9250505b808060010191505061126f565b5081935050505090565b60006112f43384846119f7565b6001905092915050565b600a805461130b90612c3a565b80601f016020809104026020016040519081016040528092919081815260200182805461133790612c3a565b80156113845780601f1061135957610100808354040283529160200191611384565b820191906000526020600020905b81548152906001019060200180831161136757829003601f168201915b505050505081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b81526004016113e79190612668565b602060405180830381865afa158015611404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114289190612698565b611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90612711565b60405180910390fd5b6002600082815260200190815260200160002060020160009054906101000a900460ff16156114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c290612961565b60405180910390fd5b6003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156090612cb7565b60405180910390fd5b600260008281526020019081526020016000206003016000815480929190611590906128cd565b919050555060016003600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004182604051611644919061233f565b60405180910390a260006002600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ef18374a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e19190612b80565b6116eb9190612d06565b905080600260008481526020019081526020016000206003015411156117155761171482611d9e565b5b5050565b6009805461172690612c3a565b80601f016020809104026020016040519081016040528092919081815260200182805461175290612c3a565b801561179f5780601f106117745761010080835404028352916020019161179f565b820191906000526020600020905b81548152906001019060200180831161178257829003601f168201915b505050505081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490612da9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361190c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190390612e3b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119ea919061233f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5d90612ecd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90612f5f565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4d90612fcb565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ba49190612a16565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bf99190612feb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5d919061233f565b60405180910390a3505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401611cc59190612668565b602060405180830381865afa158015611ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d069190612698565b611d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3c90612711565b60405180910390fd5b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d939190612feb565b925050819055505050565b60016002600083815260200190815260200160002060020160006101000a81548160ff0219169083151502179055506002600082815260200190815260200160002060020160019054906101000a900460ff16611e5057611e4b6002600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060010154611c6a565b611ea7565b611ea66002600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060010154611f2e565b5b6002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac82604051611f23919061233f565b60405180910390a250565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401611f899190612668565b602060405180830381865afa158015611fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fca9190612698565b612009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200090612711565b60405180910390fd5b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120539190612a16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806006546120a39190612a16565b600681905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612107919061233f565b60405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061214382612118565b9050919050565b61215381612138565b811461215e57600080fd5b50565b6000813590506121708161214a565b92915050565b6000819050919050565b61218981612176565b811461219457600080fd5b50565b6000813590506121a681612180565b92915050565b600080604083850312156121c3576121c2612113565b5b60006121d185828601612161565b92505060206121e285828601612197565b9150509250929050565b60008115159050919050565b612201816121ec565b82525050565b600060208201905061221c60008301846121f8565b92915050565b60006020828403121561223857612237612113565b5b600061224684828501612197565b91505092915050565b61225881612138565b82525050565b61226781612176565b82525050565b600060a082019050612282600083018861224f565b61228f602083018761225e565b61229c60408301866121f8565b6122a960608301856121f8565b6122b6608083018461225e565b9695505050505050565b6122c9816121ec565b81146122d457600080fd5b50565b6000813590506122e6816122c0565b92915050565b60008060006060848603121561230557612304612113565b5b600061231386828701612161565b935050602061232486828701612197565b9250506040612335868287016122d7565b9150509250925092565b6000602082019050612354600083018461225e565b92915050565b60008060006060848603121561237357612372612113565b5b600061238186828701612161565b935050602061239286828701612161565b92505060406123a386828701612197565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106123ed576123ec6123ad565b5b50565b60008190506123fe826123dc565b919050565b600061240e826123f0565b9050919050565b61241e81612403565b82525050565b6000608082019050612439600083018761225e565b612446602083018661225e565b612453604083018561225e565b6124606060830184612415565b95945050505050565b60006020828403121561247f5761247e612113565b5b600061248d84828501612161565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124cb81612176565b82525050565b60006124dd83836124c2565b60208301905092915050565b6000602082019050919050565b600061250182612496565b61250b81856124a1565b9350612516836124b2565b8060005b8381101561254757815161252e88826124d1565b9750612539836124e9565b92505060018101905061251a565b5085935050505092915050565b6000602082019050818103600083015261256e81846124f6565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125b0578082015181840152602081019050612595565b60008484015250505050565b6000601f19601f8301169050919050565b60006125d882612576565b6125e28185612581565b93506125f2818560208601612592565b6125fb816125bc565b840191505092915050565b6000602082019050818103600083015261262081846125cd565b905092915050565b6000806040838503121561263f5761263e612113565b5b600061264d85828601612161565b925050602061265e85828601612161565b9150509250929050565b600060208201905061267d600083018461224f565b92915050565b600081519050612692816122c0565b92915050565b6000602082840312156126ae576126ad612113565b5b60006126bc84828501612683565b91505092915050565b7f4f6e6c79204f776e657220686176652061207065726d697373696f6e2e000000600082015250565b60006126fb601d83612581565b9150612706826126c5565b602082019050919050565b6000602082019050818103600083015261272a816126ee565b9050919050565b7f496e646578206f7574206f6620626f756e647300000000000000000000000000600082015250565b6000612767601383612581565b915061277282612731565b602082019050919050565b600060208201905081810360008301526127968161275a565b9050919050565b7f496e76616c6964204d696e742041646472657373000000000000000000000000600082015250565b60006127d3601483612581565b91506127de8261279d565b602082019050919050565b60006020820190508181036000830152612802816127c6565b9050919050565b7f496e73756666696369656e742062616c616e636520746f206275726e2e000000600082015250565b600061283f601d83612581565b915061284a82612809565b602082019050919050565b6000602082019050818103600083015261286e81612832565b9050919050565b600060408201905061288a600083018561225e565b61289760208301846121f8565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128d882612176565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361290a5761290961289e565b5b600182019050919050565b7f5472616e73616374696f6e20616c726561647920657865637574656400000000600082015250565b600061294b601c83612581565b915061295682612915565b602082019050919050565b6000602082019050818103600083015261297a8161293e565b9050919050565b7f5472616e73616374696f6e206e6f7420636f6e6669726d656400000000000000600082015250565b60006129b7601983612581565b91506129c282612981565b602082019050919050565b600060208201905081810360008301526129e6816129aa565b9050919050565b60006129f882612176565b915060008203612a0b57612a0a61289e565b5b600182039050919050565b6000612a2182612176565b9150612a2c83612176565b9250828203905081811115612a4457612a4361289e565b5b92915050565b7f416c7265616479204d696e740000000000000000000000000000000000000000600082015250565b6000612a80600c83612581565b9150612a8b82612a4a565b602082019050919050565b60006020820190508181036000830152612aaf81612a73565b9050919050565b600081519050612ac581612180565b92915050565b60028110612ad857600080fd5b50565b600081519050612aea81612acb565b92915050565b60008060008060808587031215612b0a57612b09612113565b5b6000612b1887828801612ab6565b9450506020612b2987828801612ab6565b9350506040612b3a87828801612ab6565b9250506060612b4b87828801612adb565b91505092959194509250565b6000604082019050612b6c600083018561224f565b612b79602083018461224f565b9392505050565b600060208284031215612b9657612b95612113565b5b6000612ba484828501612ab6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c5257607f821691505b602082108103612c6557612c64612c0b565b5b50919050565b7f5472616e73616374696f6e20616c726561647920636f6e6669726d6564000000600082015250565b6000612ca1601d83612581565b9150612cac82612c6b565b602082019050919050565b60006020820190508181036000830152612cd081612c94565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d1182612176565b9150612d1c83612176565b925082612d2c57612d2b612cd7565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d93602483612581565b9150612d9e82612d37565b604082019050919050565b60006020820190508181036000830152612dc281612d86565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e25602283612581565b9150612e3082612dc9565b604082019050919050565b60006020820190508181036000830152612e5481612e18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612eb7602583612581565b9150612ec282612e5b565b604082019050919050565b60006020820190508181036000830152612ee681612eaa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f49602383612581565b9150612f5482612eed565b604082019050919050565b60006020820190508181036000830152612f7881612f3c565b9050919050565b7f45524332303a20696e73756666696369656e742062616c616e63650000000000600082015250565b6000612fb5601b83612581565b9150612fc082612f7f565b602082019050919050565b60006020820190508181036000830152612fe481612fa8565b9050919050565b6000612ff682612176565b915061300183612176565b92508282019050808211156130195761301861289e565b5b9291505056fea2646970667358221220ac4a878f5de01cecea2896d291a48c3e7a9fcb422af927999dd542cec364509e64736f6c63430008180033000000000000000000000000b4006ccac99b73f227b314fd1d0274daaab8021f

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063645dd1fa11610097578063b09f126611610066578063b09f1266146102dc578063c01a8c84146102fa578063d28d885214610316578063dd62ed3e1461033457610100565b8063645dd1fa1461024057806370a082311461025e578063906396e61461028e578063a9059cbb146102ac57610100565b806320ea8d86116100d357806320ea8d86146101b757806323b872dd146101d357806333ed080114610203578063491ae3481461021f57610100565b8063095ea7b3146101055780630b7bf8b8146101355780631579b5161461016957806318160ddd14610199575b600080fd5b61011f600480360381019061011a91906121ac565b610364565b60405161012c9190612207565b60405180910390f35b61014f600480360381019061014a9190612222565b61037b565b60405161016095949392919061226d565b60405180910390f35b610183600480360381019061017e91906122ec565b610520565b604051610190919061233f565b60405180910390f35b6101a161085e565b6040516101ae919061233f565b60405180910390f35b6101d160048036038101906101cc9190612222565b610868565b005b6101ed60048036038101906101e8919061235a565b610b2a565b6040516101fa9190612207565b60405180910390f35b61021d600480360381019061021891906121ac565b610bd4565b005b610227610d93565b6040516102379493929190612424565b60405180910390f35b610248610f10565b604051610255919061233f565b60405180910390f35b61027860048036038101906102739190612469565b6110a6565b604051610285919061233f565b60405180910390f35b6102966110ee565b6040516102a39190612554565b60405180910390f35b6102c660048036038101906102c191906121ac565b6112e7565b6040516102d39190612207565b60405180910390f35b6102e46112fe565b6040516102f19190612606565b60405180910390f35b610314600480360381019061030f9190612222565b61138c565b005b61031e611719565b60405161032b9190612606565b60405180910390f35b61034e60048036038101906103499190612628565b6117a7565b60405161035b919061233f565b60405180910390f35b600061037133848461182e565b6001905092915050565b6000806000806000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b81526004016103de9190612668565b602060405180830381865afa1580156103fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041f9190612698565b61045e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045590612711565b60405180910390fd5b60055486106104a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104999061277d565b60405180910390fd5b60006002600088815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600101548260020160009054906101000a900460ff168360020160019054906101000a900460ff168460030154955095509550955095505091939590929450565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b815260040161057d9190612668565b602060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190612698565b6105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490612711565b60405180910390fd5b8161067657600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610668906127e9565b60405180910390fd5b6106f8565b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156106f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ee90612855565b60405180910390fd5b5b6040518060a001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020016000151581526020018315158152602001600081525060026000600554815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550608082015181600301559050508373ffffffffffffffffffffffffffffffffffffffff167fcc03cc8aaff0b1befd6987d88c7abd24d9fbf04211fddd8e5e3be06b891f79038484604051610836929190612875565b60405180910390a260056000815480929190610851906128cd565b9190505590509392505050565b6000600654905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b81526004016108c39190612668565b602060405180830381865afa1580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109049190612698565b610943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093a90612711565b60405180910390fd5b6002600082815260200190815260200160002060020160009054906101000a900460ff16156109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e90612961565b60405180910390fd5b6003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3b906129cd565b60405180910390fd5b600260008281526020019081526020016000206003016000815480929190610a6b906129ed565b919050555060006003600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5582604051610b1f919061233f565b60405180910390a250565b6000610b378484846119f7565b610bc9843384600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bc49190612a16565b61182e565b600190509392505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401610c2f9190612668565b602060405180830381865afa158015610c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c709190612698565b610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690612711565b60405180910390fd5b60011515600460149054906101000a900460ff16151503610d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfc90612a96565b60405180910390fd5b610d0f8282611c6a565b6001600460146101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f117a0fabd982f3193b0b071f8c9ca0a1cd748f3deb8adf2f292cabed574e366983604051610d87919061233f565b60405180910390a35050565b600080600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401610df49190612668565b602060405180830381865afa158015610e11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e359190612698565b610e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6b90612711565b60405180910390fd5b73430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff1663dde798a4306040518263ffffffff1660e01b8152600401610ec19190612668565b608060405180830381865afa158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f029190612af0565b935093509350935090919293565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401610f6d9190612668565b602060405180830381865afa158015610f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fae9190612698565b610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe490612711565b60405180910390fd5b73430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff1663954fa5ee30600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b815260040161105e929190612b57565b6020604051808303816000875af115801561107d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a19190612b80565b905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b815260040161114b9190612668565b602060405180830381865afa158015611168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118c9190612698565b6111cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c290612711565b60405180910390fd5b6000805b60055481101561121d576002600082815260200190815260200160002060020160009054906101000a900460ff1661121057818061120c906128cd565b9250505b80806001019150506111cf565b5060008167ffffffffffffffff81111561123a57611239612bad565b5b6040519080825280602002602001820160405280156112685781602001602082028036833780820191505090505b5090506000805b6005548110156112dd576002600082815260200190815260200160002060020160009054906101000a900460ff166112d057808383815181106112b5576112b4612bdc565b5b60200260200101818152505081806112cc906128cd565b9250505b808060010191505061126f565b5081935050505090565b60006112f43384846119f7565b6001905092915050565b600a805461130b90612c3a565b80601f016020809104026020016040519081016040528092919081815260200182805461133790612c3a565b80156113845780601f1061135957610100808354040283529160200191611384565b820191906000526020600020905b81548152906001019060200180831161136757829003601f168201915b505050505081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b81526004016113e79190612668565b602060405180830381865afa158015611404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114289190612698565b611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90612711565b60405180910390fd5b6002600082815260200190815260200160002060020160009054906101000a900460ff16156114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c290612961565b60405180910390fd5b6003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156090612cb7565b60405180910390fd5b600260008281526020019081526020016000206003016000815480929190611590906128cd565b919050555060016003600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004182604051611644919061233f565b60405180910390a260006002600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ef18374a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e19190612b80565b6116eb9190612d06565b905080600260008481526020019081526020016000206003015411156117155761171482611d9e565b5b5050565b6009805461172690612c3a565b80601f016020809104026020016040519081016040528092919081815260200182805461175290612c3a565b801561179f5780601f106117745761010080835404028352916020019161179f565b820191906000526020600020905b81548152906001019060200180831161178257829003601f168201915b505050505081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490612da9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361190c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190390612e3b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119ea919061233f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5d90612ecd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90612f5f565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4d90612fcb565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ba49190612a16565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bf99190612feb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5d919061233f565b60405180910390a3505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401611cc59190612668565b602060405180830381865afa158015611ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d069190612698565b611d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3c90612711565b60405180910390fd5b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d939190612feb565b925050819055505050565b60016002600083815260200190815260200160002060020160006101000a81548160ff0219169083151502179055506002600082815260200190815260200160002060020160019054906101000a900460ff16611e5057611e4b6002600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060010154611c6a565b611ea7565b611ea66002600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060010154611f2e565b5b6002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac82604051611f23919061233f565b60405180910390a250565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401611f899190612668565b602060405180830381865afa158015611fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fca9190612698565b612009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200090612711565b60405180910390fd5b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120539190612a16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806006546120a39190612a16565b600681905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612107919061233f565b60405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061214382612118565b9050919050565b61215381612138565b811461215e57600080fd5b50565b6000813590506121708161214a565b92915050565b6000819050919050565b61218981612176565b811461219457600080fd5b50565b6000813590506121a681612180565b92915050565b600080604083850312156121c3576121c2612113565b5b60006121d185828601612161565b92505060206121e285828601612197565b9150509250929050565b60008115159050919050565b612201816121ec565b82525050565b600060208201905061221c60008301846121f8565b92915050565b60006020828403121561223857612237612113565b5b600061224684828501612197565b91505092915050565b61225881612138565b82525050565b61226781612176565b82525050565b600060a082019050612282600083018861224f565b61228f602083018761225e565b61229c60408301866121f8565b6122a960608301856121f8565b6122b6608083018461225e565b9695505050505050565b6122c9816121ec565b81146122d457600080fd5b50565b6000813590506122e6816122c0565b92915050565b60008060006060848603121561230557612304612113565b5b600061231386828701612161565b935050602061232486828701612197565b9250506040612335868287016122d7565b9150509250925092565b6000602082019050612354600083018461225e565b92915050565b60008060006060848603121561237357612372612113565b5b600061238186828701612161565b935050602061239286828701612161565b92505060406123a386828701612197565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106123ed576123ec6123ad565b5b50565b60008190506123fe826123dc565b919050565b600061240e826123f0565b9050919050565b61241e81612403565b82525050565b6000608082019050612439600083018761225e565b612446602083018661225e565b612453604083018561225e565b6124606060830184612415565b95945050505050565b60006020828403121561247f5761247e612113565b5b600061248d84828501612161565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124cb81612176565b82525050565b60006124dd83836124c2565b60208301905092915050565b6000602082019050919050565b600061250182612496565b61250b81856124a1565b9350612516836124b2565b8060005b8381101561254757815161252e88826124d1565b9750612539836124e9565b92505060018101905061251a565b5085935050505092915050565b6000602082019050818103600083015261256e81846124f6565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125b0578082015181840152602081019050612595565b60008484015250505050565b6000601f19601f8301169050919050565b60006125d882612576565b6125e28185612581565b93506125f2818560208601612592565b6125fb816125bc565b840191505092915050565b6000602082019050818103600083015261262081846125cd565b905092915050565b6000806040838503121561263f5761263e612113565b5b600061264d85828601612161565b925050602061265e85828601612161565b9150509250929050565b600060208201905061267d600083018461224f565b92915050565b600081519050612692816122c0565b92915050565b6000602082840312156126ae576126ad612113565b5b60006126bc84828501612683565b91505092915050565b7f4f6e6c79204f776e657220686176652061207065726d697373696f6e2e000000600082015250565b60006126fb601d83612581565b9150612706826126c5565b602082019050919050565b6000602082019050818103600083015261272a816126ee565b9050919050565b7f496e646578206f7574206f6620626f756e647300000000000000000000000000600082015250565b6000612767601383612581565b915061277282612731565b602082019050919050565b600060208201905081810360008301526127968161275a565b9050919050565b7f496e76616c6964204d696e742041646472657373000000000000000000000000600082015250565b60006127d3601483612581565b91506127de8261279d565b602082019050919050565b60006020820190508181036000830152612802816127c6565b9050919050565b7f496e73756666696369656e742062616c616e636520746f206275726e2e000000600082015250565b600061283f601d83612581565b915061284a82612809565b602082019050919050565b6000602082019050818103600083015261286e81612832565b9050919050565b600060408201905061288a600083018561225e565b61289760208301846121f8565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128d882612176565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361290a5761290961289e565b5b600182019050919050565b7f5472616e73616374696f6e20616c726561647920657865637574656400000000600082015250565b600061294b601c83612581565b915061295682612915565b602082019050919050565b6000602082019050818103600083015261297a8161293e565b9050919050565b7f5472616e73616374696f6e206e6f7420636f6e6669726d656400000000000000600082015250565b60006129b7601983612581565b91506129c282612981565b602082019050919050565b600060208201905081810360008301526129e6816129aa565b9050919050565b60006129f882612176565b915060008203612a0b57612a0a61289e565b5b600182039050919050565b6000612a2182612176565b9150612a2c83612176565b9250828203905081811115612a4457612a4361289e565b5b92915050565b7f416c7265616479204d696e740000000000000000000000000000000000000000600082015250565b6000612a80600c83612581565b9150612a8b82612a4a565b602082019050919050565b60006020820190508181036000830152612aaf81612a73565b9050919050565b600081519050612ac581612180565b92915050565b60028110612ad857600080fd5b50565b600081519050612aea81612acb565b92915050565b60008060008060808587031215612b0a57612b09612113565b5b6000612b1887828801612ab6565b9450506020612b2987828801612ab6565b9350506040612b3a87828801612ab6565b9250506060612b4b87828801612adb565b91505092959194509250565b6000604082019050612b6c600083018561224f565b612b79602083018461224f565b9392505050565b600060208284031215612b9657612b95612113565b5b6000612ba484828501612ab6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c5257607f821691505b602082108103612c6557612c64612c0b565b5b50919050565b7f5472616e73616374696f6e20616c726561647920636f6e6669726d6564000000600082015250565b6000612ca1601d83612581565b9150612cac82612c6b565b602082019050919050565b60006020820190508181036000830152612cd081612c94565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d1182612176565b9150612d1c83612176565b925082612d2c57612d2b612cd7565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d93602483612581565b9150612d9e82612d37565b604082019050919050565b60006020820190508181036000830152612dc281612d86565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e25602283612581565b9150612e3082612dc9565b604082019050919050565b60006020820190508181036000830152612e5481612e18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612eb7602583612581565b9150612ec282612e5b565b604082019050919050565b60006020820190508181036000830152612ee681612eaa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f49602383612581565b9150612f5482612eed565b604082019050919050565b60006020820190508181036000830152612f7881612f3c565b9050919050565b7f45524332303a20696e73756666696369656e742062616c616e63650000000000600082015250565b6000612fb5601b83612581565b9150612fc082612f7f565b602082019050919050565b60006020820190508181036000830152612fe481612fa8565b9050919050565b6000612ff682612176565b915061300183612176565b92508282019050808211156130195761301861289e565b5b9291505056fea2646970667358221220ac4a878f5de01cecea2896d291a48c3e7a9fcb422af927999dd542cec364509e64736f6c63430008180033

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

000000000000000000000000b4006ccac99b73f227b314fd1d0274daaab8021f

-----Decoded View---------------
Arg [0] : ownerGroupContractAddress (address): 0xB4006ccac99b73F227B314fD1d0274DAAAB8021F

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b4006ccac99b73f227b314fd1d0274daaab8021f


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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.