ETH Price: $2,301.08 (-3.36%)

Contract

0xC4e8A9D47000Ab8E59c7031e311762c68215e467
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

STARX (STARX) (@$0.0135)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer207411462024-09-13 10:37:593 days ago1726223879IN
Starworks Global: STARX Token
0 ETH0.000133822.94386646
Transfer207410512024-09-13 10:18:593 days ago1726222739IN
Starworks Global: STARX Token
0 ETH0.000452646.72
Transfer206847692024-09-05 13:45:1111 days ago1725543911IN
Starworks Global: STARX Token
0 ETH0.000232375.11463428
Transfer206844952024-09-05 12:50:2311 days ago1725540623IN
Starworks Global: STARX Token
0 ETH0.00045246.72
Transfer206620992024-09-02 9:49:5914 days ago1725270599IN
Starworks Global: STARX Token
0 ETH0.000137793.03206935
Transfer206382532024-08-30 1:56:3517 days ago1724982995IN
Starworks Global: STARX Token
0 ETH0.000080921.78057689
Transfer206381702024-08-30 1:39:5917 days ago1724981999IN
Starworks Global: STARX Token
0 ETH0.000452566.72
Transfer206368832024-08-29 21:20:2317 days ago1724966423IN
Starworks Global: STARX Token
0 ETH0.000100992.22290406
Transfer206366872024-08-29 20:40:4717 days ago1724964047IN
Starworks Global: STARX Token
0 ETH0.000337576.72
Transfer206365822024-08-29 20:19:2317 days ago1724962763IN
Starworks Global: STARX Token
0 ETH0.000452486.72
Transfer206090892024-08-26 0:08:3521 days ago1724630915IN
Starworks Global: STARX Token
0 ETH0.000079241.74426112
Transfer206088492024-08-25 23:20:3521 days ago1724628035IN
Starworks Global: STARX Token
0 ETH0.000114881.70625412
Transfer206049232024-08-25 10:11:1122 days ago1724580671IN
Starworks Global: STARX Token
0 ETH0.000081351.79069682
Transfer206046972024-08-25 9:25:2322 days ago1724577923IN
Starworks Global: STARX Token
0 ETH0.000118911.76601982
Transfer205745002024-08-21 4:07:1126 days ago1724213231IN
Starworks Global: STARX Token
0 ETH0.00008851.94805422
Transfer205743142024-08-21 3:29:4726 days ago1724210987IN
Starworks Global: STARX Token
0 ETH0.000128552.0557265
Transfer205268502024-08-14 12:24:1133 days ago1723638251IN
Starworks Global: STARX Token
0 ETH0.000452486.72
Approve205159112024-08-12 23:46:1134 days ago1723506371IN
Starworks Global: STARX Token
0 ETH0.000180653.88647613
Transfer204610012024-08-05 7:53:5942 days ago1722844439IN
Starworks Global: STARX Token
0 ETH0.0021751243.28943271
Transfer204521682024-08-04 2:22:2343 days ago1722738143IN
Starworks Global: STARX Token
0 ETH0.000337656.72
Transfer204521682024-08-04 2:22:2343 days ago1722738143IN
Starworks Global: STARX Token
0 ETH0.000337656.72
Transfer204521682024-08-04 2:22:2343 days ago1722738143IN
Starworks Global: STARX Token
0 ETH0.000337656.72
Transfer204464812024-08-03 7:20:2344 days ago1722669623IN
Starworks Global: STARX Token
0 ETH0.000105952.33214801
Transfer204462622024-08-03 6:36:3544 days ago1722666995IN
Starworks Global: STARX Token
0 ETH0.00016922.70581371
Transfer204447432024-08-03 1:29:5944 days ago1722648599IN
Starworks Global: STARX Token
0 ETH0.000337656.72
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:
STARXtoken

Compiler Version
v0.5.0+commit.1d4f565a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MPL-2.0 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-12-23
*/

pragma solidity ^0.5.0;

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

        return c;
    }

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

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

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

        return c;
    }

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

library Address {
  
    function isContract(address account) internal view returns (bool) {
     
        uint256 size;
        
        assembly { size := extcodesize(account) }
        return size > 0;
    }
}

interface IERC1820Registry {
   
    function setManager(address account, address newManager) external;
  
    function getManager(address account) external view returns (address);
 
    function setInterfaceImplementer(address account, bytes32 interfaceHash, address implementer) external;
  
    function getInterfaceImplementer(address account, bytes32 interfaceHash) external view returns (address);
   
    function interfaceHash(string calldata interfaceName) external pure returns (bytes32);
   
    function updateERC165Cache(address account, bytes4 interfaceId) external;

    function implementsERC165Interface(address account, bytes4 interfaceId) external view returns (bool);

    function implementsERC165InterfaceNoCache(address account, bytes4 interfaceId) external view returns (bool);

    event InterfaceImplementerSet(address indexed account, bytes32 indexed interfaceHash, address indexed implementer);

    event ManagerChanged(address indexed account, address indexed newManager);
}

interface IERC777 {
    
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);
   
    function granularity() external view returns (uint256);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);
  
    function send(address recipient, uint256 amount, bytes calldata data) external;
   
    function burn(uint256 amount, bytes calldata data) external;
   
    function isOperatorFor(address operator, address tokenHolder) external view returns (bool);
   
    function authorizeOperator(address operator) external;
    
    function revokeOperator(address operator) external;

    function defaultOperators() external view returns (address[] memory);

    
    function operatorSend(
        address sender,
        address recipient,
        uint256 amount,
        bytes calldata data,
        bytes calldata operatorData
    ) external;

    function operatorBurn(
        address account,
        uint256 amount,
        bytes calldata data,
        bytes calldata operatorData
    ) external;

    event Sent(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256 amount,
        bytes data,
        bytes operatorData
    );

    event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData);

    event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData);

    event AuthorizedOperator(address indexed operator, address indexed tokenHolder);

    event RevokedOperator(address indexed operator, address indexed tokenHolder);
}

interface IERC777Recipient {
    
    function tokensReceived(
        address operator,
        address from,
        address to,
        uint amount,
        bytes calldata userData,
        bytes calldata operatorData
    ) external;
}

interface IERC777Sender {
   
    function tokensToSend(
        address operator,
        address from,
        address to,
        uint amount,
        bytes calldata userData,
        bytes calldata operatorData
    ) external;
}

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);
}

contract ERC777 is IERC777, IERC20 {
    using SafeMath for uint256;
    using Address for address;

    IERC1820Registry private _erc1820 = IERC1820Registry(0xc0cE3461c92D95b4E1D3ABeb5c9D378b1e418030);

    mapping(address => uint256) private _balances;

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
    bytes32 constant private senderHash    = 0x29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe895;
    bytes32 constant private recipientHash = 0xb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b;

    address[] private _defaultOperatorsArray;

    mapping(address => bool) private _defaultOperators;
    mapping(address => mapping(address => bool)) private _operators;
    mapping(address => mapping(address => bool)) private _revokedDefaultOperators;
    mapping (address => mapping (address => uint256)) private _allowances;

     constructor(
        string memory name,
        string memory symbol,
        address[] memory defaultOperators
    ) public {
        _name   = name;
        _symbol = symbol;

        _defaultOperatorsArray = defaultOperators;
        for (uint256 i = 0; i < _defaultOperatorsArray.length; i++) {
            _defaultOperators[_defaultOperatorsArray[i]] = true;
        }
        _erc1820.setInterfaceImplementer(address(this), keccak256("ERC777Token"), address(this));
        _erc1820.setInterfaceImplementer(address(this), keccak256("ERC20Token"), address(this));
    }


    function name() public view returns (string memory) {
        return _name;
    }
   function symbol() public view returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return 18;
    }

    function granularity() public view returns (uint256) {
        return 18;
    }

    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }
 function balanceOf(address tokenHolder) public view returns (uint256) {
        return _balances[tokenHolder];
    }
    function send(address recipient, uint256 amount, bytes calldata data) external {
        _send(msg.sender, msg.sender, recipient, amount, data, "", true);
    }
    function transfer(address recipient, uint256 amount) external returns (bool) {
        require(recipient != address(0), "ERC777: transfer to the zero address");

        address from = msg.sender;

        _callTokensToSend(from, from, recipient, amount, "", "");

        _move(from, from, recipient, amount, "", "");

        _callTokensReceived(from, from, recipient, amount, "", "", false);

        return true;
    }

     function burn(uint256 amount, bytes calldata data) external {
        _burn(msg.sender, msg.sender, amount, data, "");
    }
    
    function isOperatorFor(
        address operator,
        address tokenHolder
    ) public view returns (bool) {
        return operator == tokenHolder ||
            (_defaultOperators[operator] && !_revokedDefaultOperators[tokenHolder][operator]) ||
            _operators[tokenHolder][operator];
    }
   function authorizeOperator(address operator) external {
        require(msg.sender != operator, "ERC777: authorizing self as operator");

        if (_defaultOperators[operator]) {
            delete _revokedDefaultOperators[msg.sender][operator];
        } else {
            _operators[msg.sender][operator] = true;
        }

        emit AuthorizedOperator(operator, msg.sender);
    }

     function revokeOperator(address operator) external {
        require(operator != msg.sender, "ERC777: revoking self as operator");

        if (_defaultOperators[operator]) {
            _revokedDefaultOperators[msg.sender][operator] = true;
        } else {
            delete _operators[msg.sender][operator];
        }

        emit RevokedOperator(operator, msg.sender);
    }

   function defaultOperators() public view returns (address[] memory) {
        return _defaultOperatorsArray;
    }

   function operatorSend(
        address sender,
        address recipient,
        uint256 amount,
        bytes calldata data,
        bytes calldata operatorData
    )
    external
    {
        require(isOperatorFor(msg.sender, sender), "ERC777: caller is not an operator for holder");
        _send(msg.sender, sender, recipient, amount, data, operatorData, true);
    }

  
    function operatorBurn(address account, uint256 amount, bytes calldata data, bytes calldata operatorData) external {
        require(isOperatorFor(msg.sender, account), "ERC777: caller is not an operator for holder");
        _burn(msg.sender, account, amount, data, operatorData);
    }


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


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

  
    function transferFrom(address holder, address recipient, uint256 amount) external returns (bool) {
        require(recipient != address(0), "ERC777: transfer to the zero address");
        require(holder != address(0), "ERC777: transfer from the zero address");

        address spender = msg.sender;

        _callTokensToSend(spender, holder, recipient, amount, "", "");

        _move(spender, holder, recipient, amount, "", "");
        _approve(holder, spender, _allowances[holder][spender].sub(amount));

        _callTokensReceived(spender, holder, recipient, amount, "", "", false);

        return true;
    }

    function _mint(
        address operator,
        address account,
        uint256 amount,
        bytes memory userData,
        bytes memory operatorData
    )
    internal
    {
        require(account != address(0), "ERC777: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);

        _callTokensReceived(operator, address(0), account, amount, userData, operatorData, true);

        emit Minted(operator, account, amount, userData, operatorData);
        emit Transfer(address(0), account, amount);
    }

    function _send(
        address operator,
        address from,
        address to,
        uint256 amount,
        bytes memory userData,
        bytes memory operatorData,
        bool requireReceptionAck
    )
        private
    {
        require(from != address(0), "ERC777: send from the zero address");
        require(to != address(0), "ERC777: send to the zero address");

        _callTokensToSend(operator, from, to, amount, userData, operatorData);

        _move(operator, from, to, amount, userData, operatorData);

        _callTokensReceived(operator, from, to, amount, userData, operatorData, requireReceptionAck);
    }
    
    function _burn(
        address operator,
        address from,
        uint256 amount,
        bytes memory data,
        bytes memory operatorData
    )
        private
    {
        require(from != address(0), "ERC777: burn from the zero address");

        _callTokensToSend(operator, from, address(0), amount, data, operatorData);


        _totalSupply = _totalSupply.sub(amount);
        _balances[from] = _balances[from].sub(amount);

        emit Burned(operator, from, amount, data, operatorData);
        emit Transfer(from, address(0), amount);
    }

    function _move(
        address operator,
        address from,
        address to,
        uint256 amount,
        bytes memory userData,
        bytes memory operatorData
    )
        private
    {
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount);

        emit Sent(operator, from, to, amount, userData, operatorData);
        emit Transfer(from, to, amount);
    }

    function _approve(address holder, address spender, uint256 value) private {
           require(spender != address(0), "ERC777: approve to the zero address");

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

   function _callTokensToSend(
        address operator,
        address from,
        address to,
        uint256 amount,
        bytes memory userData,
        bytes memory operatorData
    )
        private
    {
        address implementer = _erc1820.getInterfaceImplementer(from, senderHash);
        if (implementer != address(0)) {
            IERC777Sender(implementer).tokensToSend(operator, from, to, amount, userData, operatorData);
        }
    }

     function _callTokensReceived(
        address operator,
        address from,
        address to,
        uint256 amount,
        bytes memory userData,
        bytes memory operatorData,
        bool requireReceptionAck
    )
        private
    {
        address implementer = _erc1820.getInterfaceImplementer(to, recipientHash);
        if (implementer != address(0)) {
            IERC777Recipient(implementer).tokensReceived(operator, from, to, amount, userData, operatorData);
        } else if (requireReceptionAck) {
            require(!to.isContract(), "ERC777: token recipient contract has no implementer for ERC777TokensRecipient");
        }
    }
}


//STARXtoken's smart contract
contract STARXtoken is ERC777 {
      constructor () public ERC777("STARX", "STARX", new address[](0)) {
        _mint(msg.sender, msg.sender, 1000000000 * 10 ** 18, "", "");
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"defaultOperators","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"granularity","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"data","type":"bytes"},{"name":"operatorData","type":"bytes"}],"name":"operatorSend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"operator","type":"address"}],"name":"authorizeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"data","type":"bytes"}],"name":"send","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"operator","type":"address"},{"name":"tokenHolder","type":"address"}],"name":"isOperatorFor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"holder","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"operator","type":"address"}],"name":"revokeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"},{"name":"data","type":"bytes"},{"name":"operatorData","type":"bytes"}],"name":"operatorBurn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"data","type":"bytes"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"},{"indexed":false,"name":"operatorData","type":"bytes"}],"name":"Sent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"},{"indexed":false,"name":"operatorData","type":"bytes"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"},{"indexed":false,"name":"operatorData","type":"bytes"}],"name":"Burned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":true,"name":"tokenHolder","type":"address"}],"name":"AuthorizedOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":true,"name":"tokenHolder","type":"address"}],"name":"RevokedOperator","type":"event"}]

608060405273c0ce3461c92d95b4e1d3abeb5c9d378b1e4180306000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006557600080fd5b506040805190810160405280600581526020017f53544152580000000000000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f53544152580000000000000000000000000000000000000000000000000000008152506000604051908082528060200260200182016040528015620001035781602001602082028038833980820191505090505b5082600390805190602001906200011c92919062000d3f565b5081600490805190602001906200013592919062000d3f565b5080600590805190602001906200014e92919062000dc6565b5060008090505b60058054905081101562000203576001600660006005848154811015156200017957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505062000155565b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329965a1d3060405180807f455243373737546f6b656e000000000000000000000000000000000000000000815250600b0190506040518091039020306040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b1580156200033257600080fd5b505af115801562000347573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329965a1d3060405180807f4552433230546f6b656e00000000000000000000000000000000000000000000815250600a0190506040518091039020306040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b1580156200047957600080fd5b505af11580156200048e573d6000803e3d6000fd5b50505050505050620004df33336b033b2e3c9fd0803ce800000060206040519081016040528060008152506020604051908101604052806000815250620004e5640100000000026401000000009004565b62000ec3565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156200058b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b620005b0836002546200082f6401000000000262002d18179091906401000000009004565b6002819055506200061883600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200082f6401000000000262002d18179091906401000000009004565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200067d856000868686866001620008ba640100000000026401000000009004565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156200071b578082015181840152602081019050620006fe565b50505050905090810190601f168015620007495780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156200078457808201518184015260208101905062000767565b50505050905090810190601f168015620007b25780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b6000808284019050838110151515620008b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6001026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b158015620009a257600080fd5b505afa158015620009b7573d6000803e3d6000fd5b505050506040513d6020811015620009ce57600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151562000c22578073ffffffffffffffffffffffffffffffffffffffff166223de298989898989896040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101562000b4657808201518184015260208101905062000b29565b50505050905090810190601f16801562000b745780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101562000baf57808201518184015260208101905062000b92565b50505050905090810190601f16801562000bdd5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801562000c0357600080fd5b505af115801562000c18573d6000803e3d6000fd5b5050505062000d22565b811562000d215762000c5e8673ffffffffffffffffffffffffffffffffffffffff1662000d2c6401000000000262002da2176401000000009004565b15151562000d20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637481526020017f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f81526020017f6b656e73526563697069656e740000000000000000000000000000000000000081525060600191505060405180910390fd5b5b5b5050505050505050565b600080823b905060008111915050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000d8257805160ff191683800117855562000db3565b8280016001018555821562000db3579182015b8281111562000db257825182559160200191906001019062000d95565b5b50905062000dc2919062000e55565b5090565b82805482825590600052602060002090810192821562000e42579160200282015b8281111562000e415782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000de7565b5b50905062000e51919062000e7d565b5090565b62000e7a91905b8082111562000e7657600081600090555060010162000e5c565b5090565b90565b62000ec091905b8082111562000ebc57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010162000e84565b5090565b90565b612de18062000ed36000396000f3fe6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306e485381461010157806306fdde031461016d578063095ea7b3146101fd57806318160ddd1461027057806323b872dd1461029b578063313ce5671461032e578063556f0dc71461035f57806362ad1b831461038a57806370a08231146104af578063959b8c3f1461051457806395d89b41146105655780639bd9bbc6146105f5578063a9059cbb146106a5578063d95b637114610718578063dd62ed3e146107a1578063fad8b32a14610826578063fc673c4f14610877578063fe9d93031461097c575b600080fd5b34801561010d57600080fd5b50610116610a0c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561015957808201518184015260208101905061013e565b505050509050019250505060405180910390f35b34801561017957600080fd5b50610182610a9a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020957600080fd5b506102566004803603604081101561022057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b3c565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b50610285610b58565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b50610314600480360360608110156102be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b62565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b50610343610e2f565b604051808260ff1660ff16815260200191505060405180910390f35b34801561036b57600080fd5b50610374610e38565b6040518082815260200191505060405180910390f35b34801561039657600080fd5b506104ad600480360360a08110156103ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561041457600080fd5b82018360208201111561042657600080fd5b8035906020019184600183028401116401000000008311171561044857600080fd5b90919293919293908035906020019064010000000081111561046957600080fd5b82018360208201111561047b57600080fd5b8035906020019184600183028401116401000000008311171561049d57600080fd5b9091929391929390505050610e41565b005b3480156104bb57600080fd5b506104fe600480360360208110156104d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f86565b6040518082815260200191505060405180910390f35b34801561052057600080fd5b506105636004803603602081101561053757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fcf565b005b34801561057157600080fd5b5061057a61126f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105ba57808201518184015260208101905061059f565b50505050905090810190601f1680156105e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561060157600080fd5b506106a36004803603606081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561065f57600080fd5b82018360208201111561067157600080fd5b8035906020019184600183028401116401000000008311171561069357600080fd5b9091929391929390505050611311565b005b3480156106b157600080fd5b506106fe600480360360408110156106c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061137b565b604051808215151515815260200191505060405180910390f35b34801561072457600080fd5b506107876004803603604081101561073b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e3565b604051808215151515815260200191505060405180910390f35b3480156107ad57600080fd5b50610810600480360360408110156107c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611694565b6040518082815260200191505060405180910390f35b34801561083257600080fd5b506108756004803603602081101561084957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061171b565b005b34801561088357600080fd5b5061097a6004803603608081101561089a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156108e157600080fd5b8201836020820111156108f357600080fd5b8035906020019184600183028401116401000000008311171561091557600080fd5b90919293919293908035906020019064010000000081111561093657600080fd5b82018360208201111561094857600080fd5b8035906020019184600183028401116401000000008311171561096a57600080fd5b90919293919293905050506119bb565b005b34801561098857600080fd5b50610a0a6004803603604081101561099f57600080fd5b8101908080359060200190929190803590602001906401000000008111156109c657600080fd5b8201836020820111156109d857600080fd5b803590602001918460018302840111640100000000831117156109fa57600080fd5b9091929391929390505050611afc565b005b60606005805480602002602001604051908101604052809291908181526020018280548015610a9057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a46575b5050505050905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b325780601f10610b0757610100808354040283529160200191610b32565b820191906000526020600020905b815481529060010190602001808311610b1557829003601f168201915b5050505050905090565b600080339050610b4d818585611b62565b600191505092915050565b6000600254905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433737373a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4552433737373a207472616e736665722066726f6d20746865207a65726f206181526020017f646472657373000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000339050610d2c8186868660206040519081016040528060008152506020604051908101604052806000815250611d18565b610d5a8186868660206040519081016040528060008152506020604051908101604052806000815250612079565b610df38582610dee86600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236690919063ffffffff16565b611b62565b610e23818686866020604051908101604052806000815250602060405190810160405280600081525060006123f1565b60019150509392505050565b60006012905090565b60006012905090565b610e4b33886114e3565b1515610ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f81526020017f7220666f7220686f6c646572000000000000000000000000000000000000000081525060400191505060405180910390fd5b610f7d3388888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050600161283e565b50505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515611099576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433737373a20617574686f72697a696e672073656c66206173206f70657281526020017f61746f720000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561117c57600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055611212565b6001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a350565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113075780601f106112dc57610100808354040283529160200191611307565b820191906000526020600020905b8154815290600101906020018083116112ea57829003601f168201915b5050505050905090565b6113753333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506020604051908101604052806000815250600161283e565b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611447576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433737373a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600033905061147a8182868660206040519081016040528060008152506020604051908101604052806000815250611d18565b6114a88182868660206040519081016040528060008152506020604051908101604052806000815250612079565b6114d8818286866020604051908101604052806000815250602060405190810160405280600081525060006123f1565b600191505092915050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806115fb5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156115fa5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b8061168c5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905092915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433737373a207265766f6b696e672073656c66206173206f70657261746f81526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118d1576001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061195e565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a350565b6119c533876114e3565b1515611a5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f81526020017f7220666f7220686f6c646572000000000000000000000000000000000000000081525060400191505060405180910390fd5b611af433878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506129e2565b505050505050565b611b5d33338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505060206040519081016040528060008152506129e2565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611c2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4552433737373a20617070726f766520746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956001026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b158015611dff57600080fd5b505afa158015611e13573d6000803e3d6000fd5b505050506040513d6020811015611e2957600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515612070578073ffffffffffffffffffffffffffffffffffffffff166375ab97828888888888886040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611f9f578082015181840152602081019050611f84565b50505050905090810190601f168015611fcc5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612005578082015181840152602081019050611fea565b50505050905090810190601f1680156120325780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561205757600080fd5b505af115801561206b573d6000803e3d6000fd5b505050505b50505050505050565b6120cb83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236690919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061216083600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d1890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561225657808201518184015260208101905061223b565b50505050905090810190601f1680156122835780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156122bc5780820151818401526020810190506122a1565b50505050905090810190601f1680156122e95780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a48373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050565b60008282111515156123e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6001026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b1580156124d857600080fd5b505afa1580156124ec573d6000803e3d6000fd5b505050506040513d602081101561250257600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561274c578073ffffffffffffffffffffffffffffffffffffffff166223de298989898989896040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561267757808201518184015260208101905061265c565b50505050905090810190601f1680156126a45780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156126dd5780820151818401526020810190506126c2565b50505050905090810190601f16801561270a5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561272f57600080fd5b505af1158015612743573d6000803e3d6000fd5b50505050612834565b8115612833576127718673ffffffffffffffffffffffffffffffffffffffff16612da2565b151515612832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637481526020017f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f81526020017f6b656e73526563697069656e740000000000000000000000000000000000000081525060600191505060405180910390fd5b5b5b5050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614151515612909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4552433737373a2073656e642066726f6d20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156129ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a2073656e6420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b6129bc878787878787611d18565b6129ca878787878787612079565b6129d9878787878787876123f1565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612aad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4552433737373a206275726e2066726f6d20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612abc85856000868686611d18565b612ad18360025461236690919063ffffffff16565b600281905550612b2983600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612c08578082015181840152602081019050612bed565b50505050905090810190601f168015612c355780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612c6e578082015181840152602081019050612c53565b50505050905090810190601f168015612c9b5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b6000808284019050838110151515612d98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080823b90506000811191505091905056fea165627a7a723058200d6f8c289051242d17a82681a73190da9c711de39d9a9aa1b806f564b6fc912d0029

Deployed Bytecode

0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306e485381461010157806306fdde031461016d578063095ea7b3146101fd57806318160ddd1461027057806323b872dd1461029b578063313ce5671461032e578063556f0dc71461035f57806362ad1b831461038a57806370a08231146104af578063959b8c3f1461051457806395d89b41146105655780639bd9bbc6146105f5578063a9059cbb146106a5578063d95b637114610718578063dd62ed3e146107a1578063fad8b32a14610826578063fc673c4f14610877578063fe9d93031461097c575b600080fd5b34801561010d57600080fd5b50610116610a0c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561015957808201518184015260208101905061013e565b505050509050019250505060405180910390f35b34801561017957600080fd5b50610182610a9a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020957600080fd5b506102566004803603604081101561022057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b3c565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b50610285610b58565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b50610314600480360360608110156102be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b62565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b50610343610e2f565b604051808260ff1660ff16815260200191505060405180910390f35b34801561036b57600080fd5b50610374610e38565b6040518082815260200191505060405180910390f35b34801561039657600080fd5b506104ad600480360360a08110156103ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561041457600080fd5b82018360208201111561042657600080fd5b8035906020019184600183028401116401000000008311171561044857600080fd5b90919293919293908035906020019064010000000081111561046957600080fd5b82018360208201111561047b57600080fd5b8035906020019184600183028401116401000000008311171561049d57600080fd5b9091929391929390505050610e41565b005b3480156104bb57600080fd5b506104fe600480360360208110156104d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f86565b6040518082815260200191505060405180910390f35b34801561052057600080fd5b506105636004803603602081101561053757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fcf565b005b34801561057157600080fd5b5061057a61126f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105ba57808201518184015260208101905061059f565b50505050905090810190601f1680156105e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561060157600080fd5b506106a36004803603606081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561065f57600080fd5b82018360208201111561067157600080fd5b8035906020019184600183028401116401000000008311171561069357600080fd5b9091929391929390505050611311565b005b3480156106b157600080fd5b506106fe600480360360408110156106c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061137b565b604051808215151515815260200191505060405180910390f35b34801561072457600080fd5b506107876004803603604081101561073b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e3565b604051808215151515815260200191505060405180910390f35b3480156107ad57600080fd5b50610810600480360360408110156107c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611694565b6040518082815260200191505060405180910390f35b34801561083257600080fd5b506108756004803603602081101561084957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061171b565b005b34801561088357600080fd5b5061097a6004803603608081101561089a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156108e157600080fd5b8201836020820111156108f357600080fd5b8035906020019184600183028401116401000000008311171561091557600080fd5b90919293919293908035906020019064010000000081111561093657600080fd5b82018360208201111561094857600080fd5b8035906020019184600183028401116401000000008311171561096a57600080fd5b90919293919293905050506119bb565b005b34801561098857600080fd5b50610a0a6004803603604081101561099f57600080fd5b8101908080359060200190929190803590602001906401000000008111156109c657600080fd5b8201836020820111156109d857600080fd5b803590602001918460018302840111640100000000831117156109fa57600080fd5b9091929391929390505050611afc565b005b60606005805480602002602001604051908101604052809291908181526020018280548015610a9057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a46575b5050505050905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b325780601f10610b0757610100808354040283529160200191610b32565b820191906000526020600020905b815481529060010190602001808311610b1557829003601f168201915b5050505050905090565b600080339050610b4d818585611b62565b600191505092915050565b6000600254905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433737373a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4552433737373a207472616e736665722066726f6d20746865207a65726f206181526020017f646472657373000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000339050610d2c8186868660206040519081016040528060008152506020604051908101604052806000815250611d18565b610d5a8186868660206040519081016040528060008152506020604051908101604052806000815250612079565b610df38582610dee86600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236690919063ffffffff16565b611b62565b610e23818686866020604051908101604052806000815250602060405190810160405280600081525060006123f1565b60019150509392505050565b60006012905090565b60006012905090565b610e4b33886114e3565b1515610ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f81526020017f7220666f7220686f6c646572000000000000000000000000000000000000000081525060400191505060405180910390fd5b610f7d3388888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050600161283e565b50505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515611099576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433737373a20617574686f72697a696e672073656c66206173206f70657281526020017f61746f720000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561117c57600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055611212565b6001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a350565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113075780601f106112dc57610100808354040283529160200191611307565b820191906000526020600020905b8154815290600101906020018083116112ea57829003601f168201915b5050505050905090565b6113753333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506020604051908101604052806000815250600161283e565b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611447576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433737373a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600033905061147a8182868660206040519081016040528060008152506020604051908101604052806000815250611d18565b6114a88182868660206040519081016040528060008152506020604051908101604052806000815250612079565b6114d8818286866020604051908101604052806000815250602060405190810160405280600081525060006123f1565b600191505092915050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806115fb5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156115fa5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b8061168c5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905092915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433737373a207265766f6b696e672073656c66206173206f70657261746f81526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118d1576001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061195e565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a350565b6119c533876114e3565b1515611a5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f81526020017f7220666f7220686f6c646572000000000000000000000000000000000000000081525060400191505060405180910390fd5b611af433878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506129e2565b505050505050565b611b5d33338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505060206040519081016040528060008152506129e2565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611c2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4552433737373a20617070726f766520746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956001026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b158015611dff57600080fd5b505afa158015611e13573d6000803e3d6000fd5b505050506040513d6020811015611e2957600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515612070578073ffffffffffffffffffffffffffffffffffffffff166375ab97828888888888886040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611f9f578082015181840152602081019050611f84565b50505050905090810190601f168015611fcc5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612005578082015181840152602081019050611fea565b50505050905090810190601f1680156120325780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561205757600080fd5b505af115801561206b573d6000803e3d6000fd5b505050505b50505050505050565b6120cb83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236690919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061216083600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d1890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561225657808201518184015260208101905061223b565b50505050905090810190601f1680156122835780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156122bc5780820151818401526020810190506122a1565b50505050905090810190601f1680156122e95780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a48373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050565b60008282111515156123e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6001026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b1580156124d857600080fd5b505afa1580156124ec573d6000803e3d6000fd5b505050506040513d602081101561250257600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561274c578073ffffffffffffffffffffffffffffffffffffffff166223de298989898989896040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561267757808201518184015260208101905061265c565b50505050905090810190601f1680156126a45780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156126dd5780820151818401526020810190506126c2565b50505050905090810190601f16801561270a5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561272f57600080fd5b505af1158015612743573d6000803e3d6000fd5b50505050612834565b8115612833576127718673ffffffffffffffffffffffffffffffffffffffff16612da2565b151515612832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f4552433737373a20746f6b656e20726563697069656e7420636f6e747261637481526020017f20686173206e6f20696d706c656d656e74657220666f7220455243373737546f81526020017f6b656e73526563697069656e740000000000000000000000000000000000000081525060600191505060405180910390fd5b5b5b5050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614151515612909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4552433737373a2073656e642066726f6d20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156129ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a2073656e6420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b6129bc878787878787611d18565b6129ca878787878787612079565b6129d9878787878787876123f1565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612aad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4552433737373a206275726e2066726f6d20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612abc85856000868686611d18565b612ad18360025461236690919063ffffffff16565b600281905550612b2983600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612c08578082015181840152602081019050612bed565b50505050905090810190601f168015612c355780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612c6e578082015181840152602081019050612c53565b50505050905090810190601f168015612c9b5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b6000808284019050838110151515612d98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080823b90506000811191505091905056fea165627a7a723058200d6f8c289051242d17a82681a73190da9c711de39d9a9aa1b806f564b6fc912d0029

Deployed Bytecode Sourcemap

14847:186:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9255:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9255:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9255:115:0;;;;;;;;;;;;;;;;;6813:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6813:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6813:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10218:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10218:184:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10218:184:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7167:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7167:91:0;;;;;;;;;;;;;;;;;;;;;;;10414:632;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10414:632:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10414:632:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6994:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6994:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7078:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7078:81:0;;;;;;;;;;;;;;;;;;;;;;;9377:384;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9377:384:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;9377:384:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9377:384:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9377:384:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9377:384:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9377:384:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9377:384:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9377:384:0;;;;;;;;;;;;;;;7261:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7261:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7261:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8450:399;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8450:399:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8450:399:0;;;;;;;;;;;;;;;;;;;;;;6901:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6901:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6901:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7385:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7385:162:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7385:162:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7385:162:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7385:162:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7385:162:0;;;;;;;;;;;;;;;7553:434;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7553:434:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7553:434:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8134:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8134:311:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8134:311:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10072:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10072:136:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10072:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8858:390;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8858:390:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8858:390:0;;;;;;;;;;;;;;;;;;;;;;9773:289;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9773:289:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;9773:289:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9773:289:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9773:289:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9773:289:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9773:289:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9773:289:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9773:289:0;;;;;;;;;;;;;;;7996:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7996:126:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7996:126:0;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7996:126:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7996:126:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7996:126:0;;;;;;;;;;;;;;;9255:115;9304:16;9340:22;9333:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9255:115;:::o;6813:83::-;6850:13;6883:5;6876:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6813:83;:::o;10218:184::-;10285:4;10302:14;10319:10;10302:27;;10340:32;10349:6;10357:7;10366:5;10340:8;:32::i;:::-;10390:4;10383:11;;;10218:184;;;;:::o;7167:91::-;7211:7;7238:12;;7231:19;;7167:91;:::o;10414:632::-;10505:4;10551:1;10530:23;;:9;:23;;;;10522:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10631:1;10613:20;;:6;:20;;;;10605:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10689:15;10707:10;10689:28;;10730:61;10748:7;10757:6;10765:9;10776:6;10730:61;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:61::i;:::-;10804:49;10810:7;10819:6;10827:9;10838:6;10804:49;;;;;;;;;;;;;;;;;;;;;;;;;;:5;:49::i;:::-;10864:67;10873:6;10881:7;10890:40;10923:6;10890:11;:19;10902:6;10890:19;;;;;;;;;;;;;;;:28;10910:7;10890:28;;;;;;;;;;;;;;;;:32;;:40;;;;:::i;:::-;10864:8;:67::i;:::-;10944:70;10964:7;10973:6;10981:9;10992:6;10944:70;;;;;;;;;;;;;;;;;;;;;;;;;;11008:5;10944:19;:70::i;:::-;11034:4;11027:11;;;10414:632;;;;;:::o;6994:76::-;7035:5;7060:2;7053:9;;6994:76;:::o;7078:81::-;7122:7;7149:2;7142:9;;7078:81;:::o;9377:384::-;9590:33;9604:10;9616:6;9590:13;:33::i;:::-;9582:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9683:70;9689:10;9701:6;9709:9;9720:6;9728:4;;9683:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9683:70:0;;;;;;9734:12;;9683:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9683:70:0;;;;;;9748:4;9683:5;:70::i;:::-;9377:384;;;;;;;:::o;7261:118::-;7322:7;7349:9;:22;7359:11;7349:22;;;;;;;;;;;;;;;;7342:29;;7261:118;;;:::o;8450:399::-;8537:8;8523:22;;:10;:22;;;;8515:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8603:17;:27;8621:8;8603:27;;;;;;;;;;;;;;;;;;;;;;;;;8599:185;;;8654:24;:36;8679:10;8654:36;;;;;;;;;;;;;;;:46;8691:8;8654:46;;;;;;;;;;;;;;;;8647:53;;;;;;;;;;;8599:185;;;8768:4;8733:10;:22;8744:10;8733:22;;;;;;;;;;;;;;;:32;8756:8;8733:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;8599:185;8830:10;8801:40;;8820:8;8801:40;;;;;;;;;;;;8450:399;:::o;6901:87::-;6940:13;6973:7;6966:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6901:87;:::o;7385:162::-;7475:64;7481:10;7493;7505:9;7516:6;7524:4;;7475:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7475:64:0;;;;;;;;;;;;;;;;;;;7534:4;7475:5;:64::i;:::-;7385:162;;;;:::o;7553:434::-;7624:4;7670:1;7649:23;;:9;:23;;;;7641:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7726:12;7741:10;7726:25;;7764:56;7782:4;7788;7794:9;7805:6;7764:56;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:56::i;:::-;7833:44;7839:4;7845;7851:9;7862:6;7833:44;;;;;;;;;;;;;;;;;;;;;;;;;;:5;:44::i;:::-;7890:65;7910:4;7916;7922:9;7933:6;7890:65;;;;;;;;;;;;;;;;;;;;;;;;;;7949:5;7890:19;:65::i;:::-;7975:4;7968:11;;;7553:434;;;;:::o;8134:311::-;8242:4;8278:11;8266:23;;:8;:23;;;:121;;;;8307:17;:27;8325:8;8307:27;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;;8339:24;:37;8364:11;8339:37;;;;;;;;;;;;;;;:47;8377:8;8339:47;;;;;;;;;;;;;;;;;;;;;;;;;8338:48;8307:79;8266:121;:171;;;;8404:10;:23;8415:11;8404:23;;;;;;;;;;;;;;;:33;8428:8;8404:33;;;;;;;;;;;;;;;;;;;;;;;;;8266:171;8259:178;;8134:311;;;;:::o;10072:136::-;10145:7;10172:11;:19;10184:6;10172:19;;;;;;;;;;;;;;;:28;10192:7;10172:28;;;;;;;;;;;;;;;;10165:35;;10072:136;;;;:::o;8858:390::-;8940:10;8928:22;;:8;:22;;;;8920:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9005:17;:27;9023:8;9005:27;;;;;;;;;;;;;;;;;;;;;;;;;9001:185;;;9098:4;9049:24;:36;9074:10;9049:36;;;;;;;;;;;;;;;:46;9086:8;9049:46;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;9001:185;;;9142:10;:22;9153:10;9142:22;;;;;;;;;;;;;;;:32;9165:8;9142:32;;;;;;;;;;;;;;;;9135:39;;;;;;;;;;;9001:185;9229:10;9203:37;;9219:8;9203:37;;;;;;;;;;;;8858:390;:::o;9773:289::-;9906:34;9920:10;9932:7;9906:13;:34::i;:::-;9898:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10000:54;10006:10;10018:7;10027:6;10035:4;;10000:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;10000:54:0;;;;;;10041:12;;10000:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;10000:54:0;;;;;;:5;:54::i;:::-;9773:289;;;;;;:::o;7996:126::-;8067:47;8073:10;8085;8097:6;8105:4;;8067:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8067:47:0;;;;;;;;;;;;;;;;;;;:5;:47::i;:::-;7996:126;;;:::o;13382:262::-;13497:1;13478:21;;:7;:21;;;;13470:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13583:5;13552:11;:19;13564:6;13552:19;;;;;;;;;;;;;;;:28;13572:7;13552:28;;;;;;;;;;;;;;;:36;;;;13621:7;13604:32;;13613:6;13604:32;;;13630:5;13604:32;;;;;;;;;;;;;;;;;;13382:262;;;:::o;13651:470::-;13882:19;13904:8;;;;;;;;;;;:32;;;13937:4;5686:66;13943:10;;13904:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13904:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13904:50:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13904:50:0;;;;;;;;;;;;;;;;13882:72;;13992:1;13969:25;;:11;:25;;;;13965:149;;;14025:11;14011:39;;;14051:8;14061:4;14067:2;14071:6;14079:8;14089:12;14011:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14011:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14011:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14011:91:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14011:91:0;;;;13965:149;13651:470;;;;;;;:::o;12934:440::-;13171:27;13191:6;13171:9;:15;13181:4;13171:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;13153:9;:15;13163:4;13153:15;;;;;;;;;;;;;;;:45;;;;13225:25;13243:6;13225:9;:13;13235:2;13225:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;13209:9;:13;13219:2;13209:13;;;;;;;;;;;;;;;:41;;;;13289:2;13268:56;;13283:4;13268:56;;13273:8;13268:56;;;13293:6;13301:8;13311:12;13268:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13268:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13268:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13355:2;13340:26;;13349:4;13340:26;;;13359:6;13340:26;;;;;;;;;;;;;;;;;;12934:440;;;;;;:::o;244:184::-;302:7;335:1;330;:6;;322:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;382:9;398:1;394;:5;382:17;;419:1;412:8;;;244:184;;;;:::o;14130:677::-;14398:19;14420:8;;;;;;;;;;;:32;;;14453:2;5800:66;14457:13;;14420:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14420:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14420:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14420:51:0;;;;;;;;;;;;;;;;14398:73;;14509:1;14486:25;;:11;:25;;;;14482:318;;;14545:11;14528:44;;;14573:8;14583:4;14589:2;14593:6;14601:8;14611:12;14528:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14528:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14528:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14528:96:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14528:96:0;;;;14482:318;;;14646:19;14642:158;;;14691:15;:2;:13;;;:15::i;:::-;14690:16;14682:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14642:158;14482:318;14130:677;;;;;;;;:::o;11677:656::-;11955:1;11939:18;;:4;:18;;;;11931:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12029:1;12015:16;;:2;:16;;;;12007:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12081:69;12099:8;12109:4;12115:2;12119:6;12127:8;12137:12;12081:17;:69::i;:::-;12163:57;12169:8;12179:4;12185:2;12189:6;12197:8;12207:12;12163:5;:57::i;:::-;12233:92;12253:8;12263:4;12269:2;12273:6;12281:8;12291:12;12305:19;12233;:92::i;:::-;11677:656;;;;;;;:::o;12345:581::-;12563:1;12547:18;;:4;:18;;;;12539:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12617:73;12635:8;12645:4;12659:1;12663:6;12671:4;12677:12;12617:17;:73::i;:::-;12720:24;12737:6;12720:12;;:16;;:24;;;;:::i;:::-;12705:12;:39;;;;12773:27;12793:6;12773:9;:15;12783:4;12773:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;12755:9;:15;12765:4;12755:15;;;;;;;;;;;;;;;:45;;;;12835:4;12818:50;;12825:8;12818:50;;;12841:6;12849:4;12855:12;12818:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12818:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12818:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12907:1;12884:34;;12893:4;12884:34;;;12911:6;12884:34;;;;;;;;;;;;;;;;;;12345:581;;;;;:::o;55:181::-;113:7;133:9;149:1;145;:5;133:17;;174:1;169;:6;;161:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;227:1;220:8;;;55:181;;;;:::o;1072:191::-;1132:4;1156:12;1220:7;1208:20;1200:28;;1254:1;1247:4;:8;1240:15;;;1072:191;;;:::o

Swarm Source

bzzr://0d6f8c289051242d17a82681a73190da9c711de39d9a9aa1b806f564b6fc912d

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

Starworks Global Pte Ltd. incorporated in Singapore built Starworks Ecosystem based on Blockchain technology to conduct transactions securely and seamlessly using the integrated platforms comprising the Starworks Ecosystem for its business in the hospitality sector.

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.