{
  "contractName": "Witnet",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/libs/Witnet.sol\":\"Witnet\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]}},\"version\":1}",
  "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122040c412fceb899814e2c0744a20bfd8ee042e4540ee069db2253cf31e9ead548964736f6c634300081e0033",
  "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122040c412fceb899814e2c0744a20bfd8ee042e4540ee069db2253cf31e9ead548964736f6c634300081e0033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "151:52706:116:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;151:52706:116;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "151:52706:116:-:0;;;;;;;;",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport \"./Bech32.sol\";\r\nimport \"./Secp256k1.sol\";\r\nimport \"./WitnetCBOR.sol\";\r\n\r\nlibrary Witnet {\r\n\r\n    using Bech32 for Witnet.Address;\r\n    using WitnetBuffer for WitnetBuffer.Buffer;\r\n    using WitnetCBOR for WitnetCBOR.CBOR;\r\n    using WitnetCBOR for WitnetCBOR.CBOR[];\r\n\r\n    type Address is bytes20;\r\n\r\n    type BlockNumber is uint64;\r\n    \r\n    type QueryEvmReward is uint72;\r\n    type QueryUUID is bytes15;\r\n    type QueryId is uint64;\r\n\r\n    type RadonHash is bytes32;\r\n    type ServiceProvider is bytes20;\r\n    \r\n    type Timestamp is uint64;\r\n    type TransactionHash is bytes32;\r\n\r\n    uint32  constant internal WIT_1_GENESIS_TIMESTAMP = 0; // TBD    \r\n    uint32  constant internal WIT_1_SECS_PER_EPOCH = 45;\r\n\r\n    uint32  constant internal WIT_2_GENESIS_BEACON_INDEX = 0;       // TBD\r\n    uint32  constant internal WIT_2_GENESIS_BEACON_PREV_INDEX = 0;  // TBD\r\n    bytes24 constant internal WIT_2_GENESIS_BEACON_PREV_ROOT = 0;   // TBD\r\n    bytes16 constant internal WIT_2_GENESIS_BEACON_DDR_TALLIES_MERKLE_ROOT = 0;  // TBD\r\n    bytes16 constant internal WIT_2_GENESIS_BEACON_DRO_TALLIES_MERKLE_ROOT = 0;  // TBD\r\n    uint256 constant internal WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_0 = 0; // TBD\r\n    uint256 constant internal WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_1 = 0; // TBD\r\n    uint256 constant internal WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_2 = 0; // TBD\r\n    uint256 constant internal WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_3 = 0; // TBD\r\n    uint32  constant internal WIT_2_GENESIS_EPOCH = 0;      // TBD\r\n    uint32  constant internal WIT_2_GENESIS_TIMESTAMP = 0;  // TBD\r\n    uint32  constant internal WIT_2_SECS_PER_EPOCH = 20;    // TBD\r\n    uint32  constant internal WIT_2_FAST_FORWARD_COMMITTEE_SIZE = 64; // TBD\r\n\r\n\r\n    function channel(address wrb) internal view returns (bytes4) {\r\n        return bytes4(keccak256(abi.encode(address(wrb), block.chainid)));\r\n    }\r\n\r\n    struct Beacon {\r\n        uint32  index;\r\n        uint32  prevIndex;\r\n        bytes24 prevRoot;\r\n        bytes16 ddrTalliesMerkleRoot;\r\n        bytes16 droTalliesMerkleRoot;\r\n        uint256[4] nextCommitteeAggPubkey;\r\n    }\r\n\r\n    struct DataPullReport {\r\n        QueryId queryId;\r\n        QueryUUID queryHash;           // KECCAK256(channel | blockhash(block.number - 1) | ...)\r\n        bytes witDrRelayerSignature;   // ECDSA.signature(queryHash)\r\n        BlockNumber witDrResultEpoch;\r\n        bytes witDrResultCborBytes;\r\n        TransactionHash witDrTxHash;\r\n    }\r\n\r\n    struct DataPushReport {\r\n        TransactionHash witDrTxHash;\r\n        RadonHash queryRadHash;\r\n        QuerySLA  queryParams;\r\n        Timestamp resultTimestamp;\r\n        bytes resultCborBytes;\r\n    }\r\n\r\n    /// Data struct containing the Witnet-provided result to a Data Request.\r\n    struct DataResult {\r\n        ResultStatus status;\r\n        RadonDataTypes dataType;\r\n        TransactionHash drTxHash;\r\n        uint256 finality;\r\n        Timestamp timestamp;\r\n        WitnetCBOR.CBOR value;\r\n    }\r\n\r\n    struct FastForward {\r\n        Beacon beacon;\r\n        uint256[2] committeeAggSignature;\r\n        uint256[4][] committeeMissingPubkeys;\r\n    }\r\n\r\n    /// Struct containing both request and response data related to every query posted to the Witnet Request Board\r\n    struct Query {\r\n        QueryRequest request;\r\n        QueryResponse response;\r\n        QuerySLA slaParams;      // Minimum Service-Level parameters to be committed by the Witnet blockchain.\r\n        QueryUUID uuid;          // Universal unique identifier determined by the payload, WRB instance, chain id and EVM's previous block hash.\r\n        QueryEvmReward reward;   // EVM amount in wei eventually to be paid to the legit reporter.\r\n        BlockNumber checkpoint;\r\n    }\r\n\r\n    /// Possible status of a Witnet query.\r\n    enum QueryStatus {\r\n        Unknown,\r\n        Posted,\r\n        Reported,\r\n        Finalized,\r\n        Delayed,\r\n        Expired,\r\n        Disputed\r\n    }\r\n\r\n    struct QueryCallback {\r\n        address consumer;               // consumer contract address to which the query result will be reported\r\n        uint24  gasLimit;               // expected max amount of gas required by the callback method in the consumer contract\r\n    }\r\n\r\n    /// Data kept in EVM-storage for every Request posted to the Witnet Request Board.\r\n    struct QueryRequest {\r\n        address   requester;     // EVM address from which the request was posted.\r\n        uint24    callbackGas;   // Max callback gas limit upon response, if a callback is required.\r\n        bytes     radonBytecode; // Optional: Witnet Data Request bytecode to be solved by the Witnet blockchain.\r\n        RadonHash radonHash;     // Optional: Previously verified hash of the Witnet Data Request to be solved.\r\n    }\r\n\r\n    /// QueryResponse metadata and result as resolved by the Witnet blockchain.\r\n    struct QueryResponse {\r\n        address reporter;               // EVM address from which the Data Request result was reported.\r\n        Timestamp resultTimestamp;      // Unix timestamp (seconds) at which the data request was resolved in the Witnet blockchain.\r\n        TransactionHash resultDrTxHash; // Unique hash of the commit/reveal act in the Witnet blockchain that resolved the data request.\r\n        bytes resultCborBytes;          // CBOR-encode result to the request, as resolved in the Witnet blockchain.\r\n        address disputer;\r\n    }\r\n\r\n    /// Structure containing all possible SLA security parameters for Wit/2.1 Data Requests\r\n    struct QuerySLA {\r\n        uint16  witResultMaxSize; // max size permitted to whatever query result may come from the Wit/Oracle blockchain.\r\n        uint16  witCommitteeSize; // max number of eligibile witnesses in the Wit/Oracle blockchain for solving some query.\r\n        uint64  witUnitaryReward; // min fees in nanowits to be paid for getting the query solved and reported from the Wit/Oracle.\r\n    }\r\n\r\n    enum ResultStatus {\r\n        /// 0x00: No errors.\r\n        NoErrors,\r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Source-specific format error sub-codes ============================================================================\r\n        \r\n        /// 0x01: At least one of the source scripts is not a valid CBOR-encoded value.\r\n        SourceScriptNotCBOR, \r\n        \r\n        /// 0x02: The CBOR value decoded from a source script is not an Array.\r\n        SourceScriptNotArray,\r\n        \r\n        /// 0x03: The Array value decoded form a source script is not a valid Data Request.\r\n        SourceScriptNotRADON,\r\n        \r\n        /// 0x04: The request body of at least one data source was not properly formated.\r\n        SourceRequestBody,\r\n        \r\n        /// 0x05: The request headers of at least one data source was not properly formated.\r\n        SourceRequestHeaders,\r\n        \r\n        /// 0x06: The request URL of at least one data source was not properly formated.\r\n        SourceRequestURL,\r\n        \r\n        /// Unallocated\r\n        SourceFormat0x07, SourceFormat0x08, SourceFormat0x09, SourceFormat0x0A, SourceFormat0x0B, SourceFormat0x0C,\r\n        SourceFormat0x0D, SourceFormat0x0E, SourceFormat0x0F, \r\n        \r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Complexity error sub-codes ========================================================================================\r\n        \r\n        /// 0x10: The request contains too many sources.\r\n        RequestTooManySources,\r\n        \r\n        /// 0x11: The script contains too many calls.\r\n        ScriptTooManyCalls,\r\n        \r\n        /// Unallocated\r\n        Complexity0x12, Complexity0x13, Complexity0x14, Complexity0x15, Complexity0x16, Complexity0x17, Complexity0x18,\r\n        Complexity0x19, Complexity0x1A, Complexity0x1B, Complexity0x1C, Complexity0x1D, Complexity0x1E, Complexity0x1F,\r\n\r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Lack of support error sub-codes ===================================================================================\r\n        \r\n        /// 0x20: Some Radon operator code was found that is not supported (1+ args).\r\n        UnsupportedOperator,\r\n        \r\n        /// 0x21: Some Radon filter opcode is not currently supported (1+ args).\r\n        UnsupportedFilter,\r\n        \r\n        /// 0x22: Some Radon request type is not currently supported (1+ args).\r\n        UnsupportedHashFunction,\r\n        \r\n        /// 0x23: Some Radon reducer opcode is not currently supported (1+ args)\r\n        UnsupportedReducer,\r\n        \r\n        /// 0x24: Some Radon hash function is not currently supported (1+ args).\r\n        UnsupportedRequestType, \r\n        \r\n        /// 0x25: Some Radon encoding function is not currently supported (1+ args).\r\n        UnsupportedEncodingFunction,\r\n        \r\n        /// Unallocated\r\n        Operator0x26, Operator0x27, \r\n        \r\n        /// 0x28: Wrong number (or type) of arguments were passed to some Radon operator.\r\n        WrongArguments,\r\n        \r\n        /// Unallocated\r\n        Operator0x29, Operator0x2A, Operator0x2B, Operator0x2C, Operator0x2D, Operator0x2E, Operator0x2F,\r\n        \r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Retrieve-specific circumstantial error sub-codes ================================================================================\r\n        /// 0x30: A majority of data sources returned an HTTP status code other than 200 (1+ args):\r\n        HttpErrors,\r\n        \r\n        /// 0x31: A majority of data sources timed out:\r\n        RetrievalsTimeout,\r\n        \r\n        /// Unallocated\r\n        RetrieveCircumstance0x32, RetrieveCircumstance0x33, RetrieveCircumstance0x34, RetrieveCircumstance0x35,\r\n        RetrieveCircumstance0x36, RetrieveCircumstance0x37, RetrieveCircumstance0x38, RetrieveCircumstance0x39,\r\n        RetrieveCircumstance0x3A, RetrieveCircumstance0x3B, RetrieveCircumstance0x3C, RetrieveCircumstance0x3D,\r\n        RetrieveCircumstance0x3E, RetrieveCircumstance0x3F,\r\n        \r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Scripting-specific runtime error sub-code =========================================================================\r\n        /// 0x40: Math operator caused an underflow.\r\n        MathUnderflow,\r\n        \r\n        /// 0x41: Math operator caused an overflow.\r\n        MathOverflow,\r\n        \r\n        /// 0x42: Math operator tried to divide by zero.\r\n        MathDivisionByZero,            \r\n        \r\n        /// 0x43: Wrong input to subscript call.\r\n        WrongSubscriptInput,\r\n        \r\n        /// 0x44: Value cannot be extracted from input binary buffer.\r\n        BufferIsNotValue,\r\n        \r\n        /// 0x45: Value cannot be decoded from expected type.\r\n        Decode,\r\n        \r\n        /// 0x46: Unexpected empty array.\r\n        EmptyArray,\r\n        \r\n        /// 0x47: Value cannot be encoded to expected type.\r\n        Encode,\r\n        \r\n        /// 0x48: Failed to filter input values (1+ args).\r\n        Filter,\r\n        \r\n        /// 0x49: Failed to hash input value.\r\n        Hash,\r\n        \r\n        /// 0x4A: Mismatching array ranks.\r\n        MismatchingArrays,\r\n        \r\n        /// 0x4B: Failed to process non-homogenous array.\r\n        NonHomegeneousArray,\r\n        \r\n        /// 0x4C: Failed to parse syntax of some input value, or argument.\r\n        Parse,\r\n        \r\n        /// 0x4D: Parsing logic limits were exceeded.\r\n        ParseOverflow,\r\n        \r\n        /// Unallocated\r\n        ScriptError0x4E, ScriptError0x4F,\r\n    \r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Actual first-order result error codes =============================================================================\r\n        \r\n        /// 0x50: Not enough reveals were received in due time:\r\n        InsufficientReveals,\r\n        \r\n        /// 0x51: No actual reveal majority was reached on tally stage:\r\n        InsufficientMajority,\r\n        \r\n        /// 0x52: Not enough commits were received before tally stage:\r\n        InsufficientCommits,\r\n        \r\n        /// 0x53: Generic error during tally execution (to be deprecated after WIP #0028)\r\n        TallyExecution,\r\n        \r\n        /// 0x54: A majority of data sources could either be temporarily unresponsive or failing to report the requested data:\r\n        CircumstantialFailure,\r\n        \r\n        /// 0x55: At least one data source is inconsistent when queried through multiple transports at once:\r\n        InconsistentSources,\r\n        \r\n        /// 0x56: Any one of the (multiple) Retrieve, Aggregate or Tally scripts were badly formated:\r\n        MalformedDataRequest,\r\n        \r\n        /// 0x57: Values returned from a majority of data sources don't match the expected schema:\r\n        MalformedQueryResponses,\r\n        \r\n        /// Unallocated:    \r\n        OtherError0x58, OtherError0x59, OtherError0x5A, OtherError0x5B, OtherError0x5C, OtherError0x5D, OtherError0x5E, \r\n        \r\n        /// 0x5F: Size of serialized tally result exceeds allowance:\r\n        OversizedTallyResult,\r\n\r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Inter-stage runtime error sub-codes ===============================================================================\r\n        \r\n        /// 0x60: Data aggregation reveals could not get decoded on the tally stage:\r\n        MalformedReveals,\r\n        \r\n        /// 0x61: The result to data aggregation could not get encoded:\r\n        EncodeReveals,  \r\n        \r\n        /// 0x62: A mode tie ocurred when calculating some mode value on the aggregation or the tally stage:\r\n        ModeTie, \r\n        \r\n        /// Unallocated:\r\n        OtherError0x63, OtherError0x64, OtherError0x65, OtherError0x66, OtherError0x67, OtherError0x68, OtherError0x69, \r\n        OtherError0x6A, OtherError0x6B, OtherError0x6C, OtherError0x6D, OtherError0x6E, OtherError0x6F,\r\n        \r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Runtime access error sub-codes ====================================================================================\r\n        \r\n        /// 0x70: Tried to access a value from an array using an index that is out of bounds (1+ args):\r\n        ArrayIndexOutOfBounds,\r\n        \r\n        /// 0x71: Tried to access a value from a map using a key that does not exist (1+ args):\r\n        MapKeyNotFound,\r\n        \r\n        /// 0X72: Tried to extract value from a map using a JSON Path that returns no values (+1 args):\r\n        JsonPathNotFound,\r\n        \r\n        /// Unallocated:\r\n        OtherError0x73, OtherError0x74, OtherError0x75, OtherError0x76, OtherError0x77, OtherError0x78, \r\n        OtherError0x79, OtherError0x7A, OtherError0x7B, OtherError0x7C, OtherError0x7D, OtherError0x7E, OtherError0x7F, \r\n        OtherError0x80, OtherError0x81, OtherError0x82, OtherError0x83, OtherError0x84, OtherError0x85, OtherError0x86, \r\n        OtherError0x87, OtherError0x88, OtherError0x89, OtherError0x8A, OtherError0x8B, OtherError0x8C, OtherError0x8D, \r\n        OtherError0x8E, OtherError0x8F, OtherError0x90, OtherError0x91, OtherError0x92, OtherError0x93, OtherError0x94, \r\n        OtherError0x95, OtherError0x96, OtherError0x97, OtherError0x98, OtherError0x99, OtherError0x9A, OtherError0x9B,\r\n        OtherError0x9C, OtherError0x9D, OtherError0x9E, OtherError0x9F, OtherError0xA0, OtherError0xA1, OtherError0xA2, \r\n        OtherError0xA3, OtherError0xA4, OtherError0xA5, OtherError0xA6, OtherError0xA7, OtherError0xA8, OtherError0xA9, \r\n        OtherError0xAA, OtherError0xAB, OtherError0xAC, OtherError0xAD, OtherError0xAE, OtherError0xAF, OtherError0xB0,\r\n        OtherError0xB1, OtherError0xB2, OtherError0xB3, OtherError0xB4, OtherError0xB5, OtherError0xB6, OtherError0xB7,\r\n        OtherError0xB8, OtherError0xB9, OtherError0xBA, OtherError0xBB, OtherError0xBC, OtherError0xBD, OtherError0xBE,\r\n        OtherError0xBF, OtherError0xC0, OtherError0xC1, OtherError0xC2, OtherError0xC3, OtherError0xC4, OtherError0xC5,\r\n        OtherError0xC6, OtherError0xC7, OtherError0xC8, OtherError0xC9, OtherError0xCA, OtherError0xCB, OtherError0xCC,\r\n        OtherError0xCD, OtherError0xCE, OtherError0xCF, OtherError0xD0, OtherError0xD1, OtherError0xD2, OtherError0xD3,\r\n        OtherError0xD4, OtherError0xD5, OtherError0xD6, OtherError0xD7, OtherError0xD8, OtherError0xD9, OtherError0xDA,\r\n        OtherError0xDB, OtherError0xDC, OtherError0xDD, OtherError0xDE, OtherError0xDF,\r\n        \r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Inter-client generic error codes ==================================================================================\r\n        /// Data requests that cannot be relayed into the Witnet blockchain should be reported\r\n        /// with one of these errors. \r\n        \r\n        /// 0xE0: Requests that cannot be parsed must always get this error as their result.\r\n        BridgeMalformedDataRequest,\r\n        \r\n        /// 0xE1: Witnesses exceeds 100\r\n        BridgePoorIncentives,\r\n        \r\n        /// 0xE2: The request is rejected on the grounds that it may cause the submitter to spend or stake an\r\n        /// amount of value that is unjustifiably high when compared with the reward they will be getting\r\n        BridgeOversizedTallyResult,\r\n        \r\n        /// Unallocated:\r\n        OtherError0xE3, OtherError0xE4, OtherError0xE5, OtherError0xE6, OtherError0xE7, OtherError0xE8, OtherError0xE9,\r\n        OtherError0xEA, OtherError0xEB, OtherError0xEC, OtherError0xED, OtherError0xEE, OtherError0xEF, \r\n        \r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Transient errors as determined by the Request Board contract ======================================================\r\n        \r\n        /// 0xF0: \r\n        BoardAwaitingResult,\r\n\r\n        /// 0xF1:\r\n        BoardFinalizingResult,\r\n\r\n        /// 0xF2:\r\n        BoardBeingDisputed,\r\n\r\n        /// Unallocated\r\n        OtherError0xF3, OtherError0xF4, OtherError0xF5, OtherError0xF6, OtherError0xF7,\r\n\r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Final errors as determined by the Request Board contract ==========================================================\r\n\r\n        /// 0xF8:\r\n        BoardAlreadyDelivered,\r\n\r\n        /// 0xF9:\r\n        BoardResolutionTimeout,\r\n\r\n        /// Unallocated:\r\n        OtherError0xFA, OtherError0xFB, OtherError0xFC, OtherError0xFD, OtherError0xFE,\r\n        \r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// 0xFF: Some tally error is not intercepted but it should (0+ args)\r\n        UnhandledIntercept\r\n    }\r\n\r\n    /// Possible types either processed by Witnet Radon Scripts or included within results to Witnet Data Requests.\r\n    enum RadonDataTypes {\r\n        /* 0x00 */ Any, \r\n        /* 0x01 */ Array,\r\n        /* 0x02 */ Bool,\r\n        /* 0x03 */ Bytes,\r\n        /* 0x04 */ Integer,\r\n        /* 0x05 */ Float,\r\n        /* 0x06 */ Map,\r\n        /* 0x07 */ String,\r\n        Unused0x08, Unused0x09, Unused0x0A, Unused0x0B,\r\n        Unused0x0C, Unused0x0D, Unused0x0E, Unused0x0F,\r\n        /* 0x10 */ Same,\r\n        /* 0x11 */ Inner,\r\n        /* 0x12 */ Match,\r\n        /* 0x13 */ Subscript\r\n    }\r\n\r\n    /// Structure defining some data filtering that can be applied at the Aggregation or the Tally stages\r\n    /// within a Witnet Data Request resolution workflow.\r\n    struct RadonFilter {\r\n        RadonFilterOpcodes opcode;\r\n        bytes cborArgs;\r\n    }\r\n\r\n    /// Filtering methods currently supported on the Witnet blockchain. \r\n    enum RadonFilterOpcodes {\r\n        /* 0x00 */ Reserved0x00, //GreaterThan,\r\n        /* 0x01 */ Reserved0x01, //LessThan,\r\n        /* 0x02 */ Reserved0x02, //Equals,\r\n        /* 0x03 */ Reserved0x03, //AbsoluteDeviation,\r\n        /* 0x04 */ Reserved0x04, //RelativeDeviation\r\n        /* 0x05 */ StandardDeviation,\r\n        /* 0x06 */ Reserved0x06, //Top,\r\n        /* 0x07 */ Reserved0x07, //Bottom,\r\n        /* 0x08 */ Mode,\r\n        /* 0x09 */ Reserved0x09  //LessOrEqualThan\r\n    }\r\n\r\n    /// Structure defining the array of filters and reducting function to be applied at either the Aggregation\r\n    /// or the Tally stages within a Witnet Data Request resolution workflow.\r\n    struct RadonReducer {\r\n        RadonReduceOpcodes opcode;\r\n        RadonFilter[] filters;\r\n    }\r\n\r\n    /// Reducting functions currently supported on the Witnet blockchain.\r\n    enum RadonReduceOpcodes {\r\n        /* 0x00 */ Reserved0x00, //Minimum,\r\n        /* 0x01 */ Reserved0x01, //Maximum,\r\n        /* 0x02 */ Mode,\r\n        /* 0x03 */ AverageMean,\r\n        /* 0x04 */ Reserved0x04, //AverageMeanWeighted,\r\n        /* 0x05 */ AverageMedian,\r\n        /* 0x06 */ Reserved0x06, //AverageMedianWeighted,\r\n        /* 0x07 */ StandardDeviation,\r\n        /* 0x08 */ Reserved0x08, //AverageDeviation,\r\n        /* 0x09 */ Reserved0x09, //MedianDeviation,\r\n        /* 0x0A */ Reserved0x10, //MaximumDeviation,\r\n        /* 0x0B */ ConcatenateAndHash\r\n    }\r\n    \r\n    /// Structure containing the Retrieve-Attestation-Delivery parts of a Witnet-compliant Data Request.\r\n    struct RadonRequest {\r\n        RadonRetrieval[] retrieve;\r\n        RadonReducer aggregate;\r\n        RadonReducer tally;\r\n    }\r\n\r\n    /// Structure containing all the parameters that fully describe a Witnet Radon Retrieval within a Witnet Data Request.\r\n    struct RadonRetrieval {\r\n        uint8 argsCount;\r\n        RadonRetrievalMethods method;\r\n        RadonDataTypes dataType;\r\n        string url;\r\n        string body;\r\n        string[2][] headers;\r\n        bytes radonScript;\r\n    }\r\n\r\n    /// Possible Radon retrieval methods that can be used within a Radon Retrieval. \r\n    enum RadonRetrievalMethods {\r\n        /* 0 */ Unknown,\r\n        /* 1 */ HttpGet,\r\n        /* 2 */ RNG,\r\n        /* 3 */ HttpPost,\r\n        /* 4 */ HttpHead\r\n    }\r\n\r\n    /// Structure containing all possible SLA security parameters of a Witnet-compliant Data Request.\r\n\r\n    struct RadonSLAv1 {\r\n        uint8 numWitnesses;\r\n        uint8 minConsensusPercentage;\r\n        uint64 witnessReward;\r\n        uint64 witnessCollateral;\r\n        uint64 minerCommitRevealFee;\r\n    }\r\n\r\n\r\n    /// =======================================================================\r\n    /// --- Witnet.Address helper functions -----------------------------------\r\n\r\n    function eq(Address a, Address b) internal pure returns (bool) {\r\n        return Address.unwrap(a) == Address.unwrap(b);\r\n    }\r\n\r\n    function fromBech32(string memory pkh, bool mainnet) internal pure returns (Address) {\r\n        require(bytes(pkh).length == (mainnet ? 42 : 43), \"Bech32: invalid length\");\r\n        return Address.wrap(bytes20(Bech32.fromBech32(pkh, mainnet ? \"wit\" : \"twit\")));\r\n    }\r\n\r\n    function toBech32(Address witAddress, bool mainnet) internal pure returns (string memory) {\r\n        return Bech32.toBech32(address(Address.unwrap(witAddress)), mainnet ? \"wit\" : \"twit\");\r\n    }\r\n\r\n    function isZero(Address a) internal pure returns (bool) {\r\n        return Address.unwrap(a) == bytes20(0);\r\n    }\r\n\r\n    \r\n    /// =======================================================================\r\n    /// --- Witnet.Beacon helper functions ------------------------------------\r\n\r\n    function equals(Beacon storage self, Beacon calldata other)\r\n        internal view returns (bool)\r\n    {\r\n        return (\r\n            root(self) == root(other)\r\n        );\r\n    }\r\n\r\n    function root(Beacon calldata self) internal pure returns (bytes24) {\r\n        return bytes24(keccak256(abi.encode(\r\n            self.index,\r\n            self.prevIndex,\r\n            self.prevRoot,\r\n            self.ddrTalliesMerkleRoot,\r\n            self.droTalliesMerkleRoot,\r\n            self.nextCommitteeAggPubkey\r\n        )));\r\n    }\r\n    \r\n    function root(Beacon storage self) internal view returns (bytes24) {\r\n        return bytes24(keccak256(abi.encode(\r\n            self.index,\r\n            self.prevIndex,\r\n            self.prevRoot,\r\n            self.ddrTalliesMerkleRoot,\r\n            self.droTalliesMerkleRoot,\r\n            self.nextCommitteeAggPubkey\r\n        )));\r\n    }\r\n\r\n    \r\n    /// =======================================================================\r\n    /// --- BlockNumber helper functions --------------------------------------\r\n\r\n    function egt(BlockNumber a, BlockNumber b) internal pure returns (bool) {\r\n        return BlockNumber.unwrap(a) >= BlockNumber.unwrap(b);\r\n    }\r\n\r\n    function elt(BlockNumber a, BlockNumber b) internal pure returns (bool) {\r\n        return BlockNumber.unwrap(a) <= BlockNumber.unwrap(b);\r\n    }\r\n\r\n    function gt(BlockNumber a, BlockNumber b) internal pure returns (bool) {\r\n        return BlockNumber.unwrap(a) > BlockNumber.unwrap(b);\r\n    }\r\n\r\n    function lt(BlockNumber a, BlockNumber b) internal pure returns (bool) {\r\n        return BlockNumber.unwrap(a) < BlockNumber.unwrap(b);\r\n    }\r\n\r\n    function isZero(BlockNumber b) internal pure returns (bool) {\r\n        return (BlockNumber.unwrap(b) == 0);\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- Data*Report helper methods --------------------------------------------------------------------------------\r\n\r\n    function queryRelayer(DataPullReport calldata self) internal pure returns (address) {\r\n        return recoverEvmAddr(\r\n            self.witDrRelayerSignature, \r\n            hashify(self.queryHash)\r\n        );\r\n    }\r\n\r\n    function tallyHash(DataPullReport calldata self) internal pure returns (bytes32) {\r\n        return keccak256(abi.encode(\r\n            self.queryHash,\r\n            self.witDrRelayerSignature,\r\n            self.witDrTxHash,\r\n            self.witDrResultEpoch,\r\n            self.witDrResultCborBytes\r\n        ));\r\n    }\r\n\r\n    function digest(DataPushReport calldata self) internal pure returns (bytes32) {\r\n        return keccak256(abi.encode(\r\n            self.witDrTxHash,\r\n            self.queryRadHash,\r\n            self.queryParams.witResultMaxSize,\r\n            self.queryParams.witCommitteeSize,\r\n            self.queryParams.witUnitaryReward,\r\n            self.resultTimestamp,\r\n            self.resultCborBytes\r\n        ));\r\n    }\r\n    \r\n    /// ========================================================================================================\r\n    /// --- 'DataResult' helper methods ------------------------------------------------------------------------\r\n\r\n    function noErrors(DataResult memory self) internal pure returns (bool) {\r\n        return self.status == ResultStatus.NoErrors;\r\n    }\r\n\r\n    function keepWaiting(DataResult memory self) internal pure returns (bool) {\r\n        return keepWaiting(self.status);\r\n    }\r\n\r\n    function hasErrors(DataResult memory self) internal pure returns (bool) {\r\n        return hasErrors(self.status);\r\n    }\r\n\r\n    modifier _checkDataType(DataResult memory self, RadonDataTypes expectedDataType) {\r\n        require(\r\n            !keepWaiting(self)\r\n                && self.dataType == expectedDataType\r\n            , \"cbor: cannot fetch data\"\r\n        ); _; \r\n        self.dataType = peekRadonDataType(self.value);\r\n    }\r\n\r\n    function fetchAddress(DataResult memory self) \r\n        internal pure \r\n        _checkDataType(self, RadonDataTypes.Bytes) \r\n        returns (address _res)\r\n    {\r\n        return toAddress(self.value.readBytes());\r\n    }\r\n\r\n    function fetchBool(DataResult memory self) \r\n        internal pure \r\n        _checkDataType(self, RadonDataTypes.Bool) \r\n        returns (bool)\r\n    {\r\n        return self.value.readBool();\r\n    }\r\n\r\n    function fetchBytes(DataResult memory self)\r\n        internal pure \r\n        _checkDataType(self, RadonDataTypes.Bytes) \r\n        returns (bytes memory)\r\n    {\r\n        return self.value.readBytes();\r\n    }\r\n\r\n    function fetchBytes4(DataResult memory self)\r\n        internal pure \r\n        _checkDataType(self, RadonDataTypes.Bytes) \r\n        returns (bytes4)\r\n    {\r\n        return toBytes4(self.value.readBytes());\r\n    }\r\n\r\n    function fetchBytes32(DataResult memory self)\r\n        internal pure \r\n        _checkDataType(self, RadonDataTypes.Bytes) \r\n        returns (bytes32)\r\n    {\r\n        return toBytes32(self.value.readBytes());\r\n    }\r\n\r\n    function fetchCborArray(DataResult memory self)\r\n        internal pure \r\n        _checkDataType(self, RadonDataTypes.Array) \r\n        returns (WitnetCBOR.CBOR[] memory)\r\n    {\r\n        return self.value.readArray();\r\n    }\r\n\r\n    /// @dev Decode a fixed16 (half-precision) numeric value from the Result's CBOR value.\r\n    /// @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values.\r\n    /// by 5 decimal orders so as to get a fixed precision of 5 decimal positions, which should be OK for most `fixed16`.\r\n    /// use cases. In other words, the output of this method is 10,000 times the actual value, encoded into an `int32`.\r\n    function fetchFloatFixed16(DataResult memory self)\r\n        internal pure \r\n        _checkDataType(self, RadonDataTypes.Float) \r\n        returns (int32)\r\n    {\r\n        return self.value.readFloat16();\r\n    }\r\n\r\n    /// @dev Decode an array of fixed16 values from the Result's CBOR value.\r\n    function fetchFloatFixed16Array(DataResult memory self)\r\n        internal pure\r\n        _checkDataType(self, RadonDataTypes.Array)\r\n        returns (int32[] memory)\r\n    {\r\n        return self.value.readFloat16Array();\r\n    }\r\n\r\n    /// @dev Decode a `int64` value from the DataResult's CBOR value.\r\n    function fetchInt(DataResult memory self)\r\n        internal pure\r\n        _checkDataType(self, RadonDataTypes.Integer)\r\n        returns (int64)\r\n    {\r\n        return self.value.readInt();\r\n    }\r\n\r\n    function fetchInt64Array(DataResult memory self)\r\n        internal pure\r\n        _checkDataType(self, RadonDataTypes.Array)\r\n        returns (int64[] memory)\r\n    {\r\n        return self.value.readIntArray();\r\n    }\r\n\r\n    function fetchString(DataResult memory self)\r\n        internal pure\r\n        _checkDataType(self, RadonDataTypes.String)\r\n        returns (string memory)\r\n    {\r\n        return self.value.readString();\r\n    }\r\n\r\n    function fetchStringArray(DataResult memory self)\r\n        internal pure\r\n        _checkDataType(self, RadonDataTypes.Array)\r\n        returns (string[] memory)\r\n    {\r\n        return self.value.readStringArray();\r\n    }\r\n\r\n    /// @dev Decode a `uint64` value from the DataResult's CBOR value.\r\n    function fetchUint(DataResult memory self)\r\n        internal pure\r\n        _checkDataType(self, RadonDataTypes.Integer)\r\n        returns (uint64)\r\n    {\r\n        return self.value.readUint();\r\n    }\r\n\r\n    function fetchUint64Array(DataResult memory self)\r\n        internal pure\r\n        _checkDataType(self, RadonDataTypes.Array)\r\n        returns (uint64[] memory)\r\n    {\r\n        return self.value.readUintArray();\r\n    }\r\n\r\n    bytes7 private constant _CBOR_MAJOR_TYPE_TO_RADON_DATA_TYPES_MAP = 0x04040307010600;\r\n    function peekRadonDataType(WitnetCBOR.CBOR memory cbor) internal pure returns (RadonDataTypes _type) {\r\n        _type = RadonDataTypes.Any;\r\n        if (!cbor.eof()) {\r\n            if (cbor.majorType <= 6) {\r\n                return RadonDataTypes(uint8(bytes1(_CBOR_MAJOR_TYPE_TO_RADON_DATA_TYPES_MAP[cbor.majorType])));\r\n            \r\n            } else if (cbor.majorType == 7) {\r\n                if (cbor.additionalInformation == 20 || cbor.additionalInformation == 21) {\r\n                    return RadonDataTypes.Bool;\r\n                \r\n                } else if (cbor.additionalInformation >= 25 && cbor.additionalInformation <= 27) {\r\n                    return RadonDataTypes.Float;\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n\r\n    /// =======================================================================\r\n    /// --- FastForward helper functions --------------------------------------\r\n\r\n    function head(FastForward[] calldata rollup)\r\n        internal pure returns (Beacon calldata)\r\n    {\r\n        return rollup[rollup.length - 1].beacon;\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- Query* helper methods -------------------------------------------------------------------------------------\r\n\r\n    function equalOrGreaterThan(QuerySLA calldata self, QuerySLA storage stored) internal view returns (bool) {\r\n        return (\r\n                self.witCommitteeSize >= stored.witCommitteeSize\r\n                && self.witUnitaryReward >= stored.witUnitaryReward \r\n                && self.witResultMaxSize <= stored.witResultMaxSize\r\n        );\r\n    }\r\n\r\n    function hashify(QueryUUID hash) internal pure returns (bytes32) {\r\n        return keccak256(abi.encode(QueryUUID.unwrap(hash)));\r\n    }\r\n\r\n    function hashify(QueryId _queryId, Witnet.RadonHash _radHash, bytes32 _slaHash) internal view returns (Witnet.QueryUUID) {\r\n        return Witnet.QueryUUID.wrap(bytes15(\r\n            keccak256(abi.encode(\r\n                channel(address(this)), \r\n                blockhash(block.number - 1),\r\n                _queryId, Witnet.RadonHash.unwrap(_radHash), _slaHash\r\n            ))\r\n        ));\r\n    }\r\n\r\n    function hashify(QuerySLA memory querySLA) internal pure returns (bytes32) {\r\n        return keccak256(abi.encodePacked(\r\n            querySLA.witResultMaxSize,\r\n            querySLA.witCommitteeSize,\r\n            querySLA.witUnitaryReward\r\n        ));\r\n    }\r\n\r\n    function isValid(QuerySLA memory self) internal pure returns (bool) {\r\n        return (\r\n            self.witResultMaxSize >= 0\r\n                && self.witCommitteeSize > 0\r\n                && self.witCommitteeSize <= 127\r\n                && self.witUnitaryReward > 0\r\n        );\r\n    }\r\n\r\n    function isZero(QueryId a) internal pure returns (bool) {\r\n        return (QueryId.unwrap(a) == 0);\r\n    }\r\n\r\n    function toV1(QuerySLA calldata self) internal pure returns (RadonSLAv1 memory) {\r\n        return RadonSLAv1({\r\n            numWitnesses: uint8(self.witCommitteeSize),\r\n            minConsensusPercentage: 51,\r\n            witnessReward: self.witUnitaryReward,\r\n            witnessCollateral: self.witUnitaryReward * self.witCommitteeSize,\r\n            minerCommitRevealFee: self.witUnitaryReward / self.witCommitteeSize\r\n        });\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- RadonHash helper methods ----------------------------------------------------------------------------------\r\n\r\n    function eq(RadonHash a, RadonHash b) internal pure returns (bool) {\r\n        return RadonHash.unwrap(a) == RadonHash.unwrap(b);\r\n    }\r\n    \r\n    function isZero(RadonHash h) internal pure returns (bool) {\r\n        return RadonHash.unwrap(h) == bytes32(0);\r\n    }\r\n\r\n    \r\n    /// ===============================================================================================================\r\n    /// --- ResultStatus helper methods -------------------------------------------------------------------------------\r\n\r\n    function hasErrors(ResultStatus self) internal pure returns (bool) {\r\n        return (\r\n            self != ResultStatus.NoErrors\r\n                && !keepWaiting(self)\r\n        );\r\n    }\r\n\r\n    function isCircumstantial(ResultStatus self) internal pure returns (bool) {\r\n        return (self == ResultStatus.CircumstantialFailure);\r\n    }\r\n\r\n    function isRetriable(ResultStatus self) internal pure returns (bool) {\r\n        return (\r\n            lackOfConsensus(self)\r\n                || isCircumstantial(self)\r\n                || poorIncentives(self)\r\n        );\r\n    }\r\n\r\n    function keepWaiting(ResultStatus self) internal pure returns (bool) {\r\n        return (\r\n            self == ResultStatus.BoardAwaitingResult\r\n                || self == ResultStatus.BoardFinalizingResult\r\n        );\r\n    }\r\n\r\n    function lackOfConsensus(ResultStatus self) internal pure returns (bool) {\r\n        return (\r\n            self == ResultStatus.InsufficientCommits\r\n                || self == ResultStatus.InsufficientMajority\r\n                || self == ResultStatus.InsufficientReveals\r\n        );\r\n    }\r\n\r\n    function poorIncentives(ResultStatus self) internal pure returns (bool) {\r\n        return (\r\n            self == ResultStatus.OversizedTallyResult\r\n                || self == ResultStatus.InsufficientCommits\r\n                || self == ResultStatus.BridgePoorIncentives\r\n                || self == ResultStatus.BridgeOversizedTallyResult\r\n        );\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- Timestamp helper methods ----------------------------------------------------------------------------------\r\n\r\n    function gt(Timestamp a, Timestamp b) internal pure returns (bool) {\r\n        return Timestamp.unwrap(a) > Timestamp.unwrap(b);\r\n    }\r\n\r\n    function egt(Timestamp a, Timestamp b) internal pure returns (bool) {\r\n        return Timestamp.unwrap(a) >= Timestamp.unwrap(b);\r\n    }\r\n\r\n    function elt(Timestamp a, Timestamp b) internal pure returns (bool) {\r\n        return Timestamp.unwrap(a) <= Timestamp.unwrap(b);\r\n    }\r\n\r\n    function isZero(Timestamp t) internal pure returns (bool) {\r\n        return Timestamp.unwrap(t) == 0;\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- 'bytes*' helper methods -----------------------------------------------------------------------------------\r\n\r\n    function intoMemArray(bytes32[1] memory _values) internal pure returns (bytes32[] memory) {\r\n        return abi.decode(abi.encode(uint256(32), 1, _values), (bytes32[]));\r\n    }\r\n\r\n    function intoMemArray(bytes32[2] memory _values) internal pure returns (bytes32[] memory) {\r\n        return abi.decode(abi.encode(uint256(32), 2, _values), (bytes32[]));\r\n    }\r\n\r\n    function intoMemArray(bytes32[3] memory _values) internal pure returns (bytes32[] memory) {\r\n        return abi.decode(abi.encode(uint256(32), 3, _values), (bytes32[]));\r\n    }\r\n\r\n    function intoMemArray(bytes32[4] memory _values) internal pure returns (bytes32[] memory) {\r\n        return abi.decode(abi.encode(uint256(32), 4, _values), (bytes32[]));\r\n    }\r\n\r\n    function intoMemArray(bytes32[5] memory _values) internal pure returns (bytes32[] memory) {\r\n        return abi.decode(abi.encode(uint256(32), 5, _values), (bytes32[]));\r\n    }\r\n\r\n    function intoMemArray(bytes32[6] memory _values) internal pure returns (bytes32[] memory) {\r\n        return abi.decode(abi.encode(uint256(32), 6, _values), (bytes32[]));\r\n    }\r\n\r\n    function intoMemArray(bytes32[7] memory _values) internal pure returns (bytes32[] memory) {\r\n        return abi.decode(abi.encode(uint256(32), 7, _values), (bytes32[]));\r\n    }\r\n\r\n    function intoMemArray(bytes32[8] memory _values) internal pure returns (bytes32[] memory) {\r\n        return abi.decode(abi.encode(uint256(32), 8, _values), (bytes32[]));\r\n    }\r\n    \r\n    function merkleHash(bytes32 a, bytes32 b) internal pure returns (bytes32) {\r\n        return (a < b\r\n            ? _merkleHash(a, b)\r\n            : _merkleHash(b, a)\r\n        );\r\n    }\r\n\r\n    function merkleRoot(bytes32[] calldata proof, bytes32 leaf) internal pure returns (bytes32 _root) {\r\n        _root = leaf;\r\n        for (uint _ix = 0; _ix < proof.length; _ix ++) {\r\n            _root = merkleHash(_root, proof[_ix]);\r\n        }\r\n    }\r\n\r\n    function radHash(bytes calldata bytecode) internal pure returns (Witnet.RadonHash) {\r\n        return Witnet.RadonHash.wrap(keccak256(bytecode));\r\n    }\r\n\r\n    function recoverEvmAddr(bytes memory signature, bytes32 hash_)\r\n        internal pure \r\n        returns (address)\r\n    {\r\n        if (signature.length != 65) {\r\n            return (address(0));\r\n        }\r\n        bytes32 r;\r\n        bytes32 s;\r\n        uint8 v;\r\n        assembly {\r\n            r := mload(add(signature, 0x20))\r\n            s := mload(add(signature, 0x40))\r\n            v := byte(0, mload(add(signature, 0x60)))\r\n        }\r\n        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\r\n            return address(0);\r\n        }\r\n        if (v != 27 && v != 28) {\r\n            return address(0);\r\n        }\r\n        return ecrecover(hash_, v, r, s);\r\n    }\r\n\r\n    function verifyWitAddressAuthorization(\r\n            address evmAuthorized, \r\n            Address witSigner,\r\n            bytes memory witSignature\r\n        )\r\n        internal pure\r\n        returns (bool)\r\n    {\r\n        bytes32 _publicKeyX = recoverWitPublicKey(keccak256(abi.encodePacked(evmAuthorized)), witSignature);\r\n        bytes20 _witSigner = Address.unwrap(witSigner);\r\n        return (\r\n            _witSigner == bytes20(sha256(abi.encodePacked(bytes1(0x00), _publicKeyX)))\r\n                || _witSigner == bytes20(sha256(abi.encodePacked(bytes1(0x01), _publicKeyX)))\r\n                || _witSigner == bytes20(sha256(abi.encodePacked(bytes1(0x02), _publicKeyX)))\r\n                || _witSigner == bytes20(sha256(abi.encodePacked(bytes1(0x03), _publicKeyX)))\r\n        );\r\n    }\r\n\r\n    function recoverWitPublicKey(bytes32 evmDigest, bytes memory witSignature)\r\n        internal pure\r\n        returns (bytes32 _witPublicKey)\r\n    {\r\n        if (witSignature.length == 65) {\r\n            bytes32 r;\r\n            bytes32 s;\r\n            uint8 v;\r\n            assembly {\r\n                r := mload(add(witSignature, 0x20))\r\n                s := mload(add(witSignature, 0x40))\r\n                v := byte(0, mload(add(witSignature, 0x60)))\r\n            }\r\n            if (\r\n                uint256(s) <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0\r\n                    && (v == 27 || v == 28)\r\n            ) {\r\n                (uint256 x,) = Secp256k1.recover(uint256(evmDigest), v - 27, uint256(r), uint256(s));\r\n                _witPublicKey = bytes32(x);\r\n            }\r\n        }\r\n    }\r\n\r\n    function toAddress(bytes memory _value) internal pure returns (address) {\r\n        return address(toBytes20(_value));\r\n    }\r\n\r\n    function toBytes4(bytes memory _value) internal pure returns (bytes4) {\r\n        return bytes4(toFixedBytes(_value, 4));\r\n    }\r\n    \r\n    function toBytes20(bytes memory _value) internal pure returns (bytes20) {\r\n        return bytes20(toFixedBytes(_value, 20));\r\n    }\r\n    \r\n    function toBytes32(bytes memory _value) internal pure returns (bytes32) {\r\n        return toFixedBytes(_value, 32);\r\n    }\r\n\r\n    function toFixedBytes(bytes memory _value, uint8 _numBytes)\r\n        internal pure\r\n        returns (bytes32 _bytes32)\r\n    {\r\n        assert(_numBytes <= 32);\r\n        unchecked {\r\n            uint _len = _value.length > _numBytes ? _numBytes : _value.length;\r\n            for (uint _i = 0; _i < _len; _i ++) {\r\n                _bytes32 |= bytes32(_value[_i] & 0xff) >> (_i * 8);\r\n            }\r\n        }\r\n    }\r\n    \r\n    /// @notice Converts bytes32 into string.\r\n    function asAscii(bytes32 _bytes32)\r\n        internal pure\r\n        returns (string memory)\r\n    {\r\n        bytes memory _bytes = new bytes(_toStringLength(_bytes32));\r\n        for (uint _i = 0; _i < _bytes.length;) {\r\n            _bytes[_i] = _bytes32[_i];\r\n            unchecked {\r\n                _i ++;\r\n            }\r\n        }\r\n        return string(_bytes);\r\n    }\r\n\r\n    function toHexString(bytes32 _bytes32) \r\n        internal pure\r\n        returns (string memory)\r\n    {\r\n        bytes memory _bytes = new bytes(64);\r\n        for (uint8 _i; _i < _bytes.length;) {\r\n            _bytes[_i ++] = _toHexChar(uint8(_bytes32[_i / 2] >> 4));\r\n            _bytes[_i ++] = _toHexChar(uint8(_bytes32[_i / 2] & 0x0f));\r\n        }\r\n        return string(_bytes);\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- 'string' helper methods -----------------------------------------------------------------------------------\r\n\r\n    function toLowerCase(string memory str)\r\n        internal pure\r\n        returns (string memory)\r\n    {\r\n        bytes memory lowered = new bytes(bytes(str).length);\r\n        unchecked {\r\n            for (uint i = 0; i < lowered.length; i ++) {\r\n                uint8 char = uint8(bytes(str)[i]);\r\n                if (char >= 65 && char <= 90) {\r\n                    lowered[i] = bytes1(char + 32);\r\n                } else {\r\n                    lowered[i] = bytes1(char);\r\n                }\r\n            }\r\n        }\r\n        return string(lowered);\r\n    }\r\n\r\n    // Function to parse a hex string into a byte array\r\n    function parseHexString(string memory hexString) internal pure returns (bytes memory result) {\r\n        unchecked {\r\n            result = new bytes(bytes(hexString).length / 2);\r\n            for (uint256 i; i < result.length; i ++) {\r\n                uint8 byte1 = _hexCharToByte(uint8(bytes(hexString)[2 * i]));\r\n                uint8 byte2 = _hexCharToByte(uint8(bytes(hexString)[2 * i + 1]));\r\n                result[i] = bytes1(byte1 * 16 + byte2); // Combining the two hex digits into one byte\r\n            }\r\n        }\r\n    }\r\n\r\n    function tryUint(string memory str)\r\n        internal pure\r\n        returns (uint res, bool)\r\n    {\r\n        unchecked {\r\n            for (uint256 i = 0; i < bytes(str).length; i++) {\r\n                if (\r\n                    (uint8(bytes(str)[i]) - 48) < 0\r\n                        || (uint8(bytes(str)[i]) - 48) > 9\r\n                ) {\r\n                    return (0, false);\r\n                }\r\n                res += (uint8(bytes(str)[i]) - 48) * 10 ** (bytes(str).length - i - 1);\r\n            }\r\n            return (res, true);\r\n        }\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- 'uint*' helper methods ------------------------------------------------------------------------------------\r\n\r\n    function determineBeaconIndexFromEpoch(BlockNumber epoch) internal pure returns (uint64) {\r\n        return BlockNumber.unwrap(epoch) / 10;\r\n    }\r\n    \r\n    function determineBeaconIndexFromTimestamp(Timestamp timestamp) internal pure returns (uint64) {\r\n        return determineBeaconIndexFromEpoch(\r\n            determineEpochFromTimestamp(\r\n                timestamp\r\n            )\r\n        );\r\n    }\r\n\r\n    function determineEpochFromTimestamp(Timestamp timestamp) internal pure returns (BlockNumber) {\r\n        if (Timestamp.unwrap(timestamp) > WIT_2_GENESIS_TIMESTAMP) {\r\n            return BlockNumber.wrap(\r\n                WIT_2_GENESIS_EPOCH\r\n                    + (Timestamp.unwrap(timestamp) - WIT_2_GENESIS_TIMESTAMP)\r\n                        / WIT_2_SECS_PER_EPOCH\r\n            );\r\n        } else if (Timestamp.unwrap(timestamp) > WIT_1_GENESIS_TIMESTAMP) {\r\n            return BlockNumber.wrap(\r\n                (Timestamp.unwrap(timestamp) - WIT_1_GENESIS_TIMESTAMP)\r\n                    / WIT_1_SECS_PER_EPOCH\r\n            );\r\n        } else {\r\n            return BlockNumber.wrap(0);\r\n        }\r\n    }\r\n\r\n    function determineTimestampFromEpoch(BlockNumber epoch) internal pure returns (Timestamp) {\r\n        if (BlockNumber.unwrap(epoch) >= WIT_2_GENESIS_EPOCH) {\r\n            return Timestamp.wrap(\r\n                WIT_2_GENESIS_TIMESTAMP\r\n                    + (WIT_2_SECS_PER_EPOCH * (\r\n                        BlockNumber.unwrap(epoch)\r\n                            - WIT_2_GENESIS_EPOCH)\r\n                    )\r\n            );\r\n        } else return Timestamp.wrap(\r\n            WIT_1_GENESIS_TIMESTAMP\r\n                + (WIT_1_SECS_PER_EPOCH * BlockNumber.unwrap(epoch))\r\n        );\r\n    }\r\n\r\n    /// Generates a pseudo-random uint32 number uniformly distributed within the range `[0 .. range)`, based on\r\n    /// the given `nonce` and `seed` values. \r\n    function randomUniformUint64(uint64 range, uint256 nonce, bytes32 seed)\r\n        internal pure \r\n        returns (uint64) \r\n    {\r\n        uint256 _number = uint256(\r\n            keccak256(\r\n                abi.encode(seed, nonce)\r\n            )\r\n        ) & uint256(2 ** 192 - 1);\r\n        return uint64((_number * range) >> 192);\r\n    }\r\n\r\n    /// @notice Convert a `uint8` into a 2 characters long `string` representing its two less significant hexadecimal values.\r\n    function toHexString(uint8 _u)\r\n        internal pure\r\n        returns (string memory)\r\n    {\r\n        bytes memory b2 = new bytes(2);\r\n        uint8 d0 = uint8(_u / 16) + 48;\r\n        uint8 d1 = uint8(_u % 16) + 48;\r\n        if (d0 > 57)\r\n            d0 += 7;\r\n        if (d1 > 57)\r\n            d1 += 7;\r\n        b2[0] = bytes1(d0);\r\n        b2[1] = bytes1(d1);\r\n        return string(b2);\r\n    }\r\n\r\n    /// @notice Convert a `uint8` into a 1, 2 or 3 characters long `string` representing its.\r\n    /// three less significant decimal values.\r\n    function toString(uint8 _u)\r\n        internal pure\r\n        returns (string memory)\r\n    {\r\n        if (_u < 10) {\r\n            bytes memory b1 = new bytes(1);\r\n            b1[0] = bytes1(uint8(_u) + 48);\r\n            return string(b1);\r\n        } else if (_u < 100) {\r\n            bytes memory b2 = new bytes(2);\r\n            b2[0] = bytes1(uint8(_u / 10) + 48);\r\n            b2[1] = bytes1(uint8(_u % 10) + 48);\r\n            return string(b2);\r\n        } else {\r\n            bytes memory b3 = new bytes(3);\r\n            b3[0] = bytes1(uint8(_u / 100) + 48);\r\n            b3[1] = bytes1(uint8(_u % 100 / 10) + 48);\r\n            b3[2] = bytes1(uint8(_u % 10) + 48);\r\n            return string(b3);\r\n        }\r\n    }\r\n\r\n    /// @notice Convert a `uint` into a string` representing its value.\r\n    function toString(uint v)\r\n        internal pure \r\n        returns (string memory)\r\n    {\r\n        uint maxlength = 100;\r\n        bytes memory reversed = new bytes(maxlength);\r\n        uint i = 0;\r\n        do {\r\n            uint8 remainder = uint8(v % 10);\r\n            v = v / 10;\r\n            reversed[i ++] = bytes1(48 + remainder);\r\n        } while (v != 0);\r\n        bytes memory buf = new bytes(i);\r\n        for (uint j = 1; j <= i; j ++) {\r\n            buf[j - 1] = reversed[i - j];\r\n        }\r\n        return string(buf);\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- Witnet library private methods ----------------------------------------------------------------------------\r\n\r\n    function _hexCharToByte(uint8 hexChar) private pure returns (uint8) {\r\n        if (hexChar >= 0x30 && hexChar <= 0x39) {\r\n            return hexChar - 0x30; // '0'-'9' to 0-9\r\n        } else if (hexChar >= 0x41 && hexChar <= 0x46) {\r\n            return hexChar - 0x41 + 10; // 'A'-'F' to 10-15\r\n        } else if (hexChar >= 0x61 && hexChar <= 0x66) {\r\n            return hexChar - 0x61 + 10; // 'a'-'f' to 10-15\r\n        } else {\r\n            revert(\"Invalid hex character\");\r\n        }\r\n    }\r\n\r\n    function _merkleHash(bytes32 _a, bytes32 _b) private pure returns (bytes32 _hash) {\r\n        assembly {\r\n            mstore(0x0, _a)\r\n            mstore(0x20, _b)\r\n            _hash := keccak256(0x0, 0x40)\r\n        }\r\n    }\r\n\r\n    function _toHexChar(uint8 _uint8) private pure returns (bytes1) {\r\n        return _uint8 < 10 ? bytes1(_uint8 + 48) : bytes1(_uint8 + 87);\r\n    }\r\n\r\n    /// @dev Calculate length of string-equivalent to given bytes32.\r\n    function _toStringLength(bytes32 _bytes32)\r\n        private pure\r\n        returns (uint _length)\r\n    {\r\n        for (; _length < 32; ) {\r\n            if (_bytes32[_length] == 0) {\r\n                break;\r\n            }\r\n            unchecked {\r\n                _length ++;\r\n            }\r\n        }\r\n    }\r\n}\r\n",
  "sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\libs\\Witnet.sol",
  "ast": {
    "absolutePath": "project:/contracts/libs/Witnet.sol",
    "exportedSymbols": {
      "Bech32": [
        31372
      ],
      "Secp256k1": [
        32535
      ],
      "Witnet": [
        40741
      ],
      "WitnetBuffer": [
        42631
      ],
      "WitnetCBOR": [
        44174
      ]
    },
    "id": 40742,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 37121,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:116"
      },
      {
        "absolutePath": "project:/contracts/libs/Bech32.sol",
        "file": "./Bech32.sol",
        "id": 37122,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 40742,
        "sourceUnit": 31373,
        "src": "70:22:116",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/libs/Secp256k1.sol",
        "file": "./Secp256k1.sol",
        "id": 37123,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 40742,
        "sourceUnit": 32536,
        "src": "94:25:116",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/libs/WitnetCBOR.sol",
        "file": "./WitnetCBOR.sol",
        "id": 37124,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 40742,
        "sourceUnit": 44175,
        "src": "121:26:116",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "Witnet",
        "contractDependencies": [],
        "contractKind": "library",
        "fullyImplemented": true,
        "id": 40741,
        "linearizedBaseContracts": [
          40741
        ],
        "name": "Witnet",
        "nameLocation": "159:6:116",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 37128,
            "libraryName": {
              "id": 37125,
              "name": "Bech32",
              "nameLocations": [
                "181:6:116"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 31372,
              "src": "181:6:116"
            },
            "nodeType": "UsingForDirective",
            "src": "175:32:116",
            "typeName": {
              "id": 37127,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 37126,
                "name": "Witnet.Address",
                "nameLocations": [
                  "192:6:116",
                  "199:7:116"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 37143,
                "src": "192:14:116"
              },
              "referencedDeclaration": 37143,
              "src": "192:14:116",
              "typeDescriptions": {
                "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                "typeString": "Witnet.Address"
              }
            }
          },
          {
            "global": false,
            "id": 37132,
            "libraryName": {
              "id": 37129,
              "name": "WitnetBuffer",
              "nameLocations": [
                "219:12:116"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 42631,
              "src": "219:12:116"
            },
            "nodeType": "UsingForDirective",
            "src": "213:43:116",
            "typeName": {
              "id": 37131,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 37130,
                "name": "WitnetBuffer.Buffer",
                "nameLocations": [
                  "236:12:116",
                  "249:6:116"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 40764,
                "src": "236:19:116"
              },
              "referencedDeclaration": 40764,
              "src": "236:19:116",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Buffer_$40764_storage_ptr",
                "typeString": "struct WitnetBuffer.Buffer"
              }
            }
          },
          {
            "global": false,
            "id": 37136,
            "libraryName": {
              "id": 37133,
              "name": "WitnetCBOR",
              "nameLocations": [
                "268:10:116"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 44174,
              "src": "268:10:116"
            },
            "nodeType": "UsingForDirective",
            "src": "262:37:116",
            "typeName": {
              "id": 37135,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 37134,
                "name": "WitnetCBOR.CBOR",
                "nameLocations": [
                  "283:10:116",
                  "294:4:116"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 42658,
                "src": "283:15:116"
              },
              "referencedDeclaration": 42658,
              "src": "283:15:116",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                "typeString": "struct WitnetCBOR.CBOR"
              }
            }
          },
          {
            "global": false,
            "id": 37141,
            "libraryName": {
              "id": 37137,
              "name": "WitnetCBOR",
              "nameLocations": [
                "311:10:116"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 44174,
              "src": "311:10:116"
            },
            "nodeType": "UsingForDirective",
            "src": "305:39:116",
            "typeName": {
              "baseType": {
                "id": 37139,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 37138,
                  "name": "WitnetCBOR.CBOR",
                  "nameLocations": [
                    "326:10:116",
                    "337:4:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42658,
                  "src": "326:15:116"
                },
                "referencedDeclaration": 42658,
                "src": "326:15:116",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                  "typeString": "struct WitnetCBOR.CBOR"
                }
              },
              "id": 37140,
              "nodeType": "ArrayTypeName",
              "src": "326:17:116",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_storage_$dyn_storage_ptr",
                "typeString": "struct WitnetCBOR.CBOR[]"
              }
            }
          },
          {
            "canonicalName": "Witnet.Address",
            "id": 37143,
            "name": "Address",
            "nameLocation": "357:7:116",
            "nodeType": "UserDefinedValueTypeDefinition",
            "src": "352:24:116",
            "underlyingType": {
              "id": 37142,
              "name": "bytes20",
              "nodeType": "ElementaryTypeName",
              "src": "368:7:116",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes20",
                "typeString": "bytes20"
              }
            }
          },
          {
            "canonicalName": "Witnet.BlockNumber",
            "id": 37145,
            "name": "BlockNumber",
            "nameLocation": "389:11:116",
            "nodeType": "UserDefinedValueTypeDefinition",
            "src": "384:27:116",
            "underlyingType": {
              "id": 37144,
              "name": "uint64",
              "nodeType": "ElementaryTypeName",
              "src": "404:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint64",
                "typeString": "uint64"
              }
            }
          },
          {
            "canonicalName": "Witnet.QueryEvmReward",
            "id": 37147,
            "name": "QueryEvmReward",
            "nameLocation": "428:14:116",
            "nodeType": "UserDefinedValueTypeDefinition",
            "src": "423:30:116",
            "underlyingType": {
              "id": 37146,
              "name": "uint72",
              "nodeType": "ElementaryTypeName",
              "src": "446:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint72",
                "typeString": "uint72"
              }
            }
          },
          {
            "canonicalName": "Witnet.QueryUUID",
            "id": 37149,
            "name": "QueryUUID",
            "nameLocation": "464:9:116",
            "nodeType": "UserDefinedValueTypeDefinition",
            "src": "459:26:116",
            "underlyingType": {
              "id": 37148,
              "name": "bytes15",
              "nodeType": "ElementaryTypeName",
              "src": "477:7:116",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes15",
                "typeString": "bytes15"
              }
            }
          },
          {
            "canonicalName": "Witnet.QueryId",
            "id": 37151,
            "name": "QueryId",
            "nameLocation": "496:7:116",
            "nodeType": "UserDefinedValueTypeDefinition",
            "src": "491:23:116",
            "underlyingType": {
              "id": 37150,
              "name": "uint64",
              "nodeType": "ElementaryTypeName",
              "src": "507:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint64",
                "typeString": "uint64"
              }
            }
          },
          {
            "canonicalName": "Witnet.RadonHash",
            "id": 37153,
            "name": "RadonHash",
            "nameLocation": "527:9:116",
            "nodeType": "UserDefinedValueTypeDefinition",
            "src": "522:26:116",
            "underlyingType": {
              "id": 37152,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "540:7:116",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            }
          },
          {
            "canonicalName": "Witnet.ServiceProvider",
            "id": 37155,
            "name": "ServiceProvider",
            "nameLocation": "559:15:116",
            "nodeType": "UserDefinedValueTypeDefinition",
            "src": "554:32:116",
            "underlyingType": {
              "id": 37154,
              "name": "bytes20",
              "nodeType": "ElementaryTypeName",
              "src": "578:7:116",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes20",
                "typeString": "bytes20"
              }
            }
          },
          {
            "canonicalName": "Witnet.Timestamp",
            "id": 37157,
            "name": "Timestamp",
            "nameLocation": "603:9:116",
            "nodeType": "UserDefinedValueTypeDefinition",
            "src": "598:25:116",
            "underlyingType": {
              "id": 37156,
              "name": "uint64",
              "nodeType": "ElementaryTypeName",
              "src": "616:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint64",
                "typeString": "uint64"
              }
            }
          },
          {
            "canonicalName": "Witnet.TransactionHash",
            "id": 37159,
            "name": "TransactionHash",
            "nameLocation": "634:15:116",
            "nodeType": "UserDefinedValueTypeDefinition",
            "src": "629:32:116",
            "underlyingType": {
              "id": 37158,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "653:7:116",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            }
          },
          {
            "constant": true,
            "id": 37162,
            "mutability": "constant",
            "name": "WIT_1_GENESIS_TIMESTAMP",
            "nameLocation": "695:23:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "669:53:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 37160,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "669:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 37161,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "721:1:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37165,
            "mutability": "constant",
            "name": "WIT_1_SECS_PER_EPOCH",
            "nameLocation": "766:20:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "740:51:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 37163,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "740:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "hexValue": "3435",
              "id": 37164,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "789:2:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_45_by_1",
                "typeString": "int_const 45"
              },
              "value": "45"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37168,
            "mutability": "constant",
            "name": "WIT_2_GENESIS_BEACON_INDEX",
            "nameLocation": "826:26:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "800:56:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 37166,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "800:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 37167,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "855:1:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37171,
            "mutability": "constant",
            "name": "WIT_2_GENESIS_BEACON_PREV_INDEX",
            "nameLocation": "902:31:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "876:61:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 37169,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "876:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 37170,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "936:1:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37174,
            "mutability": "constant",
            "name": "WIT_2_GENESIS_BEACON_PREV_ROOT",
            "nameLocation": "978:30:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "952:60:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes24",
              "typeString": "bytes24"
            },
            "typeName": {
              "id": 37172,
              "name": "bytes24",
              "nodeType": "ElementaryTypeName",
              "src": "952:7:116",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes24",
                "typeString": "bytes24"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 37173,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1011:1:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37177,
            "mutability": "constant",
            "name": "WIT_2_GENESIS_BEACON_DDR_TALLIES_MERKLE_ROOT",
            "nameLocation": "1054:44:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "1028:74:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes16",
              "typeString": "bytes16"
            },
            "typeName": {
              "id": 37175,
              "name": "bytes16",
              "nodeType": "ElementaryTypeName",
              "src": "1028:7:116",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes16",
                "typeString": "bytes16"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 37176,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1101:1:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37180,
            "mutability": "constant",
            "name": "WIT_2_GENESIS_BEACON_DRO_TALLIES_MERKLE_ROOT",
            "nameLocation": "1143:44:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "1117:74:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes16",
              "typeString": "bytes16"
            },
            "typeName": {
              "id": 37178,
              "name": "bytes16",
              "nodeType": "ElementaryTypeName",
              "src": "1117:7:116",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes16",
                "typeString": "bytes16"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 37179,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1190:1:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37183,
            "mutability": "constant",
            "name": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_0",
            "nameLocation": "1232:48:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "1206:78:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 37181,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1206:7:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 37182,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1283:1:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37186,
            "mutability": "constant",
            "name": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_1",
            "nameLocation": "1324:48:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "1298:78:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 37184,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1298:7:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 37185,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1375:1:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37189,
            "mutability": "constant",
            "name": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_2",
            "nameLocation": "1416:48:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "1390:78:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 37187,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1390:7:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 37188,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1467:1:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37192,
            "mutability": "constant",
            "name": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_3",
            "nameLocation": "1508:48:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "1482:78:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 37190,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1482:7:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 37191,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1559:1:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37195,
            "mutability": "constant",
            "name": "WIT_2_GENESIS_EPOCH",
            "nameLocation": "1600:19:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "1574:49:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 37193,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "1574:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 37194,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1622:1:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37198,
            "mutability": "constant",
            "name": "WIT_2_GENESIS_TIMESTAMP",
            "nameLocation": "1668:23:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "1642:53:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 37196,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "1642:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 37197,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1694:1:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37201,
            "mutability": "constant",
            "name": "WIT_2_SECS_PER_EPOCH",
            "nameLocation": "1736:20:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "1710:51:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 37199,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "1710:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "hexValue": "3230",
              "id": 37200,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1759:2:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_20_by_1",
                "typeString": "int_const 20"
              },
              "value": "20"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 37204,
            "mutability": "constant",
            "name": "WIT_2_FAST_FORWARD_COMMITTEE_SIZE",
            "nameLocation": "1804:33:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "1778:64:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 37202,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "1778:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "hexValue": "3634",
              "id": 37203,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1840:2:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_64_by_1",
                "typeString": "int_const 64"
              },
              "value": "64"
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 37226,
              "nodeType": "Block",
              "src": "1921:84:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 37218,
                                    "name": "wrb",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 37206,
                                    "src": "1975:3:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 37217,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1967:7:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": {
                                    "id": 37216,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1967:7:116",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 37219,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1967:12:116",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "expression": {
                                  "id": 37220,
                                  "name": "block",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967292,
                                  "src": "1981:5:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_block",
                                    "typeString": "block"
                                  }
                                },
                                "id": 37221,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "1987:7:116",
                                "memberName": "chainid",
                                "nodeType": "MemberAccess",
                                "src": "1981:13:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "id": 37214,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "1956:3:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 37215,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "1960:6:116",
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "src": "1956:10:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 37222,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1956:39:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 37213,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967288,
                          "src": "1946:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 37223,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1946:50:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 37212,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1939:6:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes4_$",
                        "typeString": "type(bytes4)"
                      },
                      "typeName": {
                        "id": 37211,
                        "name": "bytes4",
                        "nodeType": "ElementaryTypeName",
                        "src": "1939:6:116",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 37224,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1939:58:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 37210,
                  "id": 37225,
                  "nodeType": "Return",
                  "src": "1932:65:116"
                }
              ]
            },
            "id": 37227,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "channel",
            "nameLocation": "1869:7:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 37207,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37206,
                  "mutability": "mutable",
                  "name": "wrb",
                  "nameLocation": "1885:3:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 37227,
                  "src": "1877:11:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 37205,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1877:7:116",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1876:13:116"
            },
            "returnParameters": {
              "id": 37210,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37209,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 37227,
                  "src": "1913:6:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 37208,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1913:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1912:8:116"
            },
            "scope": 40741,
            "src": "1860:145:116",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "canonicalName": "Witnet.Beacon",
            "id": 37242,
            "members": [
              {
                "constant": false,
                "id": 37229,
                "mutability": "mutable",
                "name": "index",
                "nameLocation": "2046:5:116",
                "nodeType": "VariableDeclaration",
                "scope": 37242,
                "src": "2038:13:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 37228,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2038:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37231,
                "mutability": "mutable",
                "name": "prevIndex",
                "nameLocation": "2070:9:116",
                "nodeType": "VariableDeclaration",
                "scope": 37242,
                "src": "2062:17:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 37230,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2062:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37233,
                "mutability": "mutable",
                "name": "prevRoot",
                "nameLocation": "2098:8:116",
                "nodeType": "VariableDeclaration",
                "scope": 37242,
                "src": "2090:16:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes24",
                  "typeString": "bytes24"
                },
                "typeName": {
                  "id": 37232,
                  "name": "bytes24",
                  "nodeType": "ElementaryTypeName",
                  "src": "2090:7:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes24",
                    "typeString": "bytes24"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37235,
                "mutability": "mutable",
                "name": "ddrTalliesMerkleRoot",
                "nameLocation": "2125:20:116",
                "nodeType": "VariableDeclaration",
                "scope": 37242,
                "src": "2117:28:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes16",
                  "typeString": "bytes16"
                },
                "typeName": {
                  "id": 37234,
                  "name": "bytes16",
                  "nodeType": "ElementaryTypeName",
                  "src": "2117:7:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes16",
                    "typeString": "bytes16"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37237,
                "mutability": "mutable",
                "name": "droTalliesMerkleRoot",
                "nameLocation": "2164:20:116",
                "nodeType": "VariableDeclaration",
                "scope": 37242,
                "src": "2156:28:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes16",
                  "typeString": "bytes16"
                },
                "typeName": {
                  "id": 37236,
                  "name": "bytes16",
                  "nodeType": "ElementaryTypeName",
                  "src": "2156:7:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes16",
                    "typeString": "bytes16"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37241,
                "mutability": "mutable",
                "name": "nextCommitteeAggPubkey",
                "nameLocation": "2206:22:116",
                "nodeType": "VariableDeclaration",
                "scope": 37242,
                "src": "2195:33:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr",
                  "typeString": "uint256[4]"
                },
                "typeName": {
                  "baseType": {
                    "id": 37238,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2195:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 37240,
                  "length": {
                    "hexValue": "34",
                    "id": 37239,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2203:1:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_4_by_1",
                      "typeString": "int_const 4"
                    },
                    "value": "4"
                  },
                  "nodeType": "ArrayTypeName",
                  "src": "2195:10:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr",
                    "typeString": "uint256[4]"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Beacon",
            "nameLocation": "2020:6:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "2013:223:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.DataPullReport",
            "id": 37259,
            "members": [
              {
                "constant": false,
                "id": 37245,
                "mutability": "mutable",
                "name": "queryId",
                "nameLocation": "2285:7:116",
                "nodeType": "VariableDeclaration",
                "scope": 37259,
                "src": "2277:15:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                  "typeString": "Witnet.QueryId"
                },
                "typeName": {
                  "id": 37244,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37243,
                    "name": "QueryId",
                    "nameLocations": [
                      "2277:7:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37151,
                    "src": "2277:7:116"
                  },
                  "referencedDeclaration": 37151,
                  "src": "2277:7:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                    "typeString": "Witnet.QueryId"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37248,
                "mutability": "mutable",
                "name": "queryHash",
                "nameLocation": "2313:9:116",
                "nodeType": "VariableDeclaration",
                "scope": 37259,
                "src": "2303:19:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                  "typeString": "Witnet.QueryUUID"
                },
                "typeName": {
                  "id": 37247,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37246,
                    "name": "QueryUUID",
                    "nameLocations": [
                      "2303:9:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37149,
                    "src": "2303:9:116"
                  },
                  "referencedDeclaration": 37149,
                  "src": "2303:9:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                    "typeString": "Witnet.QueryUUID"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37250,
                "mutability": "mutable",
                "name": "witDrRelayerSignature",
                "nameLocation": "2407:21:116",
                "nodeType": "VariableDeclaration",
                "scope": 37259,
                "src": "2401:27:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 37249,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2401:5:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37253,
                "mutability": "mutable",
                "name": "witDrResultEpoch",
                "nameLocation": "2483:16:116",
                "nodeType": "VariableDeclaration",
                "scope": 37259,
                "src": "2471:28:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                  "typeString": "Witnet.BlockNumber"
                },
                "typeName": {
                  "id": 37252,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37251,
                    "name": "BlockNumber",
                    "nameLocations": [
                      "2471:11:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37145,
                    "src": "2471:11:116"
                  },
                  "referencedDeclaration": 37145,
                  "src": "2471:11:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37255,
                "mutability": "mutable",
                "name": "witDrResultCborBytes",
                "nameLocation": "2516:20:116",
                "nodeType": "VariableDeclaration",
                "scope": 37259,
                "src": "2510:26:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 37254,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2510:5:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37258,
                "mutability": "mutable",
                "name": "witDrTxHash",
                "nameLocation": "2563:11:116",
                "nodeType": "VariableDeclaration",
                "scope": 37259,
                "src": "2547:27:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                  "typeString": "Witnet.TransactionHash"
                },
                "typeName": {
                  "id": 37257,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37256,
                    "name": "TransactionHash",
                    "nameLocations": [
                      "2547:15:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37159,
                    "src": "2547:15:116"
                  },
                  "referencedDeclaration": 37159,
                  "src": "2547:15:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                    "typeString": "Witnet.TransactionHash"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "DataPullReport",
            "nameLocation": "2251:14:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "2244:338:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.DataPushReport",
            "id": 37274,
            "members": [
              {
                "constant": false,
                "id": 37262,
                "mutability": "mutable",
                "name": "witDrTxHash",
                "nameLocation": "2639:11:116",
                "nodeType": "VariableDeclaration",
                "scope": 37274,
                "src": "2623:27:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                  "typeString": "Witnet.TransactionHash"
                },
                "typeName": {
                  "id": 37261,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37260,
                    "name": "TransactionHash",
                    "nameLocations": [
                      "2623:15:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37159,
                    "src": "2623:15:116"
                  },
                  "referencedDeclaration": 37159,
                  "src": "2623:15:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                    "typeString": "Witnet.TransactionHash"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37265,
                "mutability": "mutable",
                "name": "queryRadHash",
                "nameLocation": "2671:12:116",
                "nodeType": "VariableDeclaration",
                "scope": 37274,
                "src": "2661:22:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                  "typeString": "Witnet.RadonHash"
                },
                "typeName": {
                  "id": 37264,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37263,
                    "name": "RadonHash",
                    "nameLocations": [
                      "2661:9:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37153,
                    "src": "2661:9:116"
                  },
                  "referencedDeclaration": 37153,
                  "src": "2661:9:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37268,
                "mutability": "mutable",
                "name": "queryParams",
                "nameLocation": "2704:11:116",
                "nodeType": "VariableDeclaration",
                "scope": 37274,
                "src": "2694:21:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                  "typeString": "struct Witnet.QuerySLA"
                },
                "typeName": {
                  "id": 37267,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37266,
                    "name": "QuerySLA",
                    "nameLocations": [
                      "2694:8:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37373,
                    "src": "2694:8:116"
                  },
                  "referencedDeclaration": 37373,
                  "src": "2694:8:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                    "typeString": "struct Witnet.QuerySLA"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37271,
                "mutability": "mutable",
                "name": "resultTimestamp",
                "nameLocation": "2736:15:116",
                "nodeType": "VariableDeclaration",
                "scope": 37274,
                "src": "2726:25:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                  "typeString": "Witnet.Timestamp"
                },
                "typeName": {
                  "id": 37270,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37269,
                    "name": "Timestamp",
                    "nameLocations": [
                      "2726:9:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37157,
                    "src": "2726:9:116"
                  },
                  "referencedDeclaration": 37157,
                  "src": "2726:9:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37273,
                "mutability": "mutable",
                "name": "resultCborBytes",
                "nameLocation": "2768:15:116",
                "nodeType": "VariableDeclaration",
                "scope": 37274,
                "src": "2762:21:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 37272,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2762:5:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "DataPushReport",
            "nameLocation": "2597:14:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "2590:201:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.DataResult",
            "documentation": {
              "id": 37275,
              "nodeType": "StructuredDocumentation",
              "src": "2799:72:116",
              "text": "Data struct containing the Witnet-provided result to a Data Request."
            },
            "id": 37293,
            "members": [
              {
                "constant": false,
                "id": 37278,
                "mutability": "mutable",
                "name": "status",
                "nameLocation": "2919:6:116",
                "nodeType": "VariableDeclaration",
                "scope": 37293,
                "src": "2906:19:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_ResultStatus_$37698",
                  "typeString": "enum Witnet.ResultStatus"
                },
                "typeName": {
                  "id": 37277,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37276,
                    "name": "ResultStatus",
                    "nameLocations": [
                      "2906:12:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37698,
                    "src": "2906:12:116"
                  },
                  "referencedDeclaration": 37698,
                  "src": "2906:12:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultStatus_$37698",
                    "typeString": "enum Witnet.ResultStatus"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37281,
                "mutability": "mutable",
                "name": "dataType",
                "nameLocation": "2951:8:116",
                "nodeType": "VariableDeclaration",
                "scope": 37293,
                "src": "2936:23:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                  "typeString": "enum Witnet.RadonDataTypes"
                },
                "typeName": {
                  "id": 37280,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37279,
                    "name": "RadonDataTypes",
                    "nameLocations": [
                      "2936:14:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37720,
                    "src": "2936:14:116"
                  },
                  "referencedDeclaration": 37720,
                  "src": "2936:14:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                    "typeString": "enum Witnet.RadonDataTypes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37284,
                "mutability": "mutable",
                "name": "drTxHash",
                "nameLocation": "2986:8:116",
                "nodeType": "VariableDeclaration",
                "scope": 37293,
                "src": "2970:24:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                  "typeString": "Witnet.TransactionHash"
                },
                "typeName": {
                  "id": 37283,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37282,
                    "name": "TransactionHash",
                    "nameLocations": [
                      "2970:15:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37159,
                    "src": "2970:15:116"
                  },
                  "referencedDeclaration": 37159,
                  "src": "2970:15:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                    "typeString": "Witnet.TransactionHash"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37286,
                "mutability": "mutable",
                "name": "finality",
                "nameLocation": "3013:8:116",
                "nodeType": "VariableDeclaration",
                "scope": 37293,
                "src": "3005:16:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 37285,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3005:7:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37289,
                "mutability": "mutable",
                "name": "timestamp",
                "nameLocation": "3042:9:116",
                "nodeType": "VariableDeclaration",
                "scope": 37293,
                "src": "3032:19:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                  "typeString": "Witnet.Timestamp"
                },
                "typeName": {
                  "id": 37288,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37287,
                    "name": "Timestamp",
                    "nameLocations": [
                      "3032:9:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37157,
                    "src": "3032:9:116"
                  },
                  "referencedDeclaration": 37157,
                  "src": "3032:9:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37292,
                "mutability": "mutable",
                "name": "value",
                "nameLocation": "3078:5:116",
                "nodeType": "VariableDeclaration",
                "scope": 37293,
                "src": "3062:21:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                  "typeString": "struct WitnetCBOR.CBOR"
                },
                "typeName": {
                  "id": 37291,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37290,
                    "name": "WitnetCBOR.CBOR",
                    "nameLocations": [
                      "3062:10:116",
                      "3073:4:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 42658,
                    "src": "3062:15:116"
                  },
                  "referencedDeclaration": 42658,
                  "src": "3062:15:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "DataResult",
            "nameLocation": "2884:10:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "2877:214:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.FastForward",
            "id": 37306,
            "members": [
              {
                "constant": false,
                "id": 37296,
                "mutability": "mutable",
                "name": "beacon",
                "nameLocation": "3136:6:116",
                "nodeType": "VariableDeclaration",
                "scope": 37306,
                "src": "3129:13:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                  "typeString": "struct Witnet.Beacon"
                },
                "typeName": {
                  "id": 37295,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37294,
                    "name": "Beacon",
                    "nameLocations": [
                      "3129:6:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37242,
                    "src": "3129:6:116"
                  },
                  "referencedDeclaration": 37242,
                  "src": "3129:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                    "typeString": "struct Witnet.Beacon"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37300,
                "mutability": "mutable",
                "name": "committeeAggSignature",
                "nameLocation": "3164:21:116",
                "nodeType": "VariableDeclaration",
                "scope": 37306,
                "src": "3153:32:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
                  "typeString": "uint256[2]"
                },
                "typeName": {
                  "baseType": {
                    "id": 37297,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3153:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 37299,
                  "length": {
                    "hexValue": "32",
                    "id": 37298,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3161:1:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_2_by_1",
                      "typeString": "int_const 2"
                    },
                    "value": "2"
                  },
                  "nodeType": "ArrayTypeName",
                  "src": "3153:10:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
                    "typeString": "uint256[2]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37305,
                "mutability": "mutable",
                "name": "committeeMissingPubkeys",
                "nameLocation": "3209:23:116",
                "nodeType": "VariableDeclaration",
                "scope": 37306,
                "src": "3196:36:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr",
                  "typeString": "uint256[4][]"
                },
                "typeName": {
                  "baseType": {
                    "baseType": {
                      "id": 37301,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "3196:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 37303,
                    "length": {
                      "hexValue": "34",
                      "id": 37302,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3204:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_4_by_1",
                        "typeString": "int_const 4"
                      },
                      "value": "4"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "3196:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr",
                      "typeString": "uint256[4]"
                    }
                  },
                  "id": 37304,
                  "nodeType": "ArrayTypeName",
                  "src": "3196:12:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr",
                    "typeString": "uint256[4][]"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "FastForward",
            "nameLocation": "3106:11:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "3099:141:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.Query",
            "documentation": {
              "id": 37307,
              "nodeType": "StructuredDocumentation",
              "src": "3248:110:116",
              "text": "Struct containing both request and response data related to every query posted to the Witnet Request Board"
            },
            "id": 37326,
            "members": [
              {
                "constant": false,
                "id": 37310,
                "mutability": "mutable",
                "name": "request",
                "nameLocation": "3401:7:116",
                "nodeType": "VariableDeclaration",
                "scope": 37326,
                "src": "3388:20:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_QueryRequest_$37351_storage_ptr",
                  "typeString": "struct Witnet.QueryRequest"
                },
                "typeName": {
                  "id": 37309,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37308,
                    "name": "QueryRequest",
                    "nameLocations": [
                      "3388:12:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37351,
                    "src": "3388:12:116"
                  },
                  "referencedDeclaration": 37351,
                  "src": "3388:12:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QueryRequest_$37351_storage_ptr",
                    "typeString": "struct Witnet.QueryRequest"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37313,
                "mutability": "mutable",
                "name": "response",
                "nameLocation": "3433:8:116",
                "nodeType": "VariableDeclaration",
                "scope": 37326,
                "src": "3419:22:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_QueryResponse_$37365_storage_ptr",
                  "typeString": "struct Witnet.QueryResponse"
                },
                "typeName": {
                  "id": 37312,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37311,
                    "name": "QueryResponse",
                    "nameLocations": [
                      "3419:13:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37365,
                    "src": "3419:13:116"
                  },
                  "referencedDeclaration": 37365,
                  "src": "3419:13:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QueryResponse_$37365_storage_ptr",
                    "typeString": "struct Witnet.QueryResponse"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37316,
                "mutability": "mutable",
                "name": "slaParams",
                "nameLocation": "3461:9:116",
                "nodeType": "VariableDeclaration",
                "scope": 37326,
                "src": "3452:18:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                  "typeString": "struct Witnet.QuerySLA"
                },
                "typeName": {
                  "id": 37315,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37314,
                    "name": "QuerySLA",
                    "nameLocations": [
                      "3452:8:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37373,
                    "src": "3452:8:116"
                  },
                  "referencedDeclaration": 37373,
                  "src": "3452:8:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                    "typeString": "struct Witnet.QuerySLA"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37319,
                "mutability": "mutable",
                "name": "uuid",
                "nameLocation": "3574:4:116",
                "nodeType": "VariableDeclaration",
                "scope": 37326,
                "src": "3564:14:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                  "typeString": "Witnet.QueryUUID"
                },
                "typeName": {
                  "id": 37318,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37317,
                    "name": "QueryUUID",
                    "nameLocations": [
                      "3564:9:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37149,
                    "src": "3564:9:116"
                  },
                  "referencedDeclaration": 37149,
                  "src": "3564:9:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                    "typeString": "Witnet.QueryUUID"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37322,
                "mutability": "mutable",
                "name": "reward",
                "nameLocation": "3725:6:116",
                "nodeType": "VariableDeclaration",
                "scope": 37326,
                "src": "3710:21:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                  "typeString": "Witnet.QueryEvmReward"
                },
                "typeName": {
                  "id": 37321,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37320,
                    "name": "QueryEvmReward",
                    "nameLocations": [
                      "3710:14:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37147,
                    "src": "3710:14:116"
                  },
                  "referencedDeclaration": 37147,
                  "src": "3710:14:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                    "typeString": "Witnet.QueryEvmReward"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37325,
                "mutability": "mutable",
                "name": "checkpoint",
                "nameLocation": "3822:10:116",
                "nodeType": "VariableDeclaration",
                "scope": 37326,
                "src": "3810:22:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                  "typeString": "Witnet.BlockNumber"
                },
                "typeName": {
                  "id": 37324,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37323,
                    "name": "BlockNumber",
                    "nameLocations": [
                      "3810:11:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37145,
                    "src": "3810:11:116"
                  },
                  "referencedDeclaration": 37145,
                  "src": "3810:11:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Query",
            "nameLocation": "3371:5:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "3364:476:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.QueryStatus",
            "documentation": {
              "id": 37327,
              "nodeType": "StructuredDocumentation",
              "src": "3848:38:116",
              "text": "Possible status of a Witnet query."
            },
            "id": 37335,
            "members": [
              {
                "id": 37328,
                "name": "Unknown",
                "nameLocation": "3920:7:116",
                "nodeType": "EnumValue",
                "src": "3920:7:116"
              },
              {
                "id": 37329,
                "name": "Posted",
                "nameLocation": "3938:6:116",
                "nodeType": "EnumValue",
                "src": "3938:6:116"
              },
              {
                "id": 37330,
                "name": "Reported",
                "nameLocation": "3955:8:116",
                "nodeType": "EnumValue",
                "src": "3955:8:116"
              },
              {
                "id": 37331,
                "name": "Finalized",
                "nameLocation": "3974:9:116",
                "nodeType": "EnumValue",
                "src": "3974:9:116"
              },
              {
                "id": 37332,
                "name": "Delayed",
                "nameLocation": "3994:7:116",
                "nodeType": "EnumValue",
                "src": "3994:7:116"
              },
              {
                "id": 37333,
                "name": "Expired",
                "nameLocation": "4012:7:116",
                "nodeType": "EnumValue",
                "src": "4012:7:116"
              },
              {
                "id": 37334,
                "name": "Disputed",
                "nameLocation": "4030:8:116",
                "nodeType": "EnumValue",
                "src": "4030:8:116"
              }
            ],
            "name": "QueryStatus",
            "nameLocation": "3897:11:116",
            "nodeType": "EnumDefinition",
            "src": "3892:153:116"
          },
          {
            "canonicalName": "Witnet.QueryCallback",
            "id": 37340,
            "members": [
              {
                "constant": false,
                "id": 37337,
                "mutability": "mutable",
                "name": "consumer",
                "nameLocation": "4093:8:116",
                "nodeType": "VariableDeclaration",
                "scope": 37340,
                "src": "4085:16:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 37336,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "4085:7:116",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37339,
                "mutability": "mutable",
                "name": "gasLimit",
                "nameLocation": "4206:8:116",
                "nodeType": "VariableDeclaration",
                "scope": 37340,
                "src": "4198:16:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint24",
                  "typeString": "uint24"
                },
                "typeName": {
                  "id": 37338,
                  "name": "uint24",
                  "nodeType": "ElementaryTypeName",
                  "src": "4198:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "QueryCallback",
            "nameLocation": "4060:13:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "4053:270:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.QueryRequest",
            "documentation": {
              "id": 37341,
              "nodeType": "StructuredDocumentation",
              "src": "4331:82:116",
              "text": "Data kept in EVM-storage for every Request posted to the Witnet Request Board."
            },
            "id": 37351,
            "members": [
              {
                "constant": false,
                "id": 37343,
                "mutability": "mutable",
                "name": "requester",
                "nameLocation": "4460:9:116",
                "nodeType": "VariableDeclaration",
                "scope": 37351,
                "src": "4450:19:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 37342,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "4450:7:116",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37345,
                "mutability": "mutable",
                "name": "callbackGas",
                "nameLocation": "4544:11:116",
                "nodeType": "VariableDeclaration",
                "scope": 37351,
                "src": "4534:21:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint24",
                  "typeString": "uint24"
                },
                "typeName": {
                  "id": 37344,
                  "name": "uint24",
                  "nodeType": "ElementaryTypeName",
                  "src": "4534:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37347,
                "mutability": "mutable",
                "name": "radonBytecode",
                "nameLocation": "4646:13:116",
                "nodeType": "VariableDeclaration",
                "scope": 37351,
                "src": "4636:23:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 37346,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "4636:5:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37350,
                "mutability": "mutable",
                "name": "radonHash",
                "nameLocation": "4761:9:116",
                "nodeType": "VariableDeclaration",
                "scope": 37351,
                "src": "4751:19:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                  "typeString": "Witnet.RadonHash"
                },
                "typeName": {
                  "id": 37349,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37348,
                    "name": "RadonHash",
                    "nameLocations": [
                      "4751:9:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37153,
                    "src": "4751:9:116"
                  },
                  "referencedDeclaration": 37153,
                  "src": "4751:9:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "QueryRequest",
            "nameLocation": "4426:12:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "4419:442:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.QueryResponse",
            "documentation": {
              "id": 37352,
              "nodeType": "StructuredDocumentation",
              "src": "4869:75:116",
              "text": "QueryResponse metadata and result as resolved by the Witnet blockchain."
            },
            "id": 37365,
            "members": [
              {
                "constant": false,
                "id": 37354,
                "mutability": "mutable",
                "name": "reporter",
                "nameLocation": "4990:8:116",
                "nodeType": "VariableDeclaration",
                "scope": 37365,
                "src": "4982:16:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 37353,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "4982:7:116",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37357,
                "mutability": "mutable",
                "name": "resultTimestamp",
                "nameLocation": "5097:15:116",
                "nodeType": "VariableDeclaration",
                "scope": 37365,
                "src": "5087:25:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                  "typeString": "Witnet.Timestamp"
                },
                "typeName": {
                  "id": 37356,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37355,
                    "name": "Timestamp",
                    "nameLocations": [
                      "5087:9:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37157,
                    "src": "5087:9:116"
                  },
                  "referencedDeclaration": 37157,
                  "src": "5087:9:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37360,
                "mutability": "mutable",
                "name": "resultDrTxHash",
                "nameLocation": "5237:14:116",
                "nodeType": "VariableDeclaration",
                "scope": 37365,
                "src": "5221:30:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                  "typeString": "Witnet.TransactionHash"
                },
                "typeName": {
                  "id": 37359,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37358,
                    "name": "TransactionHash",
                    "nameLocations": [
                      "5221:15:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37159,
                    "src": "5221:15:116"
                  },
                  "referencedDeclaration": 37159,
                  "src": "5221:15:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                    "typeString": "Witnet.TransactionHash"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37362,
                "mutability": "mutable",
                "name": "resultCborBytes",
                "nameLocation": "5365:15:116",
                "nodeType": "VariableDeclaration",
                "scope": 37365,
                "src": "5359:21:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 37361,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "5359:5:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37364,
                "mutability": "mutable",
                "name": "disputer",
                "nameLocation": "5484:8:116",
                "nodeType": "VariableDeclaration",
                "scope": 37365,
                "src": "5476:16:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 37363,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "5476:7:116",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "QueryResponse",
            "nameLocation": "4957:13:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "4950:550:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.QuerySLA",
            "documentation": {
              "id": 37366,
              "nodeType": "StructuredDocumentation",
              "src": "5508:87:116",
              "text": "Structure containing all possible SLA security parameters for Wit/2.1 Data Requests"
            },
            "id": 37373,
            "members": [
              {
                "constant": false,
                "id": 37368,
                "mutability": "mutable",
                "name": "witResultMaxSize",
                "nameLocation": "5636:16:116",
                "nodeType": "VariableDeclaration",
                "scope": 37373,
                "src": "5628:24:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                },
                "typeName": {
                  "id": 37367,
                  "name": "uint16",
                  "nodeType": "ElementaryTypeName",
                  "src": "5628:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37370,
                "mutability": "mutable",
                "name": "witCommitteeSize",
                "nameLocation": "5759:16:116",
                "nodeType": "VariableDeclaration",
                "scope": 37373,
                "src": "5751:24:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                },
                "typeName": {
                  "id": 37369,
                  "name": "uint16",
                  "nodeType": "ElementaryTypeName",
                  "src": "5751:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37372,
                "mutability": "mutable",
                "name": "witUnitaryReward",
                "nameLocation": "5884:16:116",
                "nodeType": "VariableDeclaration",
                "scope": 37373,
                "src": "5876:24:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 37371,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "5876:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "QuerySLA",
            "nameLocation": "5608:8:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "5601:405:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.ResultStatus",
            "id": 37698,
            "members": [
              {
                "documentation": {
                  "id": 37374,
                  "nodeType": "StructuredDocumentation",
                  "src": "6043:20:116",
                  "text": "0x00: No errors."
                },
                "id": 37375,
                "name": "NoErrors",
                "nameLocation": "6073:8:116",
                "nodeType": "EnumValue",
                "src": "6073:8:116"
              },
              {
                "documentation": {
                  "id": 37376,
                  "nodeType": "StructuredDocumentation",
                  "src": "6370:79:116",
                  "text": "0x01: At least one of the source scripts is not a valid CBOR-encoded value."
                },
                "id": 37377,
                "name": "SourceScriptNotCBOR",
                "nameLocation": "6459:19:116",
                "nodeType": "EnumValue",
                "src": "6459:19:116"
              },
              {
                "documentation": {
                  "id": 37378,
                  "nodeType": "StructuredDocumentation",
                  "src": "6500:70:116",
                  "text": "0x02: The CBOR value decoded from a source script is not an Array."
                },
                "id": 37379,
                "name": "SourceScriptNotArray",
                "nameLocation": "6580:20:116",
                "nodeType": "EnumValue",
                "src": "6580:20:116"
              },
              {
                "documentation": {
                  "id": 37380,
                  "nodeType": "StructuredDocumentation",
                  "src": "6621:83:116",
                  "text": "0x03: The Array value decoded form a source script is not a valid Data Request."
                },
                "id": 37381,
                "name": "SourceScriptNotRADON",
                "nameLocation": "6714:20:116",
                "nodeType": "EnumValue",
                "src": "6714:20:116"
              },
              {
                "documentation": {
                  "id": 37382,
                  "nodeType": "StructuredDocumentation",
                  "src": "6755:81:116",
                  "text": "0x04: The request body of at least one data source was not properly formated."
                },
                "id": 37383,
                "name": "SourceRequestBody",
                "nameLocation": "6846:17:116",
                "nodeType": "EnumValue",
                "src": "6846:17:116"
              },
              {
                "documentation": {
                  "id": 37384,
                  "nodeType": "StructuredDocumentation",
                  "src": "6884:84:116",
                  "text": "0x05: The request headers of at least one data source was not properly formated."
                },
                "id": 37385,
                "name": "SourceRequestHeaders",
                "nameLocation": "6978:20:116",
                "nodeType": "EnumValue",
                "src": "6978:20:116"
              },
              {
                "documentation": {
                  "id": 37386,
                  "nodeType": "StructuredDocumentation",
                  "src": "7019:80:116",
                  "text": "0x06: The request URL of at least one data source was not properly formated."
                },
                "id": 37387,
                "name": "SourceRequestURL",
                "nameLocation": "7109:16:116",
                "nodeType": "EnumValue",
                "src": "7109:16:116"
              },
              {
                "documentation": {
                  "id": 37388,
                  "nodeType": "StructuredDocumentation",
                  "src": "7146:15:116",
                  "text": "Unallocated"
                },
                "id": 37389,
                "name": "SourceFormat0x07",
                "nameLocation": "7171:16:116",
                "nodeType": "EnumValue",
                "src": "7171:16:116"
              },
              {
                "id": 37390,
                "name": "SourceFormat0x08",
                "nameLocation": "7189:16:116",
                "nodeType": "EnumValue",
                "src": "7189:16:116"
              },
              {
                "id": 37391,
                "name": "SourceFormat0x09",
                "nameLocation": "7207:16:116",
                "nodeType": "EnumValue",
                "src": "7207:16:116"
              },
              {
                "id": 37392,
                "name": "SourceFormat0x0A",
                "nameLocation": "7225:16:116",
                "nodeType": "EnumValue",
                "src": "7225:16:116"
              },
              {
                "id": 37393,
                "name": "SourceFormat0x0B",
                "nameLocation": "7243:16:116",
                "nodeType": "EnumValue",
                "src": "7243:16:116"
              },
              {
                "id": 37394,
                "name": "SourceFormat0x0C",
                "nameLocation": "7261:16:116",
                "nodeType": "EnumValue",
                "src": "7261:16:116"
              },
              {
                "id": 37395,
                "name": "SourceFormat0x0D",
                "nameLocation": "7288:16:116",
                "nodeType": "EnumValue",
                "src": "7288:16:116"
              },
              {
                "id": 37396,
                "name": "SourceFormat0x0E",
                "nameLocation": "7306:16:116",
                "nodeType": "EnumValue",
                "src": "7306:16:116"
              },
              {
                "id": 37397,
                "name": "SourceFormat0x0F",
                "nameLocation": "7324:16:116",
                "nodeType": "EnumValue",
                "src": "7324:16:116"
              },
              {
                "documentation": {
                  "id": 37398,
                  "nodeType": "StructuredDocumentation",
                  "src": "7640:48:116",
                  "text": "0x10: The request contains too many sources."
                },
                "id": 37399,
                "name": "RequestTooManySources",
                "nameLocation": "7698:21:116",
                "nodeType": "EnumValue",
                "src": "7698:21:116"
              },
              {
                "documentation": {
                  "id": 37400,
                  "nodeType": "StructuredDocumentation",
                  "src": "7740:45:116",
                  "text": "0x11: The script contains too many calls."
                },
                "id": 37401,
                "name": "ScriptTooManyCalls",
                "nameLocation": "7795:18:116",
                "nodeType": "EnumValue",
                "src": "7795:18:116"
              },
              {
                "documentation": {
                  "id": 37402,
                  "nodeType": "StructuredDocumentation",
                  "src": "7834:15:116",
                  "text": "Unallocated"
                },
                "id": 37403,
                "name": "Complexity0x12",
                "nameLocation": "7859:14:116",
                "nodeType": "EnumValue",
                "src": "7859:14:116"
              },
              {
                "id": 37404,
                "name": "Complexity0x13",
                "nameLocation": "7875:14:116",
                "nodeType": "EnumValue",
                "src": "7875:14:116"
              },
              {
                "id": 37405,
                "name": "Complexity0x14",
                "nameLocation": "7891:14:116",
                "nodeType": "EnumValue",
                "src": "7891:14:116"
              },
              {
                "id": 37406,
                "name": "Complexity0x15",
                "nameLocation": "7907:14:116",
                "nodeType": "EnumValue",
                "src": "7907:14:116"
              },
              {
                "id": 37407,
                "name": "Complexity0x16",
                "nameLocation": "7923:14:116",
                "nodeType": "EnumValue",
                "src": "7923:14:116"
              },
              {
                "id": 37408,
                "name": "Complexity0x17",
                "nameLocation": "7939:14:116",
                "nodeType": "EnumValue",
                "src": "7939:14:116"
              },
              {
                "id": 37409,
                "name": "Complexity0x18",
                "nameLocation": "7955:14:116",
                "nodeType": "EnumValue",
                "src": "7955:14:116"
              },
              {
                "id": 37410,
                "name": "Complexity0x19",
                "nameLocation": "7980:14:116",
                "nodeType": "EnumValue",
                "src": "7980:14:116"
              },
              {
                "id": 37411,
                "name": "Complexity0x1A",
                "nameLocation": "7996:14:116",
                "nodeType": "EnumValue",
                "src": "7996:14:116"
              },
              {
                "id": 37412,
                "name": "Complexity0x1B",
                "nameLocation": "8012:14:116",
                "nodeType": "EnumValue",
                "src": "8012:14:116"
              },
              {
                "id": 37413,
                "name": "Complexity0x1C",
                "nameLocation": "8028:14:116",
                "nodeType": "EnumValue",
                "src": "8028:14:116"
              },
              {
                "id": 37414,
                "name": "Complexity0x1D",
                "nameLocation": "8044:14:116",
                "nodeType": "EnumValue",
                "src": "8044:14:116"
              },
              {
                "id": 37415,
                "name": "Complexity0x1E",
                "nameLocation": "8060:14:116",
                "nodeType": "EnumValue",
                "src": "8060:14:116"
              },
              {
                "id": 37416,
                "name": "Complexity0x1F",
                "nameLocation": "8076:14:116",
                "nodeType": "EnumValue",
                "src": "8076:14:116"
              },
              {
                "documentation": {
                  "id": 37417,
                  "nodeType": "StructuredDocumentation",
                  "src": "8381:77:116",
                  "text": "0x20: Some Radon operator code was found that is not supported (1+ args)."
                },
                "id": 37418,
                "name": "UnsupportedOperator",
                "nameLocation": "8468:19:116",
                "nodeType": "EnumValue",
                "src": "8468:19:116"
              },
              {
                "documentation": {
                  "id": 37419,
                  "nodeType": "StructuredDocumentation",
                  "src": "8508:72:116",
                  "text": "0x21: Some Radon filter opcode is not currently supported (1+ args)."
                },
                "id": 37420,
                "name": "UnsupportedFilter",
                "nameLocation": "8590:17:116",
                "nodeType": "EnumValue",
                "src": "8590:17:116"
              },
              {
                "documentation": {
                  "id": 37421,
                  "nodeType": "StructuredDocumentation",
                  "src": "8628:71:116",
                  "text": "0x22: Some Radon request type is not currently supported (1+ args)."
                },
                "id": 37422,
                "name": "UnsupportedHashFunction",
                "nameLocation": "8709:23:116",
                "nodeType": "EnumValue",
                "src": "8709:23:116"
              },
              {
                "documentation": {
                  "id": 37423,
                  "nodeType": "StructuredDocumentation",
                  "src": "8753:72:116",
                  "text": "0x23: Some Radon reducer opcode is not currently supported (1+ args)"
                },
                "id": 37424,
                "name": "UnsupportedReducer",
                "nameLocation": "8835:18:116",
                "nodeType": "EnumValue",
                "src": "8835:18:116"
              },
              {
                "documentation": {
                  "id": 37425,
                  "nodeType": "StructuredDocumentation",
                  "src": "8874:72:116",
                  "text": "0x24: Some Radon hash function is not currently supported (1+ args)."
                },
                "id": 37426,
                "name": "UnsupportedRequestType",
                "nameLocation": "8956:22:116",
                "nodeType": "EnumValue",
                "src": "8956:22:116"
              },
              {
                "documentation": {
                  "id": 37427,
                  "nodeType": "StructuredDocumentation",
                  "src": "9000:76:116",
                  "text": "0x25: Some Radon encoding function is not currently supported (1+ args)."
                },
                "id": 37428,
                "name": "UnsupportedEncodingFunction",
                "nameLocation": "9086:27:116",
                "nodeType": "EnumValue",
                "src": "9086:27:116"
              },
              {
                "documentation": {
                  "id": 37429,
                  "nodeType": "StructuredDocumentation",
                  "src": "9134:15:116",
                  "text": "Unallocated"
                },
                "id": 37430,
                "name": "Operator0x26",
                "nameLocation": "9159:12:116",
                "nodeType": "EnumValue",
                "src": "9159:12:116"
              },
              {
                "id": 37431,
                "name": "Operator0x27",
                "nameLocation": "9173:12:116",
                "nodeType": "EnumValue",
                "src": "9173:12:116"
              },
              {
                "documentation": {
                  "id": 37432,
                  "nodeType": "StructuredDocumentation",
                  "src": "9207:81:116",
                  "text": "0x28: Wrong number (or type) of arguments were passed to some Radon operator."
                },
                "id": 37433,
                "name": "WrongArguments",
                "nameLocation": "9298:14:116",
                "nodeType": "EnumValue",
                "src": "9298:14:116"
              },
              {
                "documentation": {
                  "id": 37434,
                  "nodeType": "StructuredDocumentation",
                  "src": "9333:15:116",
                  "text": "Unallocated"
                },
                "id": 37435,
                "name": "Operator0x29",
                "nameLocation": "9358:12:116",
                "nodeType": "EnumValue",
                "src": "9358:12:116"
              },
              {
                "id": 37436,
                "name": "Operator0x2A",
                "nameLocation": "9372:12:116",
                "nodeType": "EnumValue",
                "src": "9372:12:116"
              },
              {
                "id": 37437,
                "name": "Operator0x2B",
                "nameLocation": "9386:12:116",
                "nodeType": "EnumValue",
                "src": "9386:12:116"
              },
              {
                "id": 37438,
                "name": "Operator0x2C",
                "nameLocation": "9400:12:116",
                "nodeType": "EnumValue",
                "src": "9400:12:116"
              },
              {
                "id": 37439,
                "name": "Operator0x2D",
                "nameLocation": "9414:12:116",
                "nodeType": "EnumValue",
                "src": "9414:12:116"
              },
              {
                "id": 37440,
                "name": "Operator0x2E",
                "nameLocation": "9428:12:116",
                "nodeType": "EnumValue",
                "src": "9428:12:116"
              },
              {
                "id": 37441,
                "name": "Operator0x2F",
                "nameLocation": "9442:12:116",
                "nodeType": "EnumValue",
                "src": "9442:12:116"
              },
              {
                "documentation": {
                  "id": 37442,
                  "nodeType": "StructuredDocumentation",
                  "src": "9614:234:116",
                  "text": "Retrieve-specific circumstantial error sub-codes ================================================================================\n 0x30: A majority of data sources returned an HTTP status code other than 200 (1+ args):"
                },
                "id": 37443,
                "name": "HttpErrors",
                "nameLocation": "9858:10:116",
                "nodeType": "EnumValue",
                "src": "9858:10:116"
              },
              {
                "documentation": {
                  "id": 37444,
                  "nodeType": "StructuredDocumentation",
                  "src": "9889:47:116",
                  "text": "0x31: A majority of data sources timed out:"
                },
                "id": 37445,
                "name": "RetrievalsTimeout",
                "nameLocation": "9946:17:116",
                "nodeType": "EnumValue",
                "src": "9946:17:116"
              },
              {
                "documentation": {
                  "id": 37446,
                  "nodeType": "StructuredDocumentation",
                  "src": "9984:15:116",
                  "text": "Unallocated"
                },
                "id": 37447,
                "name": "RetrieveCircumstance0x32",
                "nameLocation": "10009:24:116",
                "nodeType": "EnumValue",
                "src": "10009:24:116"
              },
              {
                "id": 37448,
                "name": "RetrieveCircumstance0x33",
                "nameLocation": "10035:24:116",
                "nodeType": "EnumValue",
                "src": "10035:24:116"
              },
              {
                "id": 37449,
                "name": "RetrieveCircumstance0x34",
                "nameLocation": "10061:24:116",
                "nodeType": "EnumValue",
                "src": "10061:24:116"
              },
              {
                "id": 37450,
                "name": "RetrieveCircumstance0x35",
                "nameLocation": "10087:24:116",
                "nodeType": "EnumValue",
                "src": "10087:24:116"
              },
              {
                "id": 37451,
                "name": "RetrieveCircumstance0x36",
                "nameLocation": "10122:24:116",
                "nodeType": "EnumValue",
                "src": "10122:24:116"
              },
              {
                "id": 37452,
                "name": "RetrieveCircumstance0x37",
                "nameLocation": "10148:24:116",
                "nodeType": "EnumValue",
                "src": "10148:24:116"
              },
              {
                "id": 37453,
                "name": "RetrieveCircumstance0x38",
                "nameLocation": "10174:24:116",
                "nodeType": "EnumValue",
                "src": "10174:24:116"
              },
              {
                "id": 37454,
                "name": "RetrieveCircumstance0x39",
                "nameLocation": "10200:24:116",
                "nodeType": "EnumValue",
                "src": "10200:24:116"
              },
              {
                "id": 37455,
                "name": "RetrieveCircumstance0x3A",
                "nameLocation": "10235:24:116",
                "nodeType": "EnumValue",
                "src": "10235:24:116"
              },
              {
                "id": 37456,
                "name": "RetrieveCircumstance0x3B",
                "nameLocation": "10261:24:116",
                "nodeType": "EnumValue",
                "src": "10261:24:116"
              },
              {
                "id": 37457,
                "name": "RetrieveCircumstance0x3C",
                "nameLocation": "10287:24:116",
                "nodeType": "EnumValue",
                "src": "10287:24:116"
              },
              {
                "id": 37458,
                "name": "RetrieveCircumstance0x3D",
                "nameLocation": "10313:24:116",
                "nodeType": "EnumValue",
                "src": "10313:24:116"
              },
              {
                "id": 37459,
                "name": "RetrieveCircumstance0x3E",
                "nameLocation": "10348:24:116",
                "nodeType": "EnumValue",
                "src": "10348:24:116"
              },
              {
                "id": 37460,
                "name": "RetrieveCircumstance0x3F",
                "nameLocation": "10374:24:116",
                "nodeType": "EnumValue",
                "src": "10374:24:116"
              },
              {
                "documentation": {
                  "id": 37461,
                  "nodeType": "StructuredDocumentation",
                  "src": "10558:173:116",
                  "text": "Scripting-specific runtime error sub-code =========================================================================\n 0x40: Math operator caused an underflow."
                },
                "id": 37462,
                "name": "MathUnderflow",
                "nameLocation": "10741:13:116",
                "nodeType": "EnumValue",
                "src": "10741:13:116"
              },
              {
                "documentation": {
                  "id": 37463,
                  "nodeType": "StructuredDocumentation",
                  "src": "10775:43:116",
                  "text": "0x41: Math operator caused an overflow."
                },
                "id": 37464,
                "name": "MathOverflow",
                "nameLocation": "10828:12:116",
                "nodeType": "EnumValue",
                "src": "10828:12:116"
              },
              {
                "documentation": {
                  "id": 37465,
                  "nodeType": "StructuredDocumentation",
                  "src": "10861:48:116",
                  "text": "0x42: Math operator tried to divide by zero."
                },
                "id": 37466,
                "name": "MathDivisionByZero",
                "nameLocation": "10919:18:116",
                "nodeType": "EnumValue",
                "src": "10919:18:116"
              },
              {
                "documentation": {
                  "id": 37467,
                  "nodeType": "StructuredDocumentation",
                  "src": "10970:40:116",
                  "text": "0x43: Wrong input to subscript call."
                },
                "id": 37468,
                "name": "WrongSubscriptInput",
                "nameLocation": "11020:19:116",
                "nodeType": "EnumValue",
                "src": "11020:19:116"
              },
              {
                "documentation": {
                  "id": 37469,
                  "nodeType": "StructuredDocumentation",
                  "src": "11060:61:116",
                  "text": "0x44: Value cannot be extracted from input binary buffer."
                },
                "id": 37470,
                "name": "BufferIsNotValue",
                "nameLocation": "11131:16:116",
                "nodeType": "EnumValue",
                "src": "11131:16:116"
              },
              {
                "documentation": {
                  "id": 37471,
                  "nodeType": "StructuredDocumentation",
                  "src": "11168:53:116",
                  "text": "0x45: Value cannot be decoded from expected type."
                },
                "id": 37472,
                "name": "Decode",
                "nameLocation": "11231:6:116",
                "nodeType": "EnumValue",
                "src": "11231:6:116"
              },
              {
                "documentation": {
                  "id": 37473,
                  "nodeType": "StructuredDocumentation",
                  "src": "11258:33:116",
                  "text": "0x46: Unexpected empty array."
                },
                "id": 37474,
                "name": "EmptyArray",
                "nameLocation": "11301:10:116",
                "nodeType": "EnumValue",
                "src": "11301:10:116"
              },
              {
                "documentation": {
                  "id": 37475,
                  "nodeType": "StructuredDocumentation",
                  "src": "11332:51:116",
                  "text": "0x47: Value cannot be encoded to expected type."
                },
                "id": 37476,
                "name": "Encode",
                "nameLocation": "11393:6:116",
                "nodeType": "EnumValue",
                "src": "11393:6:116"
              },
              {
                "documentation": {
                  "id": 37477,
                  "nodeType": "StructuredDocumentation",
                  "src": "11420:50:116",
                  "text": "0x48: Failed to filter input values (1+ args)."
                },
                "id": 37478,
                "name": "Filter",
                "nameLocation": "11480:6:116",
                "nodeType": "EnumValue",
                "src": "11480:6:116"
              },
              {
                "documentation": {
                  "id": 37479,
                  "nodeType": "StructuredDocumentation",
                  "src": "11507:37:116",
                  "text": "0x49: Failed to hash input value."
                },
                "id": 37480,
                "name": "Hash",
                "nameLocation": "11554:4:116",
                "nodeType": "EnumValue",
                "src": "11554:4:116"
              },
              {
                "documentation": {
                  "id": 37481,
                  "nodeType": "StructuredDocumentation",
                  "src": "11579:34:116",
                  "text": "0x4A: Mismatching array ranks."
                },
                "id": 37482,
                "name": "MismatchingArrays",
                "nameLocation": "11623:17:116",
                "nodeType": "EnumValue",
                "src": "11623:17:116"
              },
              {
                "documentation": {
                  "id": 37483,
                  "nodeType": "StructuredDocumentation",
                  "src": "11661:49:116",
                  "text": "0x4B: Failed to process non-homogenous array."
                },
                "id": 37484,
                "name": "NonHomegeneousArray",
                "nameLocation": "11720:19:116",
                "nodeType": "EnumValue",
                "src": "11720:19:116"
              },
              {
                "documentation": {
                  "id": 37485,
                  "nodeType": "StructuredDocumentation",
                  "src": "11760:66:116",
                  "text": "0x4C: Failed to parse syntax of some input value, or argument."
                },
                "id": 37486,
                "name": "Parse",
                "nameLocation": "11836:5:116",
                "nodeType": "EnumValue",
                "src": "11836:5:116"
              },
              {
                "documentation": {
                  "id": 37487,
                  "nodeType": "StructuredDocumentation",
                  "src": "11862:45:116",
                  "text": "0x4D: Parsing logic limits were exceeded."
                },
                "id": 37488,
                "name": "ParseOverflow",
                "nameLocation": "11917:13:116",
                "nodeType": "EnumValue",
                "src": "11917:13:116"
              },
              {
                "documentation": {
                  "id": 37489,
                  "nodeType": "StructuredDocumentation",
                  "src": "11951:15:116",
                  "text": "Unallocated"
                },
                "id": 37490,
                "name": "ScriptError0x4E",
                "nameLocation": "11976:15:116",
                "nodeType": "EnumValue",
                "src": "11976:15:116"
              },
              {
                "id": 37491,
                "name": "ScriptError0x4F",
                "nameLocation": "11993:15:116",
                "nodeType": "EnumValue",
                "src": "11993:15:116"
              },
              {
                "documentation": {
                  "id": 37492,
                  "nodeType": "StructuredDocumentation",
                  "src": "12303:55:116",
                  "text": "0x50: Not enough reveals were received in due time:"
                },
                "id": 37493,
                "name": "InsufficientReveals",
                "nameLocation": "12368:19:116",
                "nodeType": "EnumValue",
                "src": "12368:19:116"
              },
              {
                "documentation": {
                  "id": 37494,
                  "nodeType": "StructuredDocumentation",
                  "src": "12408:63:116",
                  "text": "0x51: No actual reveal majority was reached on tally stage:"
                },
                "id": 37495,
                "name": "InsufficientMajority",
                "nameLocation": "12481:20:116",
                "nodeType": "EnumValue",
                "src": "12481:20:116"
              },
              {
                "documentation": {
                  "id": 37496,
                  "nodeType": "StructuredDocumentation",
                  "src": "12522:62:116",
                  "text": "0x52: Not enough commits were received before tally stage:"
                },
                "id": 37497,
                "name": "InsufficientCommits",
                "nameLocation": "12594:19:116",
                "nodeType": "EnumValue",
                "src": "12594:19:116"
              },
              {
                "documentation": {
                  "id": 37498,
                  "nodeType": "StructuredDocumentation",
                  "src": "12634:81:116",
                  "text": "0x53: Generic error during tally execution (to be deprecated after WIP #0028)"
                },
                "id": 37499,
                "name": "TallyExecution",
                "nameLocation": "12725:14:116",
                "nodeType": "EnumValue",
                "src": "12725:14:116"
              },
              {
                "documentation": {
                  "id": 37500,
                  "nodeType": "StructuredDocumentation",
                  "src": "12760:118:116",
                  "text": "0x54: A majority of data sources could either be temporarily unresponsive or failing to report the requested data:"
                },
                "id": 37501,
                "name": "CircumstantialFailure",
                "nameLocation": "12888:21:116",
                "nodeType": "EnumValue",
                "src": "12888:21:116"
              },
              {
                "documentation": {
                  "id": 37502,
                  "nodeType": "StructuredDocumentation",
                  "src": "12930:100:116",
                  "text": "0x55: At least one data source is inconsistent when queried through multiple transports at once:"
                },
                "id": 37503,
                "name": "InconsistentSources",
                "nameLocation": "13040:19:116",
                "nodeType": "EnumValue",
                "src": "13040:19:116"
              },
              {
                "documentation": {
                  "id": 37504,
                  "nodeType": "StructuredDocumentation",
                  "src": "13080:93:116",
                  "text": "0x56: Any one of the (multiple) Retrieve, Aggregate or Tally scripts were badly formated:"
                },
                "id": 37505,
                "name": "MalformedDataRequest",
                "nameLocation": "13183:20:116",
                "nodeType": "EnumValue",
                "src": "13183:20:116"
              },
              {
                "documentation": {
                  "id": 37506,
                  "nodeType": "StructuredDocumentation",
                  "src": "13224:90:116",
                  "text": "0x57: Values returned from a majority of data sources don't match the expected schema:"
                },
                "id": 37507,
                "name": "MalformedQueryResponses",
                "nameLocation": "13324:23:116",
                "nodeType": "EnumValue",
                "src": "13324:23:116"
              },
              {
                "documentation": {
                  "id": 37508,
                  "nodeType": "StructuredDocumentation",
                  "src": "13368:20:116",
                  "text": "Unallocated:    "
                },
                "id": 37509,
                "name": "OtherError0x58",
                "nameLocation": "13398:14:116",
                "nodeType": "EnumValue",
                "src": "13398:14:116"
              },
              {
                "id": 37510,
                "name": "OtherError0x59",
                "nameLocation": "13414:14:116",
                "nodeType": "EnumValue",
                "src": "13414:14:116"
              },
              {
                "id": 37511,
                "name": "OtherError0x5A",
                "nameLocation": "13430:14:116",
                "nodeType": "EnumValue",
                "src": "13430:14:116"
              },
              {
                "id": 37512,
                "name": "OtherError0x5B",
                "nameLocation": "13446:14:116",
                "nodeType": "EnumValue",
                "src": "13446:14:116"
              },
              {
                "id": 37513,
                "name": "OtherError0x5C",
                "nameLocation": "13462:14:116",
                "nodeType": "EnumValue",
                "src": "13462:14:116"
              },
              {
                "id": 37514,
                "name": "OtherError0x5D",
                "nameLocation": "13478:14:116",
                "nodeType": "EnumValue",
                "src": "13478:14:116"
              },
              {
                "id": 37515,
                "name": "OtherError0x5E",
                "nameLocation": "13494:14:116",
                "nodeType": "EnumValue",
                "src": "13494:14:116"
              },
              {
                "documentation": {
                  "id": 37516,
                  "nodeType": "StructuredDocumentation",
                  "src": "13530:60:116",
                  "text": "0x5F: Size of serialized tally result exceeds allowance:"
                },
                "id": 37517,
                "name": "OversizedTallyResult",
                "nameLocation": "13600:20:116",
                "nodeType": "EnumValue",
                "src": "13600:20:116"
              },
              {
                "documentation": {
                  "id": 37518,
                  "nodeType": "StructuredDocumentation",
                  "src": "13911:76:116",
                  "text": "0x60: Data aggregation reveals could not get decoded on the tally stage:"
                },
                "id": 37519,
                "name": "MalformedReveals",
                "nameLocation": "13997:16:116",
                "nodeType": "EnumValue",
                "src": "13997:16:116"
              },
              {
                "documentation": {
                  "id": 37520,
                  "nodeType": "StructuredDocumentation",
                  "src": "14034:63:116",
                  "text": "0x61: The result to data aggregation could not get encoded:"
                },
                "id": 37521,
                "name": "EncodeReveals",
                "nameLocation": "14107:13:116",
                "nodeType": "EnumValue",
                "src": "14107:13:116"
              },
              {
                "documentation": {
                  "id": 37522,
                  "nodeType": "StructuredDocumentation",
                  "src": "14143:100:116",
                  "text": "0x62: A mode tie ocurred when calculating some mode value on the aggregation or the tally stage:"
                },
                "id": 37523,
                "name": "ModeTie",
                "nameLocation": "14253:7:116",
                "nodeType": "EnumValue",
                "src": "14253:7:116"
              },
              {
                "documentation": {
                  "id": 37524,
                  "nodeType": "StructuredDocumentation",
                  "src": "14282:16:116",
                  "text": "Unallocated:"
                },
                "id": 37525,
                "name": "OtherError0x63",
                "nameLocation": "14308:14:116",
                "nodeType": "EnumValue",
                "src": "14308:14:116"
              },
              {
                "id": 37526,
                "name": "OtherError0x64",
                "nameLocation": "14324:14:116",
                "nodeType": "EnumValue",
                "src": "14324:14:116"
              },
              {
                "id": 37527,
                "name": "OtherError0x65",
                "nameLocation": "14340:14:116",
                "nodeType": "EnumValue",
                "src": "14340:14:116"
              },
              {
                "id": 37528,
                "name": "OtherError0x66",
                "nameLocation": "14356:14:116",
                "nodeType": "EnumValue",
                "src": "14356:14:116"
              },
              {
                "id": 37529,
                "name": "OtherError0x67",
                "nameLocation": "14372:14:116",
                "nodeType": "EnumValue",
                "src": "14372:14:116"
              },
              {
                "id": 37530,
                "name": "OtherError0x68",
                "nameLocation": "14388:14:116",
                "nodeType": "EnumValue",
                "src": "14388:14:116"
              },
              {
                "id": 37531,
                "name": "OtherError0x69",
                "nameLocation": "14404:14:116",
                "nodeType": "EnumValue",
                "src": "14404:14:116"
              },
              {
                "id": 37532,
                "name": "OtherError0x6A",
                "nameLocation": "14430:14:116",
                "nodeType": "EnumValue",
                "src": "14430:14:116"
              },
              {
                "id": 37533,
                "name": "OtherError0x6B",
                "nameLocation": "14446:14:116",
                "nodeType": "EnumValue",
                "src": "14446:14:116"
              },
              {
                "id": 37534,
                "name": "OtherError0x6C",
                "nameLocation": "14462:14:116",
                "nodeType": "EnumValue",
                "src": "14462:14:116"
              },
              {
                "id": 37535,
                "name": "OtherError0x6D",
                "nameLocation": "14478:14:116",
                "nodeType": "EnumValue",
                "src": "14478:14:116"
              },
              {
                "id": 37536,
                "name": "OtherError0x6E",
                "nameLocation": "14494:14:116",
                "nodeType": "EnumValue",
                "src": "14494:14:116"
              },
              {
                "id": 37537,
                "name": "OtherError0x6F",
                "nameLocation": "14510:14:116",
                "nodeType": "EnumValue",
                "src": "14510:14:116"
              },
              {
                "documentation": {
                  "id": 37538,
                  "nodeType": "StructuredDocumentation",
                  "src": "14823:95:116",
                  "text": "0x70: Tried to access a value from an array using an index that is out of bounds (1+ args):"
                },
                "id": 37539,
                "name": "ArrayIndexOutOfBounds",
                "nameLocation": "14928:21:116",
                "nodeType": "EnumValue",
                "src": "14928:21:116"
              },
              {
                "documentation": {
                  "id": 37540,
                  "nodeType": "StructuredDocumentation",
                  "src": "14970:87:116",
                  "text": "0x71: Tried to access a value from a map using a key that does not exist (1+ args):"
                },
                "id": 37541,
                "name": "MapKeyNotFound",
                "nameLocation": "15067:14:116",
                "nodeType": "EnumValue",
                "src": "15067:14:116"
              },
              {
                "documentation": {
                  "id": 37542,
                  "nodeType": "StructuredDocumentation",
                  "src": "15102:95:116",
                  "text": "0X72: Tried to extract value from a map using a JSON Path that returns no values (+1 args):"
                },
                "id": 37543,
                "name": "JsonPathNotFound",
                "nameLocation": "15207:16:116",
                "nodeType": "EnumValue",
                "src": "15207:16:116"
              },
              {
                "documentation": {
                  "id": 37544,
                  "nodeType": "StructuredDocumentation",
                  "src": "15244:16:116",
                  "text": "Unallocated:"
                },
                "id": 37545,
                "name": "OtherError0x73",
                "nameLocation": "15270:14:116",
                "nodeType": "EnumValue",
                "src": "15270:14:116"
              },
              {
                "id": 37546,
                "name": "OtherError0x74",
                "nameLocation": "15286:14:116",
                "nodeType": "EnumValue",
                "src": "15286:14:116"
              },
              {
                "id": 37547,
                "name": "OtherError0x75",
                "nameLocation": "15302:14:116",
                "nodeType": "EnumValue",
                "src": "15302:14:116"
              },
              {
                "id": 37548,
                "name": "OtherError0x76",
                "nameLocation": "15318:14:116",
                "nodeType": "EnumValue",
                "src": "15318:14:116"
              },
              {
                "id": 37549,
                "name": "OtherError0x77",
                "nameLocation": "15334:14:116",
                "nodeType": "EnumValue",
                "src": "15334:14:116"
              },
              {
                "id": 37550,
                "name": "OtherError0x78",
                "nameLocation": "15350:14:116",
                "nodeType": "EnumValue",
                "src": "15350:14:116"
              },
              {
                "id": 37551,
                "name": "OtherError0x79",
                "nameLocation": "15376:14:116",
                "nodeType": "EnumValue",
                "src": "15376:14:116"
              },
              {
                "id": 37552,
                "name": "OtherError0x7A",
                "nameLocation": "15392:14:116",
                "nodeType": "EnumValue",
                "src": "15392:14:116"
              },
              {
                "id": 37553,
                "name": "OtherError0x7B",
                "nameLocation": "15408:14:116",
                "nodeType": "EnumValue",
                "src": "15408:14:116"
              },
              {
                "id": 37554,
                "name": "OtherError0x7C",
                "nameLocation": "15424:14:116",
                "nodeType": "EnumValue",
                "src": "15424:14:116"
              },
              {
                "id": 37555,
                "name": "OtherError0x7D",
                "nameLocation": "15440:14:116",
                "nodeType": "EnumValue",
                "src": "15440:14:116"
              },
              {
                "id": 37556,
                "name": "OtherError0x7E",
                "nameLocation": "15456:14:116",
                "nodeType": "EnumValue",
                "src": "15456:14:116"
              },
              {
                "id": 37557,
                "name": "OtherError0x7F",
                "nameLocation": "15472:14:116",
                "nodeType": "EnumValue",
                "src": "15472:14:116"
              },
              {
                "id": 37558,
                "name": "OtherError0x80",
                "nameLocation": "15498:14:116",
                "nodeType": "EnumValue",
                "src": "15498:14:116"
              },
              {
                "id": 37559,
                "name": "OtherError0x81",
                "nameLocation": "15514:14:116",
                "nodeType": "EnumValue",
                "src": "15514:14:116"
              },
              {
                "id": 37560,
                "name": "OtherError0x82",
                "nameLocation": "15530:14:116",
                "nodeType": "EnumValue",
                "src": "15530:14:116"
              },
              {
                "id": 37561,
                "name": "OtherError0x83",
                "nameLocation": "15546:14:116",
                "nodeType": "EnumValue",
                "src": "15546:14:116"
              },
              {
                "id": 37562,
                "name": "OtherError0x84",
                "nameLocation": "15562:14:116",
                "nodeType": "EnumValue",
                "src": "15562:14:116"
              },
              {
                "id": 37563,
                "name": "OtherError0x85",
                "nameLocation": "15578:14:116",
                "nodeType": "EnumValue",
                "src": "15578:14:116"
              },
              {
                "id": 37564,
                "name": "OtherError0x86",
                "nameLocation": "15594:14:116",
                "nodeType": "EnumValue",
                "src": "15594:14:116"
              },
              {
                "id": 37565,
                "name": "OtherError0x87",
                "nameLocation": "15620:14:116",
                "nodeType": "EnumValue",
                "src": "15620:14:116"
              },
              {
                "id": 37566,
                "name": "OtherError0x88",
                "nameLocation": "15636:14:116",
                "nodeType": "EnumValue",
                "src": "15636:14:116"
              },
              {
                "id": 37567,
                "name": "OtherError0x89",
                "nameLocation": "15652:14:116",
                "nodeType": "EnumValue",
                "src": "15652:14:116"
              },
              {
                "id": 37568,
                "name": "OtherError0x8A",
                "nameLocation": "15668:14:116",
                "nodeType": "EnumValue",
                "src": "15668:14:116"
              },
              {
                "id": 37569,
                "name": "OtherError0x8B",
                "nameLocation": "15684:14:116",
                "nodeType": "EnumValue",
                "src": "15684:14:116"
              },
              {
                "id": 37570,
                "name": "OtherError0x8C",
                "nameLocation": "15700:14:116",
                "nodeType": "EnumValue",
                "src": "15700:14:116"
              },
              {
                "id": 37571,
                "name": "OtherError0x8D",
                "nameLocation": "15716:14:116",
                "nodeType": "EnumValue",
                "src": "15716:14:116"
              },
              {
                "id": 37572,
                "name": "OtherError0x8E",
                "nameLocation": "15742:14:116",
                "nodeType": "EnumValue",
                "src": "15742:14:116"
              },
              {
                "id": 37573,
                "name": "OtherError0x8F",
                "nameLocation": "15758:14:116",
                "nodeType": "EnumValue",
                "src": "15758:14:116"
              },
              {
                "id": 37574,
                "name": "OtherError0x90",
                "nameLocation": "15774:14:116",
                "nodeType": "EnumValue",
                "src": "15774:14:116"
              },
              {
                "id": 37575,
                "name": "OtherError0x91",
                "nameLocation": "15790:14:116",
                "nodeType": "EnumValue",
                "src": "15790:14:116"
              },
              {
                "id": 37576,
                "name": "OtherError0x92",
                "nameLocation": "15806:14:116",
                "nodeType": "EnumValue",
                "src": "15806:14:116"
              },
              {
                "id": 37577,
                "name": "OtherError0x93",
                "nameLocation": "15822:14:116",
                "nodeType": "EnumValue",
                "src": "15822:14:116"
              },
              {
                "id": 37578,
                "name": "OtherError0x94",
                "nameLocation": "15838:14:116",
                "nodeType": "EnumValue",
                "src": "15838:14:116"
              },
              {
                "id": 37579,
                "name": "OtherError0x95",
                "nameLocation": "15864:14:116",
                "nodeType": "EnumValue",
                "src": "15864:14:116"
              },
              {
                "id": 37580,
                "name": "OtherError0x96",
                "nameLocation": "15880:14:116",
                "nodeType": "EnumValue",
                "src": "15880:14:116"
              },
              {
                "id": 37581,
                "name": "OtherError0x97",
                "nameLocation": "15896:14:116",
                "nodeType": "EnumValue",
                "src": "15896:14:116"
              },
              {
                "id": 37582,
                "name": "OtherError0x98",
                "nameLocation": "15912:14:116",
                "nodeType": "EnumValue",
                "src": "15912:14:116"
              },
              {
                "id": 37583,
                "name": "OtherError0x99",
                "nameLocation": "15928:14:116",
                "nodeType": "EnumValue",
                "src": "15928:14:116"
              },
              {
                "id": 37584,
                "name": "OtherError0x9A",
                "nameLocation": "15944:14:116",
                "nodeType": "EnumValue",
                "src": "15944:14:116"
              },
              {
                "id": 37585,
                "name": "OtherError0x9B",
                "nameLocation": "15960:14:116",
                "nodeType": "EnumValue",
                "src": "15960:14:116"
              },
              {
                "id": 37586,
                "name": "OtherError0x9C",
                "nameLocation": "15985:14:116",
                "nodeType": "EnumValue",
                "src": "15985:14:116"
              },
              {
                "id": 37587,
                "name": "OtherError0x9D",
                "nameLocation": "16001:14:116",
                "nodeType": "EnumValue",
                "src": "16001:14:116"
              },
              {
                "id": 37588,
                "name": "OtherError0x9E",
                "nameLocation": "16017:14:116",
                "nodeType": "EnumValue",
                "src": "16017:14:116"
              },
              {
                "id": 37589,
                "name": "OtherError0x9F",
                "nameLocation": "16033:14:116",
                "nodeType": "EnumValue",
                "src": "16033:14:116"
              },
              {
                "id": 37590,
                "name": "OtherError0xA0",
                "nameLocation": "16049:14:116",
                "nodeType": "EnumValue",
                "src": "16049:14:116"
              },
              {
                "id": 37591,
                "name": "OtherError0xA1",
                "nameLocation": "16065:14:116",
                "nodeType": "EnumValue",
                "src": "16065:14:116"
              },
              {
                "id": 37592,
                "name": "OtherError0xA2",
                "nameLocation": "16081:14:116",
                "nodeType": "EnumValue",
                "src": "16081:14:116"
              },
              {
                "id": 37593,
                "name": "OtherError0xA3",
                "nameLocation": "16107:14:116",
                "nodeType": "EnumValue",
                "src": "16107:14:116"
              },
              {
                "id": 37594,
                "name": "OtherError0xA4",
                "nameLocation": "16123:14:116",
                "nodeType": "EnumValue",
                "src": "16123:14:116"
              },
              {
                "id": 37595,
                "name": "OtherError0xA5",
                "nameLocation": "16139:14:116",
                "nodeType": "EnumValue",
                "src": "16139:14:116"
              },
              {
                "id": 37596,
                "name": "OtherError0xA6",
                "nameLocation": "16155:14:116",
                "nodeType": "EnumValue",
                "src": "16155:14:116"
              },
              {
                "id": 37597,
                "name": "OtherError0xA7",
                "nameLocation": "16171:14:116",
                "nodeType": "EnumValue",
                "src": "16171:14:116"
              },
              {
                "id": 37598,
                "name": "OtherError0xA8",
                "nameLocation": "16187:14:116",
                "nodeType": "EnumValue",
                "src": "16187:14:116"
              },
              {
                "id": 37599,
                "name": "OtherError0xA9",
                "nameLocation": "16203:14:116",
                "nodeType": "EnumValue",
                "src": "16203:14:116"
              },
              {
                "id": 37600,
                "name": "OtherError0xAA",
                "nameLocation": "16229:14:116",
                "nodeType": "EnumValue",
                "src": "16229:14:116"
              },
              {
                "id": 37601,
                "name": "OtherError0xAB",
                "nameLocation": "16245:14:116",
                "nodeType": "EnumValue",
                "src": "16245:14:116"
              },
              {
                "id": 37602,
                "name": "OtherError0xAC",
                "nameLocation": "16261:14:116",
                "nodeType": "EnumValue",
                "src": "16261:14:116"
              },
              {
                "id": 37603,
                "name": "OtherError0xAD",
                "nameLocation": "16277:14:116",
                "nodeType": "EnumValue",
                "src": "16277:14:116"
              },
              {
                "id": 37604,
                "name": "OtherError0xAE",
                "nameLocation": "16293:14:116",
                "nodeType": "EnumValue",
                "src": "16293:14:116"
              },
              {
                "id": 37605,
                "name": "OtherError0xAF",
                "nameLocation": "16309:14:116",
                "nodeType": "EnumValue",
                "src": "16309:14:116"
              },
              {
                "id": 37606,
                "name": "OtherError0xB0",
                "nameLocation": "16325:14:116",
                "nodeType": "EnumValue",
                "src": "16325:14:116"
              },
              {
                "id": 37607,
                "name": "OtherError0xB1",
                "nameLocation": "16350:14:116",
                "nodeType": "EnumValue",
                "src": "16350:14:116"
              },
              {
                "id": 37608,
                "name": "OtherError0xB2",
                "nameLocation": "16366:14:116",
                "nodeType": "EnumValue",
                "src": "16366:14:116"
              },
              {
                "id": 37609,
                "name": "OtherError0xB3",
                "nameLocation": "16382:14:116",
                "nodeType": "EnumValue",
                "src": "16382:14:116"
              },
              {
                "id": 37610,
                "name": "OtherError0xB4",
                "nameLocation": "16398:14:116",
                "nodeType": "EnumValue",
                "src": "16398:14:116"
              },
              {
                "id": 37611,
                "name": "OtherError0xB5",
                "nameLocation": "16414:14:116",
                "nodeType": "EnumValue",
                "src": "16414:14:116"
              },
              {
                "id": 37612,
                "name": "OtherError0xB6",
                "nameLocation": "16430:14:116",
                "nodeType": "EnumValue",
                "src": "16430:14:116"
              },
              {
                "id": 37613,
                "name": "OtherError0xB7",
                "nameLocation": "16446:14:116",
                "nodeType": "EnumValue",
                "src": "16446:14:116"
              },
              {
                "id": 37614,
                "name": "OtherError0xB8",
                "nameLocation": "16471:14:116",
                "nodeType": "EnumValue",
                "src": "16471:14:116"
              },
              {
                "id": 37615,
                "name": "OtherError0xB9",
                "nameLocation": "16487:14:116",
                "nodeType": "EnumValue",
                "src": "16487:14:116"
              },
              {
                "id": 37616,
                "name": "OtherError0xBA",
                "nameLocation": "16503:14:116",
                "nodeType": "EnumValue",
                "src": "16503:14:116"
              },
              {
                "id": 37617,
                "name": "OtherError0xBB",
                "nameLocation": "16519:14:116",
                "nodeType": "EnumValue",
                "src": "16519:14:116"
              },
              {
                "id": 37618,
                "name": "OtherError0xBC",
                "nameLocation": "16535:14:116",
                "nodeType": "EnumValue",
                "src": "16535:14:116"
              },
              {
                "id": 37619,
                "name": "OtherError0xBD",
                "nameLocation": "16551:14:116",
                "nodeType": "EnumValue",
                "src": "16551:14:116"
              },
              {
                "id": 37620,
                "name": "OtherError0xBE",
                "nameLocation": "16567:14:116",
                "nodeType": "EnumValue",
                "src": "16567:14:116"
              },
              {
                "id": 37621,
                "name": "OtherError0xBF",
                "nameLocation": "16592:14:116",
                "nodeType": "EnumValue",
                "src": "16592:14:116"
              },
              {
                "id": 37622,
                "name": "OtherError0xC0",
                "nameLocation": "16608:14:116",
                "nodeType": "EnumValue",
                "src": "16608:14:116"
              },
              {
                "id": 37623,
                "name": "OtherError0xC1",
                "nameLocation": "16624:14:116",
                "nodeType": "EnumValue",
                "src": "16624:14:116"
              },
              {
                "id": 37624,
                "name": "OtherError0xC2",
                "nameLocation": "16640:14:116",
                "nodeType": "EnumValue",
                "src": "16640:14:116"
              },
              {
                "id": 37625,
                "name": "OtherError0xC3",
                "nameLocation": "16656:14:116",
                "nodeType": "EnumValue",
                "src": "16656:14:116"
              },
              {
                "id": 37626,
                "name": "OtherError0xC4",
                "nameLocation": "16672:14:116",
                "nodeType": "EnumValue",
                "src": "16672:14:116"
              },
              {
                "id": 37627,
                "name": "OtherError0xC5",
                "nameLocation": "16688:14:116",
                "nodeType": "EnumValue",
                "src": "16688:14:116"
              },
              {
                "id": 37628,
                "name": "OtherError0xC6",
                "nameLocation": "16713:14:116",
                "nodeType": "EnumValue",
                "src": "16713:14:116"
              },
              {
                "id": 37629,
                "name": "OtherError0xC7",
                "nameLocation": "16729:14:116",
                "nodeType": "EnumValue",
                "src": "16729:14:116"
              },
              {
                "id": 37630,
                "name": "OtherError0xC8",
                "nameLocation": "16745:14:116",
                "nodeType": "EnumValue",
                "src": "16745:14:116"
              },
              {
                "id": 37631,
                "name": "OtherError0xC9",
                "nameLocation": "16761:14:116",
                "nodeType": "EnumValue",
                "src": "16761:14:116"
              },
              {
                "id": 37632,
                "name": "OtherError0xCA",
                "nameLocation": "16777:14:116",
                "nodeType": "EnumValue",
                "src": "16777:14:116"
              },
              {
                "id": 37633,
                "name": "OtherError0xCB",
                "nameLocation": "16793:14:116",
                "nodeType": "EnumValue",
                "src": "16793:14:116"
              },
              {
                "id": 37634,
                "name": "OtherError0xCC",
                "nameLocation": "16809:14:116",
                "nodeType": "EnumValue",
                "src": "16809:14:116"
              },
              {
                "id": 37635,
                "name": "OtherError0xCD",
                "nameLocation": "16834:14:116",
                "nodeType": "EnumValue",
                "src": "16834:14:116"
              },
              {
                "id": 37636,
                "name": "OtherError0xCE",
                "nameLocation": "16850:14:116",
                "nodeType": "EnumValue",
                "src": "16850:14:116"
              },
              {
                "id": 37637,
                "name": "OtherError0xCF",
                "nameLocation": "16866:14:116",
                "nodeType": "EnumValue",
                "src": "16866:14:116"
              },
              {
                "id": 37638,
                "name": "OtherError0xD0",
                "nameLocation": "16882:14:116",
                "nodeType": "EnumValue",
                "src": "16882:14:116"
              },
              {
                "id": 37639,
                "name": "OtherError0xD1",
                "nameLocation": "16898:14:116",
                "nodeType": "EnumValue",
                "src": "16898:14:116"
              },
              {
                "id": 37640,
                "name": "OtherError0xD2",
                "nameLocation": "16914:14:116",
                "nodeType": "EnumValue",
                "src": "16914:14:116"
              },
              {
                "id": 37641,
                "name": "OtherError0xD3",
                "nameLocation": "16930:14:116",
                "nodeType": "EnumValue",
                "src": "16930:14:116"
              },
              {
                "id": 37642,
                "name": "OtherError0xD4",
                "nameLocation": "16955:14:116",
                "nodeType": "EnumValue",
                "src": "16955:14:116"
              },
              {
                "id": 37643,
                "name": "OtherError0xD5",
                "nameLocation": "16971:14:116",
                "nodeType": "EnumValue",
                "src": "16971:14:116"
              },
              {
                "id": 37644,
                "name": "OtherError0xD6",
                "nameLocation": "16987:14:116",
                "nodeType": "EnumValue",
                "src": "16987:14:116"
              },
              {
                "id": 37645,
                "name": "OtherError0xD7",
                "nameLocation": "17003:14:116",
                "nodeType": "EnumValue",
                "src": "17003:14:116"
              },
              {
                "id": 37646,
                "name": "OtherError0xD8",
                "nameLocation": "17019:14:116",
                "nodeType": "EnumValue",
                "src": "17019:14:116"
              },
              {
                "id": 37647,
                "name": "OtherError0xD9",
                "nameLocation": "17035:14:116",
                "nodeType": "EnumValue",
                "src": "17035:14:116"
              },
              {
                "id": 37648,
                "name": "OtherError0xDA",
                "nameLocation": "17051:14:116",
                "nodeType": "EnumValue",
                "src": "17051:14:116"
              },
              {
                "id": 37649,
                "name": "OtherError0xDB",
                "nameLocation": "17076:14:116",
                "nodeType": "EnumValue",
                "src": "17076:14:116"
              },
              {
                "id": 37650,
                "name": "OtherError0xDC",
                "nameLocation": "17092:14:116",
                "nodeType": "EnumValue",
                "src": "17092:14:116"
              },
              {
                "id": 37651,
                "name": "OtherError0xDD",
                "nameLocation": "17108:14:116",
                "nodeType": "EnumValue",
                "src": "17108:14:116"
              },
              {
                "id": 37652,
                "name": "OtherError0xDE",
                "nameLocation": "17124:14:116",
                "nodeType": "EnumValue",
                "src": "17124:14:116"
              },
              {
                "id": 37653,
                "name": "OtherError0xDF",
                "nameLocation": "17140:14:116",
                "nodeType": "EnumValue",
                "src": "17140:14:116"
              },
              {
                "documentation": {
                  "id": 37654,
                  "nodeType": "StructuredDocumentation",
                  "src": "17589:84:116",
                  "text": "0xE0: Requests that cannot be parsed must always get this error as their result."
                },
                "id": 37655,
                "name": "BridgeMalformedDataRequest",
                "nameLocation": "17683:26:116",
                "nodeType": "EnumValue",
                "src": "17683:26:116"
              },
              {
                "documentation": {
                  "id": 37656,
                  "nodeType": "StructuredDocumentation",
                  "src": "17730:31:116",
                  "text": "0xE1: Witnesses exceeds 100"
                },
                "id": 37657,
                "name": "BridgePoorIncentives",
                "nameLocation": "17771:20:116",
                "nodeType": "EnumValue",
                "src": "17771:20:116"
              },
              {
                "documentation": {
                  "id": 37658,
                  "nodeType": "StructuredDocumentation",
                  "src": "17812:208:116",
                  "text": "0xE2: The request is rejected on the grounds that it may cause the submitter to spend or stake an\n amount of value that is unjustifiably high when compared with the reward they will be getting"
                },
                "id": 37659,
                "name": "BridgeOversizedTallyResult",
                "nameLocation": "18030:26:116",
                "nodeType": "EnumValue",
                "src": "18030:26:116"
              },
              {
                "documentation": {
                  "id": 37660,
                  "nodeType": "StructuredDocumentation",
                  "src": "18077:16:116",
                  "text": "Unallocated:"
                },
                "id": 37661,
                "name": "OtherError0xE3",
                "nameLocation": "18103:14:116",
                "nodeType": "EnumValue",
                "src": "18103:14:116"
              },
              {
                "id": 37662,
                "name": "OtherError0xE4",
                "nameLocation": "18119:14:116",
                "nodeType": "EnumValue",
                "src": "18119:14:116"
              },
              {
                "id": 37663,
                "name": "OtherError0xE5",
                "nameLocation": "18135:14:116",
                "nodeType": "EnumValue",
                "src": "18135:14:116"
              },
              {
                "id": 37664,
                "name": "OtherError0xE6",
                "nameLocation": "18151:14:116",
                "nodeType": "EnumValue",
                "src": "18151:14:116"
              },
              {
                "id": 37665,
                "name": "OtherError0xE7",
                "nameLocation": "18167:14:116",
                "nodeType": "EnumValue",
                "src": "18167:14:116"
              },
              {
                "id": 37666,
                "name": "OtherError0xE8",
                "nameLocation": "18183:14:116",
                "nodeType": "EnumValue",
                "src": "18183:14:116"
              },
              {
                "id": 37667,
                "name": "OtherError0xE9",
                "nameLocation": "18199:14:116",
                "nodeType": "EnumValue",
                "src": "18199:14:116"
              },
              {
                "id": 37668,
                "name": "OtherError0xEA",
                "nameLocation": "18224:14:116",
                "nodeType": "EnumValue",
                "src": "18224:14:116"
              },
              {
                "id": 37669,
                "name": "OtherError0xEB",
                "nameLocation": "18240:14:116",
                "nodeType": "EnumValue",
                "src": "18240:14:116"
              },
              {
                "id": 37670,
                "name": "OtherError0xEC",
                "nameLocation": "18256:14:116",
                "nodeType": "EnumValue",
                "src": "18256:14:116"
              },
              {
                "id": 37671,
                "name": "OtherError0xED",
                "nameLocation": "18272:14:116",
                "nodeType": "EnumValue",
                "src": "18272:14:116"
              },
              {
                "id": 37672,
                "name": "OtherError0xEE",
                "nameLocation": "18288:14:116",
                "nodeType": "EnumValue",
                "src": "18288:14:116"
              },
              {
                "id": 37673,
                "name": "OtherError0xEF",
                "nameLocation": "18304:14:116",
                "nodeType": "EnumValue",
                "src": "18304:14:116"
              },
              {
                "documentation": {
                  "id": 37674,
                  "nodeType": "StructuredDocumentation",
                  "src": "18618:10:116",
                  "text": "0xF0: "
                },
                "id": 37675,
                "name": "BoardAwaitingResult",
                "nameLocation": "18638:19:116",
                "nodeType": "EnumValue",
                "src": "18638:19:116"
              },
              {
                "documentation": {
                  "id": 37676,
                  "nodeType": "StructuredDocumentation",
                  "src": "18670:9:116",
                  "text": "0xF1:"
                },
                "id": 37677,
                "name": "BoardFinalizingResult",
                "nameLocation": "18689:21:116",
                "nodeType": "EnumValue",
                "src": "18689:21:116"
              },
              {
                "documentation": {
                  "id": 37678,
                  "nodeType": "StructuredDocumentation",
                  "src": "18723:9:116",
                  "text": "0xF2:"
                },
                "id": 37679,
                "name": "BoardBeingDisputed",
                "nameLocation": "18742:18:116",
                "nodeType": "EnumValue",
                "src": "18742:18:116"
              },
              {
                "documentation": {
                  "id": 37680,
                  "nodeType": "StructuredDocumentation",
                  "src": "18773:15:116",
                  "text": "Unallocated"
                },
                "id": 37681,
                "name": "OtherError0xF3",
                "nameLocation": "18798:14:116",
                "nodeType": "EnumValue",
                "src": "18798:14:116"
              },
              {
                "id": 37682,
                "name": "OtherError0xF4",
                "nameLocation": "18814:14:116",
                "nodeType": "EnumValue",
                "src": "18814:14:116"
              },
              {
                "id": 37683,
                "name": "OtherError0xF5",
                "nameLocation": "18830:14:116",
                "nodeType": "EnumValue",
                "src": "18830:14:116"
              },
              {
                "id": 37684,
                "name": "OtherError0xF6",
                "nameLocation": "18846:14:116",
                "nodeType": "EnumValue",
                "src": "18846:14:116"
              },
              {
                "id": 37685,
                "name": "OtherError0xF7",
                "nameLocation": "18862:14:116",
                "nodeType": "EnumValue",
                "src": "18862:14:116"
              },
              {
                "documentation": {
                  "id": 37686,
                  "nodeType": "StructuredDocumentation",
                  "src": "19159:9:116",
                  "text": "0xF8:"
                },
                "id": 37687,
                "name": "BoardAlreadyDelivered",
                "nameLocation": "19178:21:116",
                "nodeType": "EnumValue",
                "src": "19178:21:116"
              },
              {
                "documentation": {
                  "id": 37688,
                  "nodeType": "StructuredDocumentation",
                  "src": "19212:9:116",
                  "text": "0xF9:"
                },
                "id": 37689,
                "name": "BoardResolutionTimeout",
                "nameLocation": "19231:22:116",
                "nodeType": "EnumValue",
                "src": "19231:22:116"
              },
              {
                "documentation": {
                  "id": 37690,
                  "nodeType": "StructuredDocumentation",
                  "src": "19266:16:116",
                  "text": "Unallocated:"
                },
                "id": 37691,
                "name": "OtherError0xFA",
                "nameLocation": "19292:14:116",
                "nodeType": "EnumValue",
                "src": "19292:14:116"
              },
              {
                "id": 37692,
                "name": "OtherError0xFB",
                "nameLocation": "19308:14:116",
                "nodeType": "EnumValue",
                "src": "19308:14:116"
              },
              {
                "id": 37693,
                "name": "OtherError0xFC",
                "nameLocation": "19324:14:116",
                "nodeType": "EnumValue",
                "src": "19324:14:116"
              },
              {
                "id": 37694,
                "name": "OtherError0xFD",
                "nameLocation": "19340:14:116",
                "nodeType": "EnumValue",
                "src": "19340:14:116"
              },
              {
                "id": 37695,
                "name": "OtherError0xFE",
                "nameLocation": "19356:14:116",
                "nodeType": "EnumValue",
                "src": "19356:14:116"
              },
              {
                "documentation": {
                  "id": 37696,
                  "nodeType": "StructuredDocumentation",
                  "src": "19530:69:116",
                  "text": "0xFF: Some tally error is not intercepted but it should (0+ args)"
                },
                "id": 37697,
                "name": "UnhandledIntercept",
                "nameLocation": "19609:18:116",
                "nodeType": "EnumValue",
                "src": "19609:18:116"
              }
            ],
            "name": "ResultStatus",
            "nameLocation": "6019:12:116",
            "nodeType": "EnumDefinition",
            "src": "6014:13620:116"
          },
          {
            "canonicalName": "Witnet.RadonDataTypes",
            "documentation": {
              "id": 37699,
              "nodeType": "StructuredDocumentation",
              "src": "19642:111:116",
              "text": "Possible types either processed by Witnet Radon Scripts or included within results to Witnet Data Requests."
            },
            "id": 37720,
            "members": [
              {
                "id": 37700,
                "name": "Any",
                "nameLocation": "19801:3:116",
                "nodeType": "EnumValue",
                "src": "19801:3:116"
              },
              {
                "id": 37701,
                "name": "Array",
                "nameLocation": "19827:5:116",
                "nodeType": "EnumValue",
                "src": "19827:5:116"
              },
              {
                "id": 37702,
                "name": "Bool",
                "nameLocation": "19854:4:116",
                "nodeType": "EnumValue",
                "src": "19854:4:116"
              },
              {
                "id": 37703,
                "name": "Bytes",
                "nameLocation": "19880:5:116",
                "nodeType": "EnumValue",
                "src": "19880:5:116"
              },
              {
                "id": 37704,
                "name": "Integer",
                "nameLocation": "19907:7:116",
                "nodeType": "EnumValue",
                "src": "19907:7:116"
              },
              {
                "id": 37705,
                "name": "Float",
                "nameLocation": "19936:5:116",
                "nodeType": "EnumValue",
                "src": "19936:5:116"
              },
              {
                "id": 37706,
                "name": "Map",
                "nameLocation": "19963:3:116",
                "nodeType": "EnumValue",
                "src": "19963:3:116"
              },
              {
                "id": 37707,
                "name": "String",
                "nameLocation": "19988:6:116",
                "nodeType": "EnumValue",
                "src": "19988:6:116"
              },
              {
                "id": 37708,
                "name": "Unused0x08",
                "nameLocation": "20005:10:116",
                "nodeType": "EnumValue",
                "src": "20005:10:116"
              },
              {
                "id": 37709,
                "name": "Unused0x09",
                "nameLocation": "20017:10:116",
                "nodeType": "EnumValue",
                "src": "20017:10:116"
              },
              {
                "id": 37710,
                "name": "Unused0x0A",
                "nameLocation": "20029:10:116",
                "nodeType": "EnumValue",
                "src": "20029:10:116"
              },
              {
                "id": 37711,
                "name": "Unused0x0B",
                "nameLocation": "20041:10:116",
                "nodeType": "EnumValue",
                "src": "20041:10:116"
              },
              {
                "id": 37712,
                "name": "Unused0x0C",
                "nameLocation": "20062:10:116",
                "nodeType": "EnumValue",
                "src": "20062:10:116"
              },
              {
                "id": 37713,
                "name": "Unused0x0D",
                "nameLocation": "20074:10:116",
                "nodeType": "EnumValue",
                "src": "20074:10:116"
              },
              {
                "id": 37714,
                "name": "Unused0x0E",
                "nameLocation": "20086:10:116",
                "nodeType": "EnumValue",
                "src": "20086:10:116"
              },
              {
                "id": 37715,
                "name": "Unused0x0F",
                "nameLocation": "20098:10:116",
                "nodeType": "EnumValue",
                "src": "20098:10:116"
              },
              {
                "id": 37716,
                "name": "Same",
                "nameLocation": "20130:4:116",
                "nodeType": "EnumValue",
                "src": "20130:4:116"
              },
              {
                "id": 37717,
                "name": "Inner",
                "nameLocation": "20156:5:116",
                "nodeType": "EnumValue",
                "src": "20156:5:116"
              },
              {
                "id": 37718,
                "name": "Match",
                "nameLocation": "20183:5:116",
                "nodeType": "EnumValue",
                "src": "20183:5:116"
              },
              {
                "id": 37719,
                "name": "Subscript",
                "nameLocation": "20210:9:116",
                "nodeType": "EnumValue",
                "src": "20210:9:116"
              }
            ],
            "name": "RadonDataTypes",
            "nameLocation": "19764:14:116",
            "nodeType": "EnumDefinition",
            "src": "19759:467:116"
          },
          {
            "canonicalName": "Witnet.RadonFilter",
            "documentation": {
              "id": 37721,
              "nodeType": "StructuredDocumentation",
              "src": "20234:160:116",
              "text": "Structure defining some data filtering that can be applied at the Aggregation or the Tally stages\n within a Witnet Data Request resolution workflow."
            },
            "id": 37727,
            "members": [
              {
                "constant": false,
                "id": 37724,
                "mutability": "mutable",
                "name": "opcode",
                "nameLocation": "20449:6:116",
                "nodeType": "VariableDeclaration",
                "scope": 37727,
                "src": "20430:25:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_RadonFilterOpcodes_$37739",
                  "typeString": "enum Witnet.RadonFilterOpcodes"
                },
                "typeName": {
                  "id": 37723,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37722,
                    "name": "RadonFilterOpcodes",
                    "nameLocations": [
                      "20430:18:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37739,
                    "src": "20430:18:116"
                  },
                  "referencedDeclaration": 37739,
                  "src": "20430:18:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonFilterOpcodes_$37739",
                    "typeString": "enum Witnet.RadonFilterOpcodes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37726,
                "mutability": "mutable",
                "name": "cborArgs",
                "nameLocation": "20472:8:116",
                "nodeType": "VariableDeclaration",
                "scope": 37727,
                "src": "20466:14:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 37725,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "20466:5:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RadonFilter",
            "nameLocation": "20407:11:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "20400:88:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.RadonFilterOpcodes",
            "documentation": {
              "id": 37728,
              "nodeType": "StructuredDocumentation",
              "src": "20496:68:116",
              "text": "Filtering methods currently supported on the Witnet blockchain. "
            },
            "id": 37739,
            "members": [
              {
                "id": 37729,
                "name": "Reserved0x00",
                "nameLocation": "20616:12:116",
                "nodeType": "EnumValue",
                "src": "20616:12:116"
              },
              {
                "id": 37730,
                "name": "Reserved0x01",
                "nameLocation": "20665:12:116",
                "nodeType": "EnumValue",
                "src": "20665:12:116"
              },
              {
                "id": 37731,
                "name": "Reserved0x02",
                "nameLocation": "20711:12:116",
                "nodeType": "EnumValue",
                "src": "20711:12:116"
              },
              {
                "id": 37732,
                "name": "Reserved0x03",
                "nameLocation": "20755:12:116",
                "nodeType": "EnumValue",
                "src": "20755:12:116"
              },
              {
                "id": 37733,
                "name": "Reserved0x04",
                "nameLocation": "20810:12:116",
                "nodeType": "EnumValue",
                "src": "20810:12:116"
              },
              {
                "id": 37734,
                "name": "StandardDeviation",
                "nameLocation": "20864:17:116",
                "nodeType": "EnumValue",
                "src": "20864:17:116"
              },
              {
                "id": 37735,
                "name": "Reserved0x06",
                "nameLocation": "20903:12:116",
                "nodeType": "EnumValue",
                "src": "20903:12:116"
              },
              {
                "id": 37736,
                "name": "Reserved0x07",
                "nameLocation": "20944:12:116",
                "nodeType": "EnumValue",
                "src": "20944:12:116"
              },
              {
                "id": 37737,
                "name": "Mode",
                "nameLocation": "20988:4:116",
                "nodeType": "EnumValue",
                "src": "20988:4:116"
              },
              {
                "id": 37738,
                "name": "Reserved0x09",
                "nameLocation": "21014:12:116",
                "nodeType": "EnumValue",
                "src": "21014:12:116"
              }
            ],
            "name": "RadonFilterOpcodes",
            "nameLocation": "20575:18:116",
            "nodeType": "EnumDefinition",
            "src": "20570:482:116"
          },
          {
            "canonicalName": "Witnet.RadonReducer",
            "documentation": {
              "id": 37740,
              "nodeType": "StructuredDocumentation",
              "src": "21060:185:116",
              "text": "Structure defining the array of filters and reducting function to be applied at either the Aggregation\n or the Tally stages within a Witnet Data Request resolution workflow."
            },
            "id": 37748,
            "members": [
              {
                "constant": false,
                "id": 37743,
                "mutability": "mutable",
                "name": "opcode",
                "nameLocation": "21301:6:116",
                "nodeType": "VariableDeclaration",
                "scope": 37748,
                "src": "21282:25:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_RadonReduceOpcodes_$37762",
                  "typeString": "enum Witnet.RadonReduceOpcodes"
                },
                "typeName": {
                  "id": 37742,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37741,
                    "name": "RadonReduceOpcodes",
                    "nameLocations": [
                      "21282:18:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37762,
                    "src": "21282:18:116"
                  },
                  "referencedDeclaration": 37762,
                  "src": "21282:18:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonReduceOpcodes_$37762",
                    "typeString": "enum Witnet.RadonReduceOpcodes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37747,
                "mutability": "mutable",
                "name": "filters",
                "nameLocation": "21332:7:116",
                "nodeType": "VariableDeclaration",
                "scope": 37748,
                "src": "21318:21:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_RadonFilter_$37727_storage_$dyn_storage_ptr",
                  "typeString": "struct Witnet.RadonFilter[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 37745,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37744,
                      "name": "RadonFilter",
                      "nameLocations": [
                        "21318:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37727,
                      "src": "21318:11:116"
                    },
                    "referencedDeclaration": 37727,
                    "src": "21318:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonFilter_$37727_storage_ptr",
                      "typeString": "struct Witnet.RadonFilter"
                    }
                  },
                  "id": 37746,
                  "nodeType": "ArrayTypeName",
                  "src": "21318:13:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_RadonFilter_$37727_storage_$dyn_storage_ptr",
                    "typeString": "struct Witnet.RadonFilter[]"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RadonReducer",
            "nameLocation": "21258:12:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "21251:96:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.RadonReduceOpcodes",
            "documentation": {
              "id": 37749,
              "nodeType": "StructuredDocumentation",
              "src": "21355:69:116",
              "text": "Reducting functions currently supported on the Witnet blockchain."
            },
            "id": 37762,
            "members": [
              {
                "id": 37750,
                "name": "Reserved0x00",
                "nameLocation": "21476:12:116",
                "nodeType": "EnumValue",
                "src": "21476:12:116"
              },
              {
                "id": 37751,
                "name": "Reserved0x01",
                "nameLocation": "21521:12:116",
                "nodeType": "EnumValue",
                "src": "21521:12:116"
              },
              {
                "id": 37752,
                "name": "Mode",
                "nameLocation": "21566:4:116",
                "nodeType": "EnumValue",
                "src": "21566:4:116"
              },
              {
                "id": 37753,
                "name": "AverageMean",
                "nameLocation": "21592:11:116",
                "nodeType": "EnumValue",
                "src": "21592:11:116"
              },
              {
                "id": 37754,
                "name": "Reserved0x04",
                "nameLocation": "21625:12:116",
                "nodeType": "EnumValue",
                "src": "21625:12:116"
              },
              {
                "id": 37755,
                "name": "AverageMedian",
                "nameLocation": "21682:13:116",
                "nodeType": "EnumValue",
                "src": "21682:13:116"
              },
              {
                "id": 37756,
                "name": "Reserved0x06",
                "nameLocation": "21717:12:116",
                "nodeType": "EnumValue",
                "src": "21717:12:116"
              },
              {
                "id": 37757,
                "name": "StandardDeviation",
                "nameLocation": "21776:17:116",
                "nodeType": "EnumValue",
                "src": "21776:17:116"
              },
              {
                "id": 37758,
                "name": "Reserved0x08",
                "nameLocation": "21815:12:116",
                "nodeType": "EnumValue",
                "src": "21815:12:116"
              },
              {
                "id": 37759,
                "name": "Reserved0x09",
                "nameLocation": "21869:12:116",
                "nodeType": "EnumValue",
                "src": "21869:12:116"
              },
              {
                "id": 37760,
                "name": "Reserved0x10",
                "nameLocation": "21922:12:116",
                "nodeType": "EnumValue",
                "src": "21922:12:116"
              },
              {
                "id": 37761,
                "name": "ConcatenateAndHash",
                "nameLocation": "21976:18:116",
                "nodeType": "EnumValue",
                "src": "21976:18:116"
              }
            ],
            "name": "RadonReduceOpcodes",
            "nameLocation": "21435:18:116",
            "nodeType": "EnumDefinition",
            "src": "21430:571:116"
          },
          {
            "canonicalName": "Witnet.RadonRequest",
            "documentation": {
              "id": 37763,
              "nodeType": "StructuredDocumentation",
              "src": "22013:100:116",
              "text": "Structure containing the Retrieve-Attestation-Delivery parts of a Witnet-compliant Data Request."
            },
            "id": 37774,
            "members": [
              {
                "constant": false,
                "id": 37767,
                "mutability": "mutable",
                "name": "retrieve",
                "nameLocation": "22167:8:116",
                "nodeType": "VariableDeclaration",
                "scope": 37774,
                "src": "22150:25:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_RadonRetrieval_$37795_storage_$dyn_storage_ptr",
                  "typeString": "struct Witnet.RadonRetrieval[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 37765,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37764,
                      "name": "RadonRetrieval",
                      "nameLocations": [
                        "22150:14:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37795,
                      "src": "22150:14:116"
                    },
                    "referencedDeclaration": 37795,
                    "src": "22150:14:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonRetrieval_$37795_storage_ptr",
                      "typeString": "struct Witnet.RadonRetrieval"
                    }
                  },
                  "id": 37766,
                  "nodeType": "ArrayTypeName",
                  "src": "22150:16:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_RadonRetrieval_$37795_storage_$dyn_storage_ptr",
                    "typeString": "struct Witnet.RadonRetrieval[]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37770,
                "mutability": "mutable",
                "name": "aggregate",
                "nameLocation": "22199:9:116",
                "nodeType": "VariableDeclaration",
                "scope": 37774,
                "src": "22186:22:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_RadonReducer_$37748_storage_ptr",
                  "typeString": "struct Witnet.RadonReducer"
                },
                "typeName": {
                  "id": 37769,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37768,
                    "name": "RadonReducer",
                    "nameLocations": [
                      "22186:12:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37748,
                    "src": "22186:12:116"
                  },
                  "referencedDeclaration": 37748,
                  "src": "22186:12:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonReducer_$37748_storage_ptr",
                    "typeString": "struct Witnet.RadonReducer"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37773,
                "mutability": "mutable",
                "name": "tally",
                "nameLocation": "22232:5:116",
                "nodeType": "VariableDeclaration",
                "scope": 37774,
                "src": "22219:18:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_RadonReducer_$37748_storage_ptr",
                  "typeString": "struct Witnet.RadonReducer"
                },
                "typeName": {
                  "id": 37772,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37771,
                    "name": "RadonReducer",
                    "nameLocations": [
                      "22219:12:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37748,
                    "src": "22219:12:116"
                  },
                  "referencedDeclaration": 37748,
                  "src": "22219:12:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonReducer_$37748_storage_ptr",
                    "typeString": "struct Witnet.RadonReducer"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RadonRequest",
            "nameLocation": "22126:12:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "22119:126:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.RadonRetrieval",
            "documentation": {
              "id": 37775,
              "nodeType": "StructuredDocumentation",
              "src": "22253:118:116",
              "text": "Structure containing all the parameters that fully describe a Witnet Radon Retrieval within a Witnet Data Request."
            },
            "id": 37795,
            "members": [
              {
                "constant": false,
                "id": 37777,
                "mutability": "mutable",
                "name": "argsCount",
                "nameLocation": "22416:9:116",
                "nodeType": "VariableDeclaration",
                "scope": 37795,
                "src": "22410:15:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 37776,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "22410:5:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37780,
                "mutability": "mutable",
                "name": "method",
                "nameLocation": "22458:6:116",
                "nodeType": "VariableDeclaration",
                "scope": 37795,
                "src": "22436:28:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_RadonRetrievalMethods_$37802",
                  "typeString": "enum Witnet.RadonRetrievalMethods"
                },
                "typeName": {
                  "id": 37779,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37778,
                    "name": "RadonRetrievalMethods",
                    "nameLocations": [
                      "22436:21:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37802,
                    "src": "22436:21:116"
                  },
                  "referencedDeclaration": 37802,
                  "src": "22436:21:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonRetrievalMethods_$37802",
                    "typeString": "enum Witnet.RadonRetrievalMethods"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37783,
                "mutability": "mutable",
                "name": "dataType",
                "nameLocation": "22490:8:116",
                "nodeType": "VariableDeclaration",
                "scope": 37795,
                "src": "22475:23:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                  "typeString": "enum Witnet.RadonDataTypes"
                },
                "typeName": {
                  "id": 37782,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 37781,
                    "name": "RadonDataTypes",
                    "nameLocations": [
                      "22475:14:116"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37720,
                    "src": "22475:14:116"
                  },
                  "referencedDeclaration": 37720,
                  "src": "22475:14:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                    "typeString": "enum Witnet.RadonDataTypes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37785,
                "mutability": "mutable",
                "name": "url",
                "nameLocation": "22516:3:116",
                "nodeType": "VariableDeclaration",
                "scope": 37795,
                "src": "22509:10:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 37784,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "22509:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37787,
                "mutability": "mutable",
                "name": "body",
                "nameLocation": "22537:4:116",
                "nodeType": "VariableDeclaration",
                "scope": 37795,
                "src": "22530:11:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 37786,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "22530:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37792,
                "mutability": "mutable",
                "name": "headers",
                "nameLocation": "22564:7:116",
                "nodeType": "VariableDeclaration",
                "scope": 37795,
                "src": "22552:19:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr",
                  "typeString": "string[2][]"
                },
                "typeName": {
                  "baseType": {
                    "baseType": {
                      "id": 37788,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "22552:6:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 37790,
                    "length": {
                      "hexValue": "32",
                      "id": 37789,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "22559:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_2_by_1",
                        "typeString": "int_const 2"
                      },
                      "value": "2"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "22552:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr",
                      "typeString": "string[2]"
                    }
                  },
                  "id": 37791,
                  "nodeType": "ArrayTypeName",
                  "src": "22552:11:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr",
                    "typeString": "string[2][]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37794,
                "mutability": "mutable",
                "name": "radonScript",
                "nameLocation": "22588:11:116",
                "nodeType": "VariableDeclaration",
                "scope": 37795,
                "src": "22582:17:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 37793,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "22582:5:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RadonRetrieval",
            "nameLocation": "22384:14:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "22377:230:116",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.RadonRetrievalMethods",
            "documentation": {
              "id": 37796,
              "nodeType": "StructuredDocumentation",
              "src": "22615:80:116",
              "text": "Possible Radon retrieval methods that can be used within a Radon Retrieval. "
            },
            "id": 37802,
            "members": [
              {
                "id": 37797,
                "name": "Unknown",
                "nameLocation": "22747:7:116",
                "nodeType": "EnumValue",
                "src": "22747:7:116"
              },
              {
                "id": 37798,
                "name": "HttpGet",
                "nameLocation": "22773:7:116",
                "nodeType": "EnumValue",
                "src": "22773:7:116"
              },
              {
                "id": 37799,
                "name": "RNG",
                "nameLocation": "22799:3:116",
                "nodeType": "EnumValue",
                "src": "22799:3:116"
              },
              {
                "id": 37800,
                "name": "HttpPost",
                "nameLocation": "22821:8:116",
                "nodeType": "EnumValue",
                "src": "22821:8:116"
              },
              {
                "id": 37801,
                "name": "HttpHead",
                "nameLocation": "22848:8:116",
                "nodeType": "EnumValue",
                "src": "22848:8:116"
              }
            ],
            "name": "RadonRetrievalMethods",
            "nameLocation": "22706:21:116",
            "nodeType": "EnumDefinition",
            "src": "22701:162:116"
          },
          {
            "canonicalName": "Witnet.RadonSLAv1",
            "documentation": {
              "id": 37803,
              "nodeType": "StructuredDocumentation",
              "src": "22871:99:116",
              "text": "Structure containing all possible SLA security parameters of a Witnet-compliant Data Request."
            },
            "id": 37814,
            "members": [
              {
                "constant": false,
                "id": 37805,
                "mutability": "mutable",
                "name": "numWitnesses",
                "nameLocation": "23011:12:116",
                "nodeType": "VariableDeclaration",
                "scope": 37814,
                "src": "23005:18:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 37804,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "23005:5:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37807,
                "mutability": "mutable",
                "name": "minConsensusPercentage",
                "nameLocation": "23040:22:116",
                "nodeType": "VariableDeclaration",
                "scope": 37814,
                "src": "23034:28:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 37806,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "23034:5:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37809,
                "mutability": "mutable",
                "name": "witnessReward",
                "nameLocation": "23080:13:116",
                "nodeType": "VariableDeclaration",
                "scope": 37814,
                "src": "23073:20:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 37808,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "23073:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37811,
                "mutability": "mutable",
                "name": "witnessCollateral",
                "nameLocation": "23111:17:116",
                "nodeType": "VariableDeclaration",
                "scope": 37814,
                "src": "23104:24:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 37810,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "23104:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37813,
                "mutability": "mutable",
                "name": "minerCommitRevealFee",
                "nameLocation": "23146:20:116",
                "nodeType": "VariableDeclaration",
                "scope": 37814,
                "src": "23139:27:116",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 37812,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "23139:6:116",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RadonSLAv1",
            "nameLocation": "22983:10:116",
            "nodeType": "StructDefinition",
            "scope": 40741,
            "src": "22976:198:116",
            "visibility": "public"
          },
          {
            "body": {
              "id": 37836,
              "nodeType": "Block",
              "src": "23411:64:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bytes20",
                      "typeString": "bytes20"
                    },
                    "id": 37834,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 37828,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37818,
                          "src": "23444:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                            "typeString": "Witnet.Address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                            "typeString": "Witnet.Address"
                          }
                        ],
                        "expression": {
                          "id": 37826,
                          "name": "Address",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37143,
                          "src": "23429:7:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Address_$37143_$",
                            "typeString": "type(Witnet.Address)"
                          }
                        },
                        "id": 37827,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "23437:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "23429:14:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Address_$37143_$returns$_t_bytes20_$",
                          "typeString": "function (Witnet.Address) pure returns (bytes20)"
                        }
                      },
                      "id": 37829,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "23429:17:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes20",
                        "typeString": "bytes20"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 37832,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37821,
                          "src": "23465:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                            "typeString": "Witnet.Address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                            "typeString": "Witnet.Address"
                          }
                        ],
                        "expression": {
                          "id": 37830,
                          "name": "Address",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37143,
                          "src": "23450:7:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Address_$37143_$",
                            "typeString": "type(Witnet.Address)"
                          }
                        },
                        "id": 37831,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "23458:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "23450:14:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Address_$37143_$returns$_t_bytes20_$",
                          "typeString": "function (Witnet.Address) pure returns (bytes20)"
                        }
                      },
                      "id": 37833,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "23450:17:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes20",
                        "typeString": "bytes20"
                      }
                    },
                    "src": "23429:38:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 37825,
                  "id": 37835,
                  "nodeType": "Return",
                  "src": "23422:45:116"
                }
              ]
            },
            "documentation": {
              "id": 37815,
              "nodeType": "StructuredDocumentation",
              "src": "23184:158:116",
              "text": "=======================================================================\n --- Witnet.Address helper functions -----------------------------------"
            },
            "id": 37837,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "eq",
            "nameLocation": "23357:2:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 37822,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37818,
                  "mutability": "mutable",
                  "name": "a",
                  "nameLocation": "23368:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 37837,
                  "src": "23360:9:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                    "typeString": "Witnet.Address"
                  },
                  "typeName": {
                    "id": 37817,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37816,
                      "name": "Address",
                      "nameLocations": [
                        "23360:7:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37143,
                      "src": "23360:7:116"
                    },
                    "referencedDeclaration": 37143,
                    "src": "23360:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                      "typeString": "Witnet.Address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 37821,
                  "mutability": "mutable",
                  "name": "b",
                  "nameLocation": "23379:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 37837,
                  "src": "23371:9:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                    "typeString": "Witnet.Address"
                  },
                  "typeName": {
                    "id": 37820,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37819,
                      "name": "Address",
                      "nameLocations": [
                        "23371:7:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37143,
                      "src": "23371:7:116"
                    },
                    "referencedDeclaration": 37143,
                    "src": "23371:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                      "typeString": "Witnet.Address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23359:22:116"
            },
            "returnParameters": {
              "id": 37825,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37824,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 37837,
                  "src": "23405:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 37823,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "23405:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23404:6:116"
            },
            "scope": 40741,
            "src": "23348:127:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 37877,
              "nodeType": "Block",
              "src": "23568:183:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 37858,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 37850,
                                "name": "pkh",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37839,
                                "src": "23593:3:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "id": 37849,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "23587:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": {
                                "id": 37848,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "23587:5:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 37851,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "23587:10:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 37852,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "23598:6:116",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "23587:17:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "components": [
                            {
                              "condition": {
                                "id": 37853,
                                "name": "mainnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37841,
                                "src": "23609:7:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseExpression": {
                                "hexValue": "3433",
                                "id": 37855,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "23624:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_43_by_1",
                                  "typeString": "int_const 43"
                                },
                                "value": "43"
                              },
                              "id": 37856,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "Conditional",
                              "src": "23609:17:116",
                              "trueExpression": {
                                "hexValue": "3432",
                                "id": 37854,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "23619:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_42_by_1",
                                  "typeString": "int_const 42"
                                },
                                "value": "42"
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "id": 37857,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "23608:19:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "src": "23587:40:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4265636833323a20696e76616c6964206c656e677468",
                        "id": 37859,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23629:24:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_804d16c791056572535f8e2036ddf984da7d771fd478e9d9544d867a673dae25",
                          "typeString": "literal_string \"Bech32: invalid length\""
                        },
                        "value": "Bech32: invalid length"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_804d16c791056572535f8e2036ddf984da7d771fd478e9d9544d867a673dae25",
                          "typeString": "literal_string \"Bech32: invalid length\""
                        }
                      ],
                      "id": 37847,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "23579:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 37860,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23579:75:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 37861,
                  "nodeType": "ExpressionStatement",
                  "src": "23579:75:116"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 37868,
                                "name": "pkh",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37839,
                                "src": "23711:3:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "condition": {
                                  "id": 37869,
                                  "name": "mainnet",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37841,
                                  "src": "23716:7:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseExpression": {
                                  "hexValue": "74776974",
                                  "id": 37871,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "23734:6:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_dfbd7587b2fddacb6e475abb8480782bd328a0d86da584dbbb5c5b1cd10172c6",
                                    "typeString": "literal_string \"twit\""
                                  },
                                  "value": "twit"
                                },
                                "id": 37872,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "Conditional",
                                "src": "23716:24:116",
                                "trueExpression": {
                                  "hexValue": "776974",
                                  "id": 37870,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "23726:5:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_a40fefd25048260f5e40f1912d6008d3193b0c6b4a061e592aed558ff6e9b49c",
                                    "typeString": "literal_string \"wit\""
                                  },
                                  "value": "wit"
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "expression": {
                                "id": 37866,
                                "name": "Bech32",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 31372,
                                "src": "23693:6:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Bech32_$31372_$",
                                  "typeString": "type(library Bech32)"
                                }
                              },
                              "id": 37867,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "23700:10:116",
                              "memberName": "fromBech32",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 30209,
                              "src": "23693:17:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_address_$",
                                "typeString": "function (string memory,string memory) pure returns (address)"
                              }
                            },
                            "id": 37873,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "23693:48:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 37865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "23685:7:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes20_$",
                            "typeString": "type(bytes20)"
                          },
                          "typeName": {
                            "id": 37864,
                            "name": "bytes20",
                            "nodeType": "ElementaryTypeName",
                            "src": "23685:7:116",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 37874,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23685:57:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes20",
                          "typeString": "bytes20"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes20",
                          "typeString": "bytes20"
                        }
                      ],
                      "expression": {
                        "id": 37862,
                        "name": "Address",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37143,
                        "src": "23672:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_Address_$37143_$",
                          "typeString": "type(Witnet.Address)"
                        }
                      },
                      "id": 37863,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "23680:4:116",
                      "memberName": "wrap",
                      "nodeType": "MemberAccess",
                      "src": "23672:12:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_wrap_pure$_t_bytes20_$returns$_t_userDefinedValueType$_Address_$37143_$",
                        "typeString": "function (bytes20) pure returns (Witnet.Address)"
                      }
                    },
                    "id": 37875,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23672:71:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                      "typeString": "Witnet.Address"
                    }
                  },
                  "functionReturnParameters": 37846,
                  "id": 37876,
                  "nodeType": "Return",
                  "src": "23665:78:116"
                }
              ]
            },
            "id": 37878,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "fromBech32",
            "nameLocation": "23492:10:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 37842,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37839,
                  "mutability": "mutable",
                  "name": "pkh",
                  "nameLocation": "23517:3:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 37878,
                  "src": "23503:17:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 37838,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "23503:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 37841,
                  "mutability": "mutable",
                  "name": "mainnet",
                  "nameLocation": "23527:7:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 37878,
                  "src": "23522:12:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 37840,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "23522:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23502:33:116"
            },
            "returnParameters": {
              "id": 37846,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37845,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 37878,
                  "src": "23559:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                    "typeString": "Witnet.Address"
                  },
                  "typeName": {
                    "id": 37844,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37843,
                      "name": "Address",
                      "nameLocations": [
                        "23559:7:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37143,
                      "src": "23559:7:116"
                    },
                    "referencedDeclaration": 37143,
                    "src": "23559:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                      "typeString": "Witnet.Address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23558:9:116"
            },
            "scope": 40741,
            "src": "23483:268:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 37903,
              "nodeType": "Block",
              "src": "23849:104:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 37894,
                                "name": "witAddress",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37881,
                                "src": "23906:10:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                                  "typeString": "Witnet.Address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                                  "typeString": "Witnet.Address"
                                }
                              ],
                              "expression": {
                                "id": 37892,
                                "name": "Address",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37143,
                                "src": "23891:7:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_userDefinedValueType$_Address_$37143_$",
                                  "typeString": "type(Witnet.Address)"
                                }
                              },
                              "id": 37893,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "23899:6:116",
                              "memberName": "unwrap",
                              "nodeType": "MemberAccess",
                              "src": "23891:14:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Address_$37143_$returns$_t_bytes20_$",
                                "typeString": "function (Witnet.Address) pure returns (bytes20)"
                              }
                            },
                            "id": 37895,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "23891:26:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes20",
                              "typeString": "bytes20"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes20",
                              "typeString": "bytes20"
                            }
                          ],
                          "id": 37891,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "23883:7:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 37890,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "23883:7:116",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 37896,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23883:35:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "condition": {
                          "id": 37897,
                          "name": "mainnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37883,
                          "src": "23920:7:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "hexValue": "74776974",
                          "id": 37899,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "23938:6:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_dfbd7587b2fddacb6e475abb8480782bd328a0d86da584dbbb5c5b1cd10172c6",
                            "typeString": "literal_string \"twit\""
                          },
                          "value": "twit"
                        },
                        "id": 37900,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "23920:24:116",
                        "trueExpression": {
                          "hexValue": "776974",
                          "id": 37898,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "23930:5:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_a40fefd25048260f5e40f1912d6008d3193b0c6b4a061e592aed558ff6e9b49c",
                            "typeString": "literal_string \"wit\""
                          },
                          "value": "wit"
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "id": 37888,
                        "name": "Bech32",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 31372,
                        "src": "23867:6:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Bech32_$31372_$",
                          "typeString": "type(library Bech32)"
                        }
                      },
                      "id": 37889,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "23874:8:116",
                      "memberName": "toBech32",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 30020,
                      "src": "23867:15:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_address_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (address,string memory) pure returns (string memory)"
                      }
                    },
                    "id": 37901,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23867:78:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 37887,
                  "id": 37902,
                  "nodeType": "Return",
                  "src": "23860:85:116"
                }
              ]
            },
            "id": 37904,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toBech32",
            "nameLocation": "23768:8:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 37884,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37881,
                  "mutability": "mutable",
                  "name": "witAddress",
                  "nameLocation": "23785:10:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 37904,
                  "src": "23777:18:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                    "typeString": "Witnet.Address"
                  },
                  "typeName": {
                    "id": 37880,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37879,
                      "name": "Address",
                      "nameLocations": [
                        "23777:7:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37143,
                      "src": "23777:7:116"
                    },
                    "referencedDeclaration": 37143,
                    "src": "23777:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                      "typeString": "Witnet.Address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 37883,
                  "mutability": "mutable",
                  "name": "mainnet",
                  "nameLocation": "23802:7:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 37904,
                  "src": "23797:12:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 37882,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "23797:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23776:34:116"
            },
            "returnParameters": {
              "id": 37887,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37886,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 37904,
                  "src": "23834:13:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 37885,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "23834:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23833:15:116"
            },
            "scope": 40741,
            "src": "23759:194:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 37922,
              "nodeType": "Block",
              "src": "24017:57:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bytes20",
                      "typeString": "bytes20"
                    },
                    "id": 37920,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 37914,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37907,
                          "src": "24050:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                            "typeString": "Witnet.Address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                            "typeString": "Witnet.Address"
                          }
                        ],
                        "expression": {
                          "id": 37912,
                          "name": "Address",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37143,
                          "src": "24035:7:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Address_$37143_$",
                            "typeString": "type(Witnet.Address)"
                          }
                        },
                        "id": 37913,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "24043:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "24035:14:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Address_$37143_$returns$_t_bytes20_$",
                          "typeString": "function (Witnet.Address) pure returns (bytes20)"
                        }
                      },
                      "id": 37915,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24035:17:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes20",
                        "typeString": "bytes20"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 37918,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "24064:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 37917,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "24056:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes20_$",
                          "typeString": "type(bytes20)"
                        },
                        "typeName": {
                          "id": 37916,
                          "name": "bytes20",
                          "nodeType": "ElementaryTypeName",
                          "src": "24056:7:116",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 37919,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24056:10:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes20",
                        "typeString": "bytes20"
                      }
                    },
                    "src": "24035:31:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 37911,
                  "id": 37921,
                  "nodeType": "Return",
                  "src": "24028:38:116"
                }
              ]
            },
            "id": 37923,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isZero",
            "nameLocation": "23970:6:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 37908,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37907,
                  "mutability": "mutable",
                  "name": "a",
                  "nameLocation": "23985:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 37923,
                  "src": "23977:9:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                    "typeString": "Witnet.Address"
                  },
                  "typeName": {
                    "id": 37906,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37905,
                      "name": "Address",
                      "nameLocations": [
                        "23977:7:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37143,
                      "src": "23977:7:116"
                    },
                    "referencedDeclaration": 37143,
                    "src": "23977:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                      "typeString": "Witnet.Address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23976:11:116"
            },
            "returnParameters": {
              "id": 37911,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37910,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 37923,
                  "src": "24011:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 37909,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "24011:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24010:6:116"
            },
            "scope": 40741,
            "src": "23961:113:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 37944,
              "nodeType": "Block",
              "src": "24355:77:116",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bytes24",
                          "typeString": "bytes24"
                        },
                        "id": 37941,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 37936,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37927,
                              "src": "24393:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                                "typeString": "struct Witnet.Beacon storage pointer"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                                "typeString": "struct Witnet.Beacon storage pointer"
                              }
                            ],
                            "id": 37935,
                            "name": "root",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              37975,
                              38005
                            ],
                            "referencedDeclaration": 38005,
                            "src": "24388:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Beacon_$37242_storage_ptr_$returns$_t_bytes24_$",
                              "typeString": "function (struct Witnet.Beacon storage pointer) view returns (bytes24)"
                            }
                          },
                          "id": 37937,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "24388:10:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes24",
                            "typeString": "bytes24"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 37939,
                              "name": "other",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37930,
                              "src": "24407:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Beacon_$37242_calldata_ptr",
                                "typeString": "struct Witnet.Beacon calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Beacon_$37242_calldata_ptr",
                                "typeString": "struct Witnet.Beacon calldata"
                              }
                            ],
                            "id": 37938,
                            "name": "root",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              37975,
                              38005
                            ],
                            "referencedDeclaration": 37975,
                            "src": "24402:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Beacon_$37242_calldata_ptr_$returns$_t_bytes24_$",
                              "typeString": "function (struct Witnet.Beacon calldata) pure returns (bytes24)"
                            }
                          },
                          "id": 37940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "24402:11:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes24",
                            "typeString": "bytes24"
                          }
                        },
                        "src": "24388:25:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 37942,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "24373:51:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 37934,
                  "id": 37943,
                  "nodeType": "Return",
                  "src": "24366:58:116"
                }
              ]
            },
            "documentation": {
              "id": 37924,
              "nodeType": "StructuredDocumentation",
              "src": "24088:158:116",
              "text": "=======================================================================\n --- Witnet.Beacon helper functions ------------------------------------"
            },
            "id": 37945,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "equals",
            "nameLocation": "24261:6:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 37931,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37927,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "24283:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 37945,
                  "src": "24268:19:116",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 37926,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37925,
                      "name": "Beacon",
                      "nameLocations": [
                        "24268:6:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "24268:6:116"
                    },
                    "referencedDeclaration": 37242,
                    "src": "24268:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 37930,
                  "mutability": "mutable",
                  "name": "other",
                  "nameLocation": "24305:5:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 37945,
                  "src": "24289:21:116",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_calldata_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 37929,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37928,
                      "name": "Beacon",
                      "nameLocations": [
                        "24289:6:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "24289:6:116"
                    },
                    "referencedDeclaration": 37242,
                    "src": "24289:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24267:44:116"
            },
            "returnParameters": {
              "id": 37934,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37933,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 37945,
                  "src": "24344:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 37932,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "24344:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24343:6:116"
            },
            "scope": 40741,
            "src": "24252:180:116",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 37974,
              "nodeType": "Block",
              "src": "24508:271:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 37958,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37948,
                                  "src": "24569:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Beacon_$37242_calldata_ptr",
                                    "typeString": "struct Witnet.Beacon calldata"
                                  }
                                },
                                "id": 37959,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "24574:5:116",
                                "memberName": "index",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37229,
                                "src": "24569:10:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              {
                                "expression": {
                                  "id": 37960,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37948,
                                  "src": "24594:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Beacon_$37242_calldata_ptr",
                                    "typeString": "struct Witnet.Beacon calldata"
                                  }
                                },
                                "id": 37961,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "24599:9:116",
                                "memberName": "prevIndex",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37231,
                                "src": "24594:14:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              {
                                "expression": {
                                  "id": 37962,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37948,
                                  "src": "24623:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Beacon_$37242_calldata_ptr",
                                    "typeString": "struct Witnet.Beacon calldata"
                                  }
                                },
                                "id": 37963,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "24628:8:116",
                                "memberName": "prevRoot",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37233,
                                "src": "24623:13:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes24",
                                  "typeString": "bytes24"
                                }
                              },
                              {
                                "expression": {
                                  "id": 37964,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37948,
                                  "src": "24651:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Beacon_$37242_calldata_ptr",
                                    "typeString": "struct Witnet.Beacon calldata"
                                  }
                                },
                                "id": 37965,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "24656:20:116",
                                "memberName": "ddrTalliesMerkleRoot",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37235,
                                "src": "24651:25:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes16",
                                  "typeString": "bytes16"
                                }
                              },
                              {
                                "expression": {
                                  "id": 37966,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37948,
                                  "src": "24691:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Beacon_$37242_calldata_ptr",
                                    "typeString": "struct Witnet.Beacon calldata"
                                  }
                                },
                                "id": 37967,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "24696:20:116",
                                "memberName": "droTalliesMerkleRoot",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37237,
                                "src": "24691:25:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes16",
                                  "typeString": "bytes16"
                                }
                              },
                              {
                                "expression": {
                                  "id": 37968,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37948,
                                  "src": "24731:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Beacon_$37242_calldata_ptr",
                                    "typeString": "struct Witnet.Beacon calldata"
                                  }
                                },
                                "id": 37969,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "24736:22:116",
                                "memberName": "nextCommitteeAggPubkey",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37241,
                                "src": "24731:27:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr",
                                  "typeString": "uint256[4] calldata"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                {
                                  "typeIdentifier": "t_bytes24",
                                  "typeString": "bytes24"
                                },
                                {
                                  "typeIdentifier": "t_bytes16",
                                  "typeString": "bytes16"
                                },
                                {
                                  "typeIdentifier": "t_bytes16",
                                  "typeString": "bytes16"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr",
                                  "typeString": "uint256[4] calldata"
                                }
                              ],
                              "expression": {
                                "id": 37956,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "24544:3:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 37957,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "24548:6:116",
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "src": "24544:10:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 37970,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "24544:225:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 37955,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967288,
                          "src": "24534:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 37971,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "24534:236:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 37954,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "24526:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes24_$",
                        "typeString": "type(bytes24)"
                      },
                      "typeName": {
                        "id": 37953,
                        "name": "bytes24",
                        "nodeType": "ElementaryTypeName",
                        "src": "24526:7:116",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 37972,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24526:245:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes24",
                      "typeString": "bytes24"
                    }
                  },
                  "functionReturnParameters": 37952,
                  "id": 37973,
                  "nodeType": "Return",
                  "src": "24519:252:116"
                }
              ]
            },
            "id": 37975,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "root",
            "nameLocation": "24449:4:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 37949,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37948,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "24470:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 37975,
                  "src": "24454:20:116",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_calldata_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 37947,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37946,
                      "name": "Beacon",
                      "nameLocations": [
                        "24454:6:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "24454:6:116"
                    },
                    "referencedDeclaration": 37242,
                    "src": "24454:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24453:22:116"
            },
            "returnParameters": {
              "id": 37952,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37951,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 37975,
                  "src": "24499:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes24",
                    "typeString": "bytes24"
                  },
                  "typeName": {
                    "id": 37950,
                    "name": "bytes24",
                    "nodeType": "ElementaryTypeName",
                    "src": "24499:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes24",
                      "typeString": "bytes24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24498:9:116"
            },
            "scope": 40741,
            "src": "24440:339:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38004,
              "nodeType": "Block",
              "src": "24858:271:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 37988,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37978,
                                  "src": "24919:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                                    "typeString": "struct Witnet.Beacon storage pointer"
                                  }
                                },
                                "id": 37989,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "24924:5:116",
                                "memberName": "index",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37229,
                                "src": "24919:10:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              {
                                "expression": {
                                  "id": 37990,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37978,
                                  "src": "24944:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                                    "typeString": "struct Witnet.Beacon storage pointer"
                                  }
                                },
                                "id": 37991,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "24949:9:116",
                                "memberName": "prevIndex",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37231,
                                "src": "24944:14:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              {
                                "expression": {
                                  "id": 37992,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37978,
                                  "src": "24973:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                                    "typeString": "struct Witnet.Beacon storage pointer"
                                  }
                                },
                                "id": 37993,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "24978:8:116",
                                "memberName": "prevRoot",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37233,
                                "src": "24973:13:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes24",
                                  "typeString": "bytes24"
                                }
                              },
                              {
                                "expression": {
                                  "id": 37994,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37978,
                                  "src": "25001:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                                    "typeString": "struct Witnet.Beacon storage pointer"
                                  }
                                },
                                "id": 37995,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "25006:20:116",
                                "memberName": "ddrTalliesMerkleRoot",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37235,
                                "src": "25001:25:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes16",
                                  "typeString": "bytes16"
                                }
                              },
                              {
                                "expression": {
                                  "id": 37996,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37978,
                                  "src": "25041:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                                    "typeString": "struct Witnet.Beacon storage pointer"
                                  }
                                },
                                "id": 37997,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "25046:20:116",
                                "memberName": "droTalliesMerkleRoot",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37237,
                                "src": "25041:25:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes16",
                                  "typeString": "bytes16"
                                }
                              },
                              {
                                "expression": {
                                  "id": 37998,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37978,
                                  "src": "25081:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                                    "typeString": "struct Witnet.Beacon storage pointer"
                                  }
                                },
                                "id": 37999,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "25086:22:116",
                                "memberName": "nextCommitteeAggPubkey",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37241,
                                "src": "25081:27:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$4_storage",
                                  "typeString": "uint256[4] storage ref"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                {
                                  "typeIdentifier": "t_bytes24",
                                  "typeString": "bytes24"
                                },
                                {
                                  "typeIdentifier": "t_bytes16",
                                  "typeString": "bytes16"
                                },
                                {
                                  "typeIdentifier": "t_bytes16",
                                  "typeString": "bytes16"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$4_storage",
                                  "typeString": "uint256[4] storage ref"
                                }
                              ],
                              "expression": {
                                "id": 37986,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "24894:3:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 37987,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "24898:6:116",
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "src": "24894:10:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 38000,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "24894:225:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 37985,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967288,
                          "src": "24884:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 38001,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "24884:236:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 37984,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "24876:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes24_$",
                        "typeString": "type(bytes24)"
                      },
                      "typeName": {
                        "id": 37983,
                        "name": "bytes24",
                        "nodeType": "ElementaryTypeName",
                        "src": "24876:7:116",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 38002,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24876:245:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes24",
                      "typeString": "bytes24"
                    }
                  },
                  "functionReturnParameters": 37982,
                  "id": 38003,
                  "nodeType": "Return",
                  "src": "24869:252:116"
                }
              ]
            },
            "id": 38005,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "root",
            "nameLocation": "24800:4:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 37979,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37978,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "24820:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38005,
                  "src": "24805:19:116",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 37977,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37976,
                      "name": "Beacon",
                      "nameLocations": [
                        "24805:6:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "24805:6:116"
                    },
                    "referencedDeclaration": 37242,
                    "src": "24805:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24804:21:116"
            },
            "returnParameters": {
              "id": 37982,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37981,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38005,
                  "src": "24849:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes24",
                    "typeString": "bytes24"
                  },
                  "typeName": {
                    "id": 37980,
                    "name": "bytes24",
                    "nodeType": "ElementaryTypeName",
                    "src": "24849:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes24",
                      "typeString": "bytes24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24848:9:116"
            },
            "scope": 40741,
            "src": "24791:338:116",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38027,
              "nodeType": "Block",
              "src": "25379:72:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 38025,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 38019,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38009,
                          "src": "25416:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        ],
                        "expression": {
                          "id": 38017,
                          "name": "BlockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37145,
                          "src": "25397:11:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "type(Witnet.BlockNumber)"
                          }
                        },
                        "id": 38018,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "25409:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "25397:18:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                        }
                      },
                      "id": 38020,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25397:21:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 38023,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38012,
                          "src": "25441:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        ],
                        "expression": {
                          "id": 38021,
                          "name": "BlockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37145,
                          "src": "25422:11:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "type(Witnet.BlockNumber)"
                          }
                        },
                        "id": 38022,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "25434:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "25422:18:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                        }
                      },
                      "id": 38024,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25422:21:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "25397:46:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38016,
                  "id": 38026,
                  "nodeType": "Return",
                  "src": "25390:53:116"
                }
              ]
            },
            "documentation": {
              "id": 38006,
              "nodeType": "StructuredDocumentation",
              "src": "25143:158:116",
              "text": "=======================================================================\n --- BlockNumber helper functions --------------------------------------"
            },
            "id": 38028,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "egt",
            "nameLocation": "25316:3:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38009,
                  "mutability": "mutable",
                  "name": "a",
                  "nameLocation": "25332:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38028,
                  "src": "25320:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 38008,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38007,
                      "name": "BlockNumber",
                      "nameLocations": [
                        "25320:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "25320:11:116"
                    },
                    "referencedDeclaration": 37145,
                    "src": "25320:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38012,
                  "mutability": "mutable",
                  "name": "b",
                  "nameLocation": "25347:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38028,
                  "src": "25335:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 38011,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38010,
                      "name": "BlockNumber",
                      "nameLocations": [
                        "25335:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "25335:11:116"
                    },
                    "referencedDeclaration": 37145,
                    "src": "25335:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25319:30:116"
            },
            "returnParameters": {
              "id": 38016,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38015,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38028,
                  "src": "25373:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38014,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "25373:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25372:6:116"
            },
            "scope": 40741,
            "src": "25307:144:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38049,
              "nodeType": "Block",
              "src": "25531:72:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 38047,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 38041,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38031,
                          "src": "25568:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        ],
                        "expression": {
                          "id": 38039,
                          "name": "BlockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37145,
                          "src": "25549:11:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "type(Witnet.BlockNumber)"
                          }
                        },
                        "id": 38040,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "25561:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "25549:18:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                        }
                      },
                      "id": 38042,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25549:21:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 38045,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38034,
                          "src": "25593:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        ],
                        "expression": {
                          "id": 38043,
                          "name": "BlockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37145,
                          "src": "25574:11:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "type(Witnet.BlockNumber)"
                          }
                        },
                        "id": 38044,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "25586:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "25574:18:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                        }
                      },
                      "id": 38046,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25574:21:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "25549:46:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38038,
                  "id": 38048,
                  "nodeType": "Return",
                  "src": "25542:53:116"
                }
              ]
            },
            "id": 38050,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "elt",
            "nameLocation": "25468:3:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38035,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38031,
                  "mutability": "mutable",
                  "name": "a",
                  "nameLocation": "25484:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38050,
                  "src": "25472:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 38030,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38029,
                      "name": "BlockNumber",
                      "nameLocations": [
                        "25472:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "25472:11:116"
                    },
                    "referencedDeclaration": 37145,
                    "src": "25472:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38034,
                  "mutability": "mutable",
                  "name": "b",
                  "nameLocation": "25499:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38050,
                  "src": "25487:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 38033,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38032,
                      "name": "BlockNumber",
                      "nameLocations": [
                        "25487:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "25487:11:116"
                    },
                    "referencedDeclaration": 37145,
                    "src": "25487:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25471:30:116"
            },
            "returnParameters": {
              "id": 38038,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38037,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38050,
                  "src": "25525:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38036,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "25525:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25524:6:116"
            },
            "scope": 40741,
            "src": "25459:144:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38071,
              "nodeType": "Block",
              "src": "25682:71:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 38069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 38063,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38053,
                          "src": "25719:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        ],
                        "expression": {
                          "id": 38061,
                          "name": "BlockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37145,
                          "src": "25700:11:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "type(Witnet.BlockNumber)"
                          }
                        },
                        "id": 38062,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "25712:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "25700:18:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                        }
                      },
                      "id": 38064,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25700:21:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 38067,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38056,
                          "src": "25743:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        ],
                        "expression": {
                          "id": 38065,
                          "name": "BlockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37145,
                          "src": "25724:11:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "type(Witnet.BlockNumber)"
                          }
                        },
                        "id": 38066,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "25736:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "25724:18:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                        }
                      },
                      "id": 38068,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25724:21:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "25700:45:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38060,
                  "id": 38070,
                  "nodeType": "Return",
                  "src": "25693:52:116"
                }
              ]
            },
            "id": 38072,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "gt",
            "nameLocation": "25620:2:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38057,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38053,
                  "mutability": "mutable",
                  "name": "a",
                  "nameLocation": "25635:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38072,
                  "src": "25623:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 38052,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38051,
                      "name": "BlockNumber",
                      "nameLocations": [
                        "25623:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "25623:11:116"
                    },
                    "referencedDeclaration": 37145,
                    "src": "25623:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38056,
                  "mutability": "mutable",
                  "name": "b",
                  "nameLocation": "25650:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38072,
                  "src": "25638:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 38055,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38054,
                      "name": "BlockNumber",
                      "nameLocations": [
                        "25638:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "25638:11:116"
                    },
                    "referencedDeclaration": 37145,
                    "src": "25638:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25622:30:116"
            },
            "returnParameters": {
              "id": 38060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38059,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38072,
                  "src": "25676:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38058,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "25676:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25675:6:116"
            },
            "scope": 40741,
            "src": "25611:142:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38093,
              "nodeType": "Block",
              "src": "25832:71:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 38091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 38085,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38075,
                          "src": "25869:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        ],
                        "expression": {
                          "id": 38083,
                          "name": "BlockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37145,
                          "src": "25850:11:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "type(Witnet.BlockNumber)"
                          }
                        },
                        "id": 38084,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "25862:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "25850:18:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                        }
                      },
                      "id": 38086,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25850:21:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 38089,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38078,
                          "src": "25893:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        ],
                        "expression": {
                          "id": 38087,
                          "name": "BlockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37145,
                          "src": "25874:11:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "type(Witnet.BlockNumber)"
                          }
                        },
                        "id": 38088,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "25886:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "25874:18:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                        }
                      },
                      "id": 38090,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25874:21:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "25850:45:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38082,
                  "id": 38092,
                  "nodeType": "Return",
                  "src": "25843:52:116"
                }
              ]
            },
            "id": 38094,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "lt",
            "nameLocation": "25770:2:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38079,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38075,
                  "mutability": "mutable",
                  "name": "a",
                  "nameLocation": "25785:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38094,
                  "src": "25773:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 38074,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38073,
                      "name": "BlockNumber",
                      "nameLocations": [
                        "25773:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "25773:11:116"
                    },
                    "referencedDeclaration": 37145,
                    "src": "25773:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38078,
                  "mutability": "mutable",
                  "name": "b",
                  "nameLocation": "25800:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38094,
                  "src": "25788:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 38077,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38076,
                      "name": "BlockNumber",
                      "nameLocations": [
                        "25788:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "25788:11:116"
                    },
                    "referencedDeclaration": 37145,
                    "src": "25788:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25772:30:116"
            },
            "returnParameters": {
              "id": 38082,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38081,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38094,
                  "src": "25826:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38080,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "25826:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25825:6:116"
            },
            "scope": 40741,
            "src": "25761:142:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38110,
              "nodeType": "Block",
              "src": "25971:54:116",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 38107,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 38104,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38097,
                              "src": "26009:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                                "typeString": "Witnet.BlockNumber"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                                "typeString": "Witnet.BlockNumber"
                              }
                            ],
                            "expression": {
                              "id": 38102,
                              "name": "BlockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37145,
                              "src": "25990:11:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                                "typeString": "type(Witnet.BlockNumber)"
                              }
                            },
                            "id": 38103,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "26002:6:116",
                            "memberName": "unwrap",
                            "nodeType": "MemberAccess",
                            "src": "25990:18:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                              "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                            }
                          },
                          "id": 38105,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "25990:21:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 38106,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "26015:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "25990:26:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 38108,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "25989:28:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38101,
                  "id": 38109,
                  "nodeType": "Return",
                  "src": "25982:35:116"
                }
              ]
            },
            "id": 38111,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isZero",
            "nameLocation": "25920:6:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38098,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38097,
                  "mutability": "mutable",
                  "name": "b",
                  "nameLocation": "25939:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38111,
                  "src": "25927:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 38096,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38095,
                      "name": "BlockNumber",
                      "nameLocations": [
                        "25927:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "25927:11:116"
                    },
                    "referencedDeclaration": 37145,
                    "src": "25927:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25926:15:116"
            },
            "returnParameters": {
              "id": 38101,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38100,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38111,
                  "src": "25965:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38099,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "25965:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25964:6:116"
            },
            "scope": 40741,
            "src": "25911:114:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38129,
              "nodeType": "Block",
              "src": "26363:131:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 38121,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38115,
                          "src": "26410:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                            "typeString": "struct Witnet.DataPullReport calldata"
                          }
                        },
                        "id": 38122,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "26415:21:116",
                        "memberName": "witDrRelayerSignature",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37250,
                        "src": "26410:26:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 38124,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38115,
                              "src": "26460:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                                "typeString": "struct Witnet.DataPullReport calldata"
                              }
                            },
                            "id": 38125,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26465:9:116",
                            "memberName": "queryHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37248,
                            "src": "26460:14:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                              "typeString": "Witnet.QueryUUID"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                              "typeString": "Witnet.QueryUUID"
                            }
                          ],
                          "id": 38123,
                          "name": "hashify",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            38693,
                            38740,
                            38761
                          ],
                          "referencedDeclaration": 38693,
                          "src": "26452:7:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_QueryUUID_$37149_$returns$_t_bytes32_$",
                            "typeString": "function (Witnet.QueryUUID) pure returns (bytes32)"
                          }
                        },
                        "id": 38126,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "26452:23:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 38120,
                      "name": "recoverEvmAddr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39466,
                      "src": "26381:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes memory,bytes32) pure returns (address)"
                      }
                    },
                    "id": 38127,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26381:105:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 38119,
                  "id": 38128,
                  "nodeType": "Return",
                  "src": "26374:112:116"
                }
              ]
            },
            "documentation": {
              "id": 38112,
              "nodeType": "StructuredDocumentation",
              "src": "26035:238:116",
              "text": "===============================================================================================================\n --- Data*Report helper methods --------------------------------------------------------------------------------"
            },
            "id": 38130,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "queryRelayer",
            "nameLocation": "26288:12:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38116,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38115,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "26325:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38130,
                  "src": "26301:28:116",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                    "typeString": "struct Witnet.DataPullReport"
                  },
                  "typeName": {
                    "id": 38114,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38113,
                      "name": "DataPullReport",
                      "nameLocations": [
                        "26301:14:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37259,
                      "src": "26301:14:116"
                    },
                    "referencedDeclaration": 37259,
                    "src": "26301:14:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataPullReport_$37259_storage_ptr",
                      "typeString": "struct Witnet.DataPullReport"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26300:30:116"
            },
            "returnParameters": {
              "id": 38119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38118,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38130,
                  "src": "26354:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 38117,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "26354:7:116",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26353:9:116"
            },
            "scope": 40741,
            "src": "26279:215:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38154,
              "nodeType": "Block",
              "src": "26583:235:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 38141,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38133,
                              "src": "26636:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                                "typeString": "struct Witnet.DataPullReport calldata"
                              }
                            },
                            "id": 38142,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26641:9:116",
                            "memberName": "queryHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37248,
                            "src": "26636:14:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                              "typeString": "Witnet.QueryUUID"
                            }
                          },
                          {
                            "expression": {
                              "id": 38143,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38133,
                              "src": "26665:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                                "typeString": "struct Witnet.DataPullReport calldata"
                              }
                            },
                            "id": 38144,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26670:21:116",
                            "memberName": "witDrRelayerSignature",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37250,
                            "src": "26665:26:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          },
                          {
                            "expression": {
                              "id": 38145,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38133,
                              "src": "26706:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                                "typeString": "struct Witnet.DataPullReport calldata"
                              }
                            },
                            "id": 38146,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26711:11:116",
                            "memberName": "witDrTxHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37258,
                            "src": "26706:16:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                              "typeString": "Witnet.TransactionHash"
                            }
                          },
                          {
                            "expression": {
                              "id": 38147,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38133,
                              "src": "26737:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                                "typeString": "struct Witnet.DataPullReport calldata"
                              }
                            },
                            "id": 38148,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26742:16:116",
                            "memberName": "witDrResultEpoch",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37253,
                            "src": "26737:21:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                              "typeString": "Witnet.BlockNumber"
                            }
                          },
                          {
                            "expression": {
                              "id": 38149,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38133,
                              "src": "26773:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                                "typeString": "struct Witnet.DataPullReport calldata"
                              }
                            },
                            "id": 38150,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26778:20:116",
                            "memberName": "witDrResultCborBytes",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37255,
                            "src": "26773:25:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                              "typeString": "Witnet.QueryUUID"
                            },
                            {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            },
                            {
                              "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                              "typeString": "Witnet.TransactionHash"
                            },
                            {
                              "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                              "typeString": "Witnet.BlockNumber"
                            },
                            {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          ],
                          "expression": {
                            "id": 38139,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "26611:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 38140,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "26615:6:116",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "26611:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 38151,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "26611:198:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 38138,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "26601:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 38152,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26601:209:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 38137,
                  "id": 38153,
                  "nodeType": "Return",
                  "src": "26594:216:116"
                }
              ]
            },
            "id": 38155,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tallyHash",
            "nameLocation": "26511:9:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38134,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38133,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "26545:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38155,
                  "src": "26521:28:116",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                    "typeString": "struct Witnet.DataPullReport"
                  },
                  "typeName": {
                    "id": 38132,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38131,
                      "name": "DataPullReport",
                      "nameLocations": [
                        "26521:14:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37259,
                      "src": "26521:14:116"
                    },
                    "referencedDeclaration": 37259,
                    "src": "26521:14:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataPullReport_$37259_storage_ptr",
                      "typeString": "struct Witnet.DataPullReport"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26520:30:116"
            },
            "returnParameters": {
              "id": 38137,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38136,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38155,
                  "src": "26574:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 38135,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "26574:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26573:9:116"
            },
            "scope": 40741,
            "src": "26502:316:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38186,
              "nodeType": "Block",
              "src": "26904:335:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 38166,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38158,
                              "src": "26957:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                                "typeString": "struct Witnet.DataPushReport calldata"
                              }
                            },
                            "id": 38167,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26962:11:116",
                            "memberName": "witDrTxHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37262,
                            "src": "26957:16:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                              "typeString": "Witnet.TransactionHash"
                            }
                          },
                          {
                            "expression": {
                              "id": 38168,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38158,
                              "src": "26988:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                                "typeString": "struct Witnet.DataPushReport calldata"
                              }
                            },
                            "id": 38169,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26993:12:116",
                            "memberName": "queryRadHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37265,
                            "src": "26988:17:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                              "typeString": "Witnet.RadonHash"
                            }
                          },
                          {
                            "expression": {
                              "expression": {
                                "id": 38170,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38158,
                                "src": "27020:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                                  "typeString": "struct Witnet.DataPushReport calldata"
                                }
                              },
                              "id": 38171,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "27025:11:116",
                              "memberName": "queryParams",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37268,
                              "src": "27020:16:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                                "typeString": "struct Witnet.QuerySLA calldata"
                              }
                            },
                            "id": 38172,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "27037:16:116",
                            "memberName": "witResultMaxSize",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37368,
                            "src": "27020:33:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          {
                            "expression": {
                              "expression": {
                                "id": 38173,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38158,
                                "src": "27068:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                                  "typeString": "struct Witnet.DataPushReport calldata"
                                }
                              },
                              "id": 38174,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "27073:11:116",
                              "memberName": "queryParams",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37268,
                              "src": "27068:16:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                                "typeString": "struct Witnet.QuerySLA calldata"
                              }
                            },
                            "id": 38175,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "27085:16:116",
                            "memberName": "witCommitteeSize",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37370,
                            "src": "27068:33:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          {
                            "expression": {
                              "expression": {
                                "id": 38176,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38158,
                                "src": "27116:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                                  "typeString": "struct Witnet.DataPushReport calldata"
                                }
                              },
                              "id": 38177,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "27121:11:116",
                              "memberName": "queryParams",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37268,
                              "src": "27116:16:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                                "typeString": "struct Witnet.QuerySLA calldata"
                              }
                            },
                            "id": 38178,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "27133:16:116",
                            "memberName": "witUnitaryReward",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37372,
                            "src": "27116:33:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          {
                            "expression": {
                              "id": 38179,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38158,
                              "src": "27164:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                                "typeString": "struct Witnet.DataPushReport calldata"
                              }
                            },
                            "id": 38180,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "27169:15:116",
                            "memberName": "resultTimestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37271,
                            "src": "27164:20:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          },
                          {
                            "expression": {
                              "id": 38181,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38158,
                              "src": "27199:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                                "typeString": "struct Witnet.DataPushReport calldata"
                              }
                            },
                            "id": 38182,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "27204:15:116",
                            "memberName": "resultCborBytes",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37273,
                            "src": "27199:20:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                              "typeString": "Witnet.TransactionHash"
                            },
                            {
                              "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                              "typeString": "Witnet.RadonHash"
                            },
                            {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            },
                            {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            },
                            {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            },
                            {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            },
                            {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          ],
                          "expression": {
                            "id": 38164,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "26932:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 38165,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "26936:6:116",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "26932:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 38183,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "26932:298:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 38163,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "26922:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 38184,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26922:309:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 38162,
                  "id": 38185,
                  "nodeType": "Return",
                  "src": "26915:316:116"
                }
              ]
            },
            "id": 38187,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "digest",
            "nameLocation": "26835:6:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38159,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38158,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "26866:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38187,
                  "src": "26842:28:116",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                    "typeString": "struct Witnet.DataPushReport"
                  },
                  "typeName": {
                    "id": 38157,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38156,
                      "name": "DataPushReport",
                      "nameLocations": [
                        "26842:14:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37274,
                      "src": "26842:14:116"
                    },
                    "referencedDeclaration": 37274,
                    "src": "26842:14:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataPushReport_$37274_storage_ptr",
                      "typeString": "struct Witnet.DataPushReport"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26841:30:116"
            },
            "returnParameters": {
              "id": 38162,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38161,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38187,
                  "src": "26895:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 38160,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "26895:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26894:9:116"
            },
            "scope": 40741,
            "src": "26826:413:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38202,
              "nodeType": "Block",
              "src": "27552:62:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_enum$_ResultStatus_$37698",
                      "typeString": "enum Witnet.ResultStatus"
                    },
                    "id": 38200,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 38196,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38191,
                        "src": "27570:4:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                          "typeString": "struct Witnet.DataResult memory"
                        }
                      },
                      "id": 38197,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "27575:6:116",
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 37278,
                      "src": "27570:11:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ResultStatus_$37698",
                        "typeString": "enum Witnet.ResultStatus"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "expression": {
                        "id": 38198,
                        "name": "ResultStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37698,
                        "src": "27585:12:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                          "typeString": "type(enum Witnet.ResultStatus)"
                        }
                      },
                      "id": 38199,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "27598:8:116",
                      "memberName": "NoErrors",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 37375,
                      "src": "27585:21:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ResultStatus_$37698",
                        "typeString": "enum Witnet.ResultStatus"
                      }
                    },
                    "src": "27570:36:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38195,
                  "id": 38201,
                  "nodeType": "Return",
                  "src": "27563:43:116"
                }
              ]
            },
            "documentation": {
              "id": 38188,
              "nodeType": "StructuredDocumentation",
              "src": "27251:224:116",
              "text": "========================================================================================================\n --- 'DataResult' helper methods ------------------------------------------------------------------------"
            },
            "id": 38203,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "noErrors",
            "nameLocation": "27490:8:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38192,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38191,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "27517:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38203,
                  "src": "27499:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38190,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38189,
                      "name": "DataResult",
                      "nameLocations": [
                        "27499:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "27499:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "27499:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27498:24:116"
            },
            "returnParameters": {
              "id": 38195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38194,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38203,
                  "src": "27546:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38193,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "27546:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27545:6:116"
            },
            "scope": 40741,
            "src": "27481:133:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38216,
              "nodeType": "Block",
              "src": "27696:50:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 38212,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38206,
                          "src": "27726:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38213,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "27731:6:116",
                        "memberName": "status",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37278,
                        "src": "27726:11:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ResultStatus_$37698",
                          "typeString": "enum Witnet.ResultStatus"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_enum$_ResultStatus_$37698",
                          "typeString": "enum Witnet.ResultStatus"
                        }
                      ],
                      "id": 38211,
                      "name": "keepWaiting",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        38217,
                        38959
                      ],
                      "referencedDeclaration": 38959,
                      "src": "27714:11:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_enum$_ResultStatus_$37698_$returns$_t_bool_$",
                        "typeString": "function (enum Witnet.ResultStatus) pure returns (bool)"
                      }
                    },
                    "id": 38214,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27714:24:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38210,
                  "id": 38215,
                  "nodeType": "Return",
                  "src": "27707:31:116"
                }
              ]
            },
            "id": 38217,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "keepWaiting",
            "nameLocation": "27631:11:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38207,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38206,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "27661:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38217,
                  "src": "27643:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38205,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38204,
                      "name": "DataResult",
                      "nameLocations": [
                        "27643:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "27643:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "27643:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27642:24:116"
            },
            "returnParameters": {
              "id": 38210,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38209,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38217,
                  "src": "27690:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38208,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "27690:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27689:6:116"
            },
            "scope": 40741,
            "src": "27622:124:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38230,
              "nodeType": "Block",
              "src": "27826:48:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 38226,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38220,
                          "src": "27854:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38227,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "27859:6:116",
                        "memberName": "status",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37278,
                        "src": "27854:11:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ResultStatus_$37698",
                          "typeString": "enum Witnet.ResultStatus"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_enum$_ResultStatus_$37698",
                          "typeString": "enum Witnet.ResultStatus"
                        }
                      ],
                      "id": 38225,
                      "name": "hasErrors",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        38231,
                        38902
                      ],
                      "referencedDeclaration": 38902,
                      "src": "27844:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_enum$_ResultStatus_$37698_$returns$_t_bool_$",
                        "typeString": "function (enum Witnet.ResultStatus) pure returns (bool)"
                      }
                    },
                    "id": 38228,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27844:22:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38224,
                  "id": 38229,
                  "nodeType": "Return",
                  "src": "27837:29:116"
                }
              ]
            },
            "id": 38231,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hasErrors",
            "nameLocation": "27763:9:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38221,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38220,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "27791:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38231,
                  "src": "27773:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38219,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38218,
                      "name": "DataResult",
                      "nameLocations": [
                        "27773:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "27773:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "27773:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27772:24:116"
            },
            "returnParameters": {
              "id": 38224,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38223,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38231,
                  "src": "27820:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38222,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "27820:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27819:6:116"
            },
            "scope": 40741,
            "src": "27754:120:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38262,
              "nodeType": "Block",
              "src": "27963:225:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 38248,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 38243,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "27996:18:116",
                          "subExpression": {
                            "arguments": [
                              {
                                "id": 38241,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38234,
                                "src": "28009:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                  "typeString": "struct Witnet.DataResult memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                  "typeString": "struct Witnet.DataResult memory"
                                }
                              ],
                              "id": 38240,
                              "name": "keepWaiting",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                38217,
                                38959
                              ],
                              "referencedDeclaration": 38217,
                              "src": "27997:11:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_DataResult_$37293_memory_ptr_$returns$_t_bool_$",
                                "typeString": "function (struct Witnet.DataResult memory) pure returns (bool)"
                              }
                            },
                            "id": 38242,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "27997:17:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                            "typeString": "enum Witnet.RadonDataTypes"
                          },
                          "id": 38247,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 38244,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38234,
                              "src": "28035:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                "typeString": "struct Witnet.DataResult memory"
                              }
                            },
                            "id": 38245,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "28040:8:116",
                            "memberName": "dataType",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37281,
                            "src": "28035:13:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                              "typeString": "enum Witnet.RadonDataTypes"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 38246,
                            "name": "expectedDataType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38237,
                            "src": "28052:16:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                              "typeString": "enum Witnet.RadonDataTypes"
                            }
                          },
                          "src": "28035:33:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "27996:72:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "63626f723a2063616e6e6f742066657463682064617461",
                        "id": 38249,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "28084:25:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f9e00dcd71685f8522f8d07872510c3a81c2039687b393455d27e0cdc22dcafa",
                          "typeString": "literal_string \"cbor: cannot fetch data\""
                        },
                        "value": "cbor: cannot fetch data"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f9e00dcd71685f8522f8d07872510c3a81c2039687b393455d27e0cdc22dcafa",
                          "typeString": "literal_string \"cbor: cannot fetch data\""
                        }
                      ],
                      "id": 38239,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "27974:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 38250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27974:146:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 38251,
                  "nodeType": "ExpressionStatement",
                  "src": "27974:146:116"
                },
                {
                  "id": 38252,
                  "nodeType": "PlaceholderStatement",
                  "src": "28122:1:116"
                },
                {
                  "expression": {
                    "id": 38260,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 38253,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38234,
                        "src": "28135:4:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                          "typeString": "struct Witnet.DataResult memory"
                        }
                      },
                      "id": 38255,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "28140:8:116",
                      "memberName": "dataType",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 37281,
                      "src": "28135:13:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                        "typeString": "enum Witnet.RadonDataTypes"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 38257,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38234,
                            "src": "28169:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                              "typeString": "struct Witnet.DataResult memory"
                            }
                          },
                          "id": 38258,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "28174:5:116",
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37292,
                          "src": "28169:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        ],
                        "id": 38256,
                        "name": "peekRadonDataType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38622,
                        "src": "28151:17:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_enum$_RadonDataTypes_$37720_$",
                          "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (enum Witnet.RadonDataTypes)"
                        }
                      },
                      "id": 38259,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "28151:29:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                        "typeString": "enum Witnet.RadonDataTypes"
                      }
                    },
                    "src": "28135:45:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  },
                  "id": 38261,
                  "nodeType": "ExpressionStatement",
                  "src": "28135:45:116"
                }
              ]
            },
            "id": 38263,
            "name": "_checkDataType",
            "nameLocation": "27891:14:116",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 38238,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38234,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "27924:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38263,
                  "src": "27906:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38233,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38232,
                      "name": "DataResult",
                      "nameLocations": [
                        "27906:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "27906:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "27906:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38237,
                  "mutability": "mutable",
                  "name": "expectedDataType",
                  "nameLocation": "27945:16:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38263,
                  "src": "27930:31:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                    "typeString": "enum Witnet.RadonDataTypes"
                  },
                  "typeName": {
                    "id": 38236,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38235,
                      "name": "RadonDataTypes",
                      "nameLocations": [
                        "27930:14:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37720,
                      "src": "27930:14:116"
                    },
                    "referencedDeclaration": 37720,
                    "src": "27930:14:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27905:57:116"
            },
            "src": "27882:306:116",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38283,
              "nodeType": "Block",
              "src": "28357:59:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "expression": {
                              "id": 38277,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38266,
                              "src": "28385:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                "typeString": "struct Witnet.DataResult memory"
                              }
                            },
                            "id": 38278,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "28390:5:116",
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37292,
                            "src": "28385:10:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 38279,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "28396:9:116",
                          "memberName": "readBytes",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 43572,
                          "src": "28385:20:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                            "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (bytes memory)"
                          }
                        },
                        "id": 38280,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "28385:22:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 38276,
                      "name": "toAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39649,
                      "src": "28375:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$",
                        "typeString": "function (bytes memory) pure returns (address)"
                      }
                    },
                    "id": 38281,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "28375:33:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 38275,
                  "id": 38282,
                  "nodeType": "Return",
                  "src": "28368:40:116"
                }
              ]
            },
            "id": 38284,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38269,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38266,
                    "src": "28291:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38270,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "28297:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38271,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "28312:5:116",
                    "memberName": "Bytes",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37703,
                    "src": "28297:20:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38272,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38268,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "28276:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "28276:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "28276:42:116"
              }
            ],
            "name": "fetchAddress",
            "nameLocation": "28205:12:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38267,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38266,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "28236:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38284,
                  "src": "28218:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38265,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38264,
                      "name": "DataResult",
                      "nameLocations": [
                        "28218:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "28218:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "28218:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28217:24:116"
            },
            "returnParameters": {
              "id": 38275,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38274,
                  "mutability": "mutable",
                  "name": "_res",
                  "nameLocation": "28346:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38284,
                  "src": "28338:12:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 38273,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "28338:7:116",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28337:14:116"
            },
            "scope": 40741,
            "src": "28196:220:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38302,
              "nodeType": "Block",
              "src": "28573:47:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 38297,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38287,
                          "src": "28591:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38298,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "28596:5:116",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37292,
                        "src": "28591:10:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 38299,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "28602:8:116",
                      "memberName": "readBool",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 43473,
                      "src": "28591:19:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (bool)"
                      }
                    },
                    "id": 38300,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "28591:21:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38296,
                  "id": 38301,
                  "nodeType": "Return",
                  "src": "28584:28:116"
                }
              ]
            },
            "id": 38303,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38290,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38287,
                    "src": "28516:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38291,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "28522:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "28537:4:116",
                    "memberName": "Bool",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37702,
                    "src": "28522:19:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38293,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38289,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "28501:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "28501:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "28501:41:116"
              }
            ],
            "name": "fetchBool",
            "nameLocation": "28433:9:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38287,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "28461:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38303,
                  "src": "28443:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38286,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38285,
                      "name": "DataResult",
                      "nameLocations": [
                        "28443:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "28443:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "28443:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28442:24:116"
            },
            "returnParameters": {
              "id": 38296,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38295,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38303,
                  "src": "28562:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38294,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "28562:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28561:6:116"
            },
            "scope": 40741,
            "src": "28424:196:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38321,
              "nodeType": "Block",
              "src": "28786:48:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 38316,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38306,
                          "src": "28804:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38317,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "28809:5:116",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37292,
                        "src": "28804:10:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 38318,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "28815:9:116",
                      "memberName": "readBytes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 43572,
                      "src": "28804:20:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (bytes memory)"
                      }
                    },
                    "id": 38319,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "28804:22:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "functionReturnParameters": 38315,
                  "id": 38320,
                  "nodeType": "Return",
                  "src": "28797:29:116"
                }
              ]
            },
            "id": 38322,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38309,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38306,
                    "src": "28720:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38310,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "28726:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38311,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "28741:5:116",
                    "memberName": "Bytes",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37703,
                    "src": "28726:20:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38312,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38308,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "28705:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "28705:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "28705:42:116"
              }
            ],
            "name": "fetchBytes",
            "nameLocation": "28637:10:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38307,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38306,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "28666:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38322,
                  "src": "28648:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38305,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38304,
                      "name": "DataResult",
                      "nameLocations": [
                        "28648:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "28648:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "28648:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28647:24:116"
            },
            "returnParameters": {
              "id": 38315,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38314,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38322,
                  "src": "28767:12:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 38313,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "28767:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28766:14:116"
            },
            "scope": 40741,
            "src": "28628:206:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38342,
              "nodeType": "Block",
              "src": "28995:58:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "expression": {
                              "id": 38336,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38325,
                              "src": "29022:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                "typeString": "struct Witnet.DataResult memory"
                              }
                            },
                            "id": 38337,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "29027:5:116",
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37292,
                            "src": "29022:10:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 38338,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "29033:9:116",
                          "memberName": "readBytes",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 43572,
                          "src": "29022:20:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                            "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (bytes memory)"
                          }
                        },
                        "id": 38339,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "29022:22:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 38335,
                      "name": "toBytes4",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39665,
                      "src": "29013:8:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
                        "typeString": "function (bytes memory) pure returns (bytes4)"
                      }
                    },
                    "id": 38340,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "29013:32:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 38334,
                  "id": 38341,
                  "nodeType": "Return",
                  "src": "29006:39:116"
                }
              ]
            },
            "id": 38343,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38328,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38325,
                    "src": "28935:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38329,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "28941:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38330,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "28956:5:116",
                    "memberName": "Bytes",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37703,
                    "src": "28941:20:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38331,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38327,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "28920:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "28920:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "28920:42:116"
              }
            ],
            "name": "fetchBytes4",
            "nameLocation": "28851:11:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38326,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38325,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "28881:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38343,
                  "src": "28863:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38324,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38323,
                      "name": "DataResult",
                      "nameLocations": [
                        "28863:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "28863:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "28863:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28862:24:116"
            },
            "returnParameters": {
              "id": 38334,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38333,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38343,
                  "src": "28982:6:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 38332,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "28982:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28981:8:116"
            },
            "scope": 40741,
            "src": "28842:211:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38363,
              "nodeType": "Block",
              "src": "29216:59:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "expression": {
                              "id": 38357,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38346,
                              "src": "29244:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                "typeString": "struct Witnet.DataResult memory"
                              }
                            },
                            "id": 38358,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "29249:5:116",
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37292,
                            "src": "29244:10:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 38359,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "29255:9:116",
                          "memberName": "readBytes",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 43572,
                          "src": "29244:20:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                            "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (bytes memory)"
                          }
                        },
                        "id": 38360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "29244:22:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 38356,
                      "name": "toBytes32",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39694,
                      "src": "29234:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 38361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "29234:33:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 38355,
                  "id": 38362,
                  "nodeType": "Return",
                  "src": "29227:40:116"
                }
              ]
            },
            "id": 38364,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38349,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38346,
                    "src": "29155:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38350,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "29161:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "29176:5:116",
                    "memberName": "Bytes",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37703,
                    "src": "29161:20:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38352,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38348,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "29140:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "29140:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "29140:42:116"
              }
            ],
            "name": "fetchBytes32",
            "nameLocation": "29070:12:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38347,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38346,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "29101:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38364,
                  "src": "29083:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38345,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38344,
                      "name": "DataResult",
                      "nameLocations": [
                        "29083:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "29083:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "29083:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29082:24:116"
            },
            "returnParameters": {
              "id": 38355,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38354,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38364,
                  "src": "29202:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 38353,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "29202:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29201:9:116"
            },
            "scope": 40741,
            "src": "29061:214:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38384,
              "nodeType": "Block",
              "src": "29457:48:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 38379,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38367,
                          "src": "29475:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38380,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "29480:5:116",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37292,
                        "src": "29475:10:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 38381,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "29486:9:116",
                      "memberName": "readArray",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 43240,
                      "src": "29475:20:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                      }
                    },
                    "id": 38382,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "29475:22:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                    }
                  },
                  "functionReturnParameters": 38378,
                  "id": 38383,
                  "nodeType": "Return",
                  "src": "29468:29:116"
                }
              ]
            },
            "id": 38385,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38370,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38367,
                    "src": "29379:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38371,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "29385:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "29400:5:116",
                    "memberName": "Array",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37701,
                    "src": "29385:20:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38373,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38369,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "29364:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "29364:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "29364:42:116"
              }
            ],
            "name": "fetchCborArray",
            "nameLocation": "29292:14:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38368,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38367,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "29325:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38385,
                  "src": "29307:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38366,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38365,
                      "name": "DataResult",
                      "nameLocations": [
                        "29307:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "29307:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "29307:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29306:24:116"
            },
            "returnParameters": {
              "id": 38378,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38377,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38385,
                  "src": "29426:24:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 38375,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 38374,
                        "name": "WitnetCBOR.CBOR",
                        "nameLocations": [
                          "29426:10:116",
                          "29437:4:116"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 42658,
                        "src": "29426:15:116"
                      },
                      "referencedDeclaration": 42658,
                      "src": "29426:15:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                        "typeString": "struct WitnetCBOR.CBOR"
                      }
                    },
                    "id": 38376,
                    "nodeType": "ArrayTypeName",
                    "src": "29426:17:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_storage_$dyn_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29425:26:116"
            },
            "scope": 40741,
            "src": "29283:222:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38404,
              "nodeType": "Block",
              "src": "30131:50:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 38399,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38389,
                          "src": "30149:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38400,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "30154:5:116",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37292,
                        "src": "30149:10:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 38401,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "30160:11:116",
                      "memberName": "readFloat16",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 43603,
                      "src": "30149:22:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_int32_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (int32)"
                      }
                    },
                    "id": 38402,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30149:24:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int32",
                      "typeString": "int32"
                    }
                  },
                  "functionReturnParameters": 38398,
                  "id": 38403,
                  "nodeType": "Return",
                  "src": "30142:31:116"
                }
              ]
            },
            "documentation": {
              "id": 38386,
              "nodeType": "StructuredDocumentation",
              "src": "29513:454:116",
              "text": "@dev Decode a fixed16 (half-precision) numeric value from the Result's CBOR value.\n @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values.\n by 5 decimal orders so as to get a fixed precision of 5 decimal positions, which should be OK for most `fixed16`.\n use cases. In other words, the output of this method is 10,000 times the actual value, encoded into an `int32`."
            },
            "id": 38405,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38392,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38389,
                    "src": "30072:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38393,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "30078:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38394,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "30093:5:116",
                    "memberName": "Float",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37705,
                    "src": "30078:20:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38395,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38391,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "30057:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "30057:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "30057:42:116"
              }
            ],
            "name": "fetchFloatFixed16",
            "nameLocation": "29982:17:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38390,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38389,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "30018:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38405,
                  "src": "30000:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38388,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38387,
                      "name": "DataResult",
                      "nameLocations": [
                        "30000:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "30000:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "30000:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29999:24:116"
            },
            "returnParameters": {
              "id": 38398,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38397,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38405,
                  "src": "30119:5:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int32",
                    "typeString": "int32"
                  },
                  "typeName": {
                    "id": 38396,
                    "name": "int32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30119:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int32",
                      "typeString": "int32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30118:7:116"
            },
            "scope": 40741,
            "src": "29973:208:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38425,
              "nodeType": "Block",
              "src": "30437:55:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 38420,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38409,
                          "src": "30455:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38421,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "30460:5:116",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37292,
                        "src": "30455:10:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 38422,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "30466:16:116",
                      "memberName": "readFloat16Array",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 43736,
                      "src": "30455:27:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_array$_t_int32_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (int32[] memory)"
                      }
                    },
                    "id": 38423,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30455:29:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                      "typeString": "int32[] memory"
                    }
                  },
                  "functionReturnParameters": 38419,
                  "id": 38424,
                  "nodeType": "Return",
                  "src": "30448:36:116"
                }
              ]
            },
            "documentation": {
              "id": 38406,
              "nodeType": "StructuredDocumentation",
              "src": "30189:72:116",
              "text": "@dev Decode an array of fixed16 values from the Result's CBOR value."
            },
            "id": 38426,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38412,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38409,
                    "src": "30370:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38413,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "30376:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38414,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "30391:5:116",
                    "memberName": "Array",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37701,
                    "src": "30376:20:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38415,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38411,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "30355:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "30355:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "30355:42:116"
              }
            ],
            "name": "fetchFloatFixed16Array",
            "nameLocation": "30276:22:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38410,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38409,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "30317:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38426,
                  "src": "30299:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38408,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38407,
                      "name": "DataResult",
                      "nameLocations": [
                        "30299:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "30299:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "30299:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30298:24:116"
            },
            "returnParameters": {
              "id": 38419,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38418,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38426,
                  "src": "30416:14:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                    "typeString": "int32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 38416,
                      "name": "int32",
                      "nodeType": "ElementaryTypeName",
                      "src": "30416:5:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int32",
                        "typeString": "int32"
                      }
                    },
                    "id": 38417,
                    "nodeType": "ArrayTypeName",
                    "src": "30416:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int32_$dyn_storage_ptr",
                      "typeString": "int32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30415:16:116"
            },
            "scope": 40741,
            "src": "30267:225:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38445,
              "nodeType": "Block",
              "src": "30720:46:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 38440,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38430,
                          "src": "30738:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38441,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "30743:5:116",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37292,
                        "src": "30738:10:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 38442,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "30749:7:116",
                      "memberName": "readInt",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 43795,
                      "src": "30738:18:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_int64_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (int64)"
                      }
                    },
                    "id": 38443,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30738:20:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int64",
                      "typeString": "int64"
                    }
                  },
                  "functionReturnParameters": 38439,
                  "id": 38444,
                  "nodeType": "Return",
                  "src": "30731:27:116"
                }
              ]
            },
            "documentation": {
              "id": 38427,
              "nodeType": "StructuredDocumentation",
              "src": "30500:65:116",
              "text": "@dev Decode a `int64` value from the DataResult's CBOR value."
            },
            "id": 38446,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38433,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38430,
                    "src": "30660:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38434,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "30666:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "30681:7:116",
                    "memberName": "Integer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37704,
                    "src": "30666:22:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38436,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38432,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "30645:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "30645:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "30645:44:116"
              }
            ],
            "name": "fetchInt",
            "nameLocation": "30580:8:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38431,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38430,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "30607:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38446,
                  "src": "30589:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38429,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38428,
                      "name": "DataResult",
                      "nameLocations": [
                        "30589:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "30589:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "30589:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30588:24:116"
            },
            "returnParameters": {
              "id": 38439,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38438,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38446,
                  "src": "30708:5:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int64",
                    "typeString": "int64"
                  },
                  "typeName": {
                    "id": 38437,
                    "name": "int64",
                    "nodeType": "ElementaryTypeName",
                    "src": "30708:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int64",
                      "typeString": "int64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30707:7:116"
            },
            "scope": 40741,
            "src": "30571:195:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38465,
              "nodeType": "Block",
              "src": "30937:51:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 38460,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38449,
                          "src": "30955:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38461,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "30960:5:116",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37292,
                        "src": "30955:10:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 38462,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "30966:12:116",
                      "memberName": "readIntArray",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 43866,
                      "src": "30955:23:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_array$_t_int64_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (int64[] memory)"
                      }
                    },
                    "id": 38463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30955:25:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int64_$dyn_memory_ptr",
                      "typeString": "int64[] memory"
                    }
                  },
                  "functionReturnParameters": 38459,
                  "id": 38464,
                  "nodeType": "Return",
                  "src": "30948:32:116"
                }
              ]
            },
            "id": 38466,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38452,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38449,
                    "src": "30870:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38453,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "30876:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "30891:5:116",
                    "memberName": "Array",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37701,
                    "src": "30876:20:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38455,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38451,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "30855:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "30855:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "30855:42:116"
              }
            ],
            "name": "fetchInt64Array",
            "nameLocation": "30783:15:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38450,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38449,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "30817:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38466,
                  "src": "30799:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38448,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38447,
                      "name": "DataResult",
                      "nameLocations": [
                        "30799:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "30799:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "30799:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30798:24:116"
            },
            "returnParameters": {
              "id": 38459,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38458,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38466,
                  "src": "30916:14:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_int64_$dyn_memory_ptr",
                    "typeString": "int64[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 38456,
                      "name": "int64",
                      "nodeType": "ElementaryTypeName",
                      "src": "30916:5:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int64",
                        "typeString": "int64"
                      }
                    },
                    "id": 38457,
                    "nodeType": "ArrayTypeName",
                    "src": "30916:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int64_$dyn_storage_ptr",
                      "typeString": "int64[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30915:16:116"
            },
            "scope": 40741,
            "src": "30774:214:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38484,
              "nodeType": "Block",
              "src": "31155:49:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 38479,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38469,
                          "src": "31173:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38480,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "31178:5:116",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37292,
                        "src": "31173:10:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 38481,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "31184:10:116",
                      "memberName": "readString",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 43951,
                      "src": "31173:21:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (string memory)"
                      }
                    },
                    "id": 38482,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31173:23:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 38478,
                  "id": 38483,
                  "nodeType": "Return",
                  "src": "31166:30:116"
                }
              ]
            },
            "id": 38485,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38472,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38469,
                    "src": "31088:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38473,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "31094:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38474,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "31109:6:116",
                    "memberName": "String",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37707,
                    "src": "31094:21:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38475,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38471,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "31073:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "31073:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "31073:43:116"
              }
            ],
            "name": "fetchString",
            "nameLocation": "31005:11:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38470,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38469,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "31035:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38485,
                  "src": "31017:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38468,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38467,
                      "name": "DataResult",
                      "nameLocations": [
                        "31017:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "31017:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "31017:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31016:24:116"
            },
            "returnParameters": {
              "id": 38478,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38477,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38485,
                  "src": "31135:13:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 38476,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "31135:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31134:15:116"
            },
            "scope": 40741,
            "src": "30996:208:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38504,
              "nodeType": "Block",
              "src": "31377:54:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 38499,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38488,
                          "src": "31395:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38500,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "31400:5:116",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37292,
                        "src": "31395:10:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 38501,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "31406:15:116",
                      "memberName": "readStringArray",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 44022,
                      "src": "31395:26:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (string memory[] memory)"
                      }
                    },
                    "id": 38502,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31395:28:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                      "typeString": "string memory[] memory"
                    }
                  },
                  "functionReturnParameters": 38498,
                  "id": 38503,
                  "nodeType": "Return",
                  "src": "31388:35:116"
                }
              ]
            },
            "id": 38505,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38491,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38488,
                    "src": "31309:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38492,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "31315:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38493,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "31330:5:116",
                    "memberName": "Array",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37701,
                    "src": "31315:20:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38494,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38490,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "31294:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "31294:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "31294:42:116"
              }
            ],
            "name": "fetchStringArray",
            "nameLocation": "31221:16:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38489,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38488,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "31256:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38505,
                  "src": "31238:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38487,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38486,
                      "name": "DataResult",
                      "nameLocations": [
                        "31238:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "31238:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "31238:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31237:24:116"
            },
            "returnParameters": {
              "id": 38498,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38497,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38505,
                  "src": "31355:15:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 38495,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "31355:6:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 38496,
                    "nodeType": "ArrayTypeName",
                    "src": "31355:8:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31354:17:116"
            },
            "scope": 40741,
            "src": "31212:219:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38524,
              "nodeType": "Block",
              "src": "31662:47:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 38519,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38509,
                          "src": "31680:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38520,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "31685:5:116",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37292,
                        "src": "31680:10:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 38521,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "31691:8:116",
                      "memberName": "readUint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 44043,
                      "src": "31680:19:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (uint64)"
                      }
                    },
                    "id": 38522,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31680:21:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "functionReturnParameters": 38518,
                  "id": 38523,
                  "nodeType": "Return",
                  "src": "31673:28:116"
                }
              ]
            },
            "documentation": {
              "id": 38506,
              "nodeType": "StructuredDocumentation",
              "src": "31439:66:116",
              "text": "@dev Decode a `uint64` value from the DataResult's CBOR value."
            },
            "id": 38525,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38512,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38509,
                    "src": "31601:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38513,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "31607:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38514,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "31622:7:116",
                    "memberName": "Integer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37704,
                    "src": "31607:22:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38515,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38511,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "31586:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "31586:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "31586:44:116"
              }
            ],
            "name": "fetchUint",
            "nameLocation": "31520:9:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38510,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38509,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "31548:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38525,
                  "src": "31530:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38508,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38507,
                      "name": "DataResult",
                      "nameLocations": [
                        "31530:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "31530:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "31530:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31529:24:116"
            },
            "returnParameters": {
              "id": 38518,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38517,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38525,
                  "src": "31649:6:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 38516,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "31649:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31648:8:116"
            },
            "scope": 40741,
            "src": "31511:198:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38544,
              "nodeType": "Block",
              "src": "31882:52:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 38539,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38528,
                          "src": "31900:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        },
                        "id": 38540,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "31905:5:116",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37292,
                        "src": "31900:10:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 38541,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "31911:13:116",
                      "memberName": "readUintArray",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 44114,
                      "src": "31900:24:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_array$_t_uint64_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (uint64[] memory)"
                      }
                    },
                    "id": 38542,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31900:26:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr",
                      "typeString": "uint64[] memory"
                    }
                  },
                  "functionReturnParameters": 38538,
                  "id": 38543,
                  "nodeType": "Return",
                  "src": "31893:33:116"
                }
              ]
            },
            "id": 38545,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38531,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38528,
                    "src": "31814:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  {
                    "expression": {
                      "id": 38532,
                      "name": "RadonDataTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37720,
                      "src": "31820:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                        "typeString": "type(enum Witnet.RadonDataTypes)"
                      }
                    },
                    "id": 38533,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "31835:5:116",
                    "memberName": "Array",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37701,
                    "src": "31820:20:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  }
                ],
                "id": 38534,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38530,
                  "name": "_checkDataType",
                  "nameLocations": [
                    "31799:14:116"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 38263,
                  "src": "31799:14:116"
                },
                "nodeType": "ModifierInvocation",
                "src": "31799:42:116"
              }
            ],
            "name": "fetchUint64Array",
            "nameLocation": "31726:16:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38529,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38528,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "31761:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38545,
                  "src": "31743:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 38527,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38526,
                      "name": "DataResult",
                      "nameLocations": [
                        "31743:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "31743:10:116"
                    },
                    "referencedDeclaration": 37293,
                    "src": "31743:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31742:24:116"
            },
            "returnParameters": {
              "id": 38538,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38537,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38545,
                  "src": "31860:15:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr",
                    "typeString": "uint64[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 38535,
                      "name": "uint64",
                      "nodeType": "ElementaryTypeName",
                      "src": "31860:6:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "id": 38536,
                    "nodeType": "ArrayTypeName",
                    "src": "31860:8:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint64_$dyn_storage_ptr",
                      "typeString": "uint64[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31859:17:116"
            },
            "scope": 40741,
            "src": "31717:217:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 38548,
            "mutability": "constant",
            "name": "_CBOR_MAJOR_TYPE_TO_RADON_DATA_TYPES_MAP",
            "nameLocation": "31966:40:116",
            "nodeType": "VariableDeclaration",
            "scope": 40741,
            "src": "31942:83:116",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes7",
              "typeString": "bytes7"
            },
            "typeName": {
              "id": 38546,
              "name": "bytes7",
              "nodeType": "ElementaryTypeName",
              "src": "31942:6:116",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes7",
                "typeString": "bytes7"
              }
            },
            "value": {
              "hexValue": "30783034303430333037303130363030",
              "id": 38547,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "32009:16:116",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1130310955763200_by_1",
                "typeString": "int_const 1130310955763200"
              },
              "value": "0x04040307010600"
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 38621,
              "nodeType": "Block",
              "src": "32133:642:116",
              "statements": [
                {
                  "expression": {
                    "id": 38560,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 38557,
                      "name": "_type",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 38555,
                      "src": "32144:5:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                        "typeString": "enum Witnet.RadonDataTypes"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 38558,
                        "name": "RadonDataTypes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37720,
                        "src": "32152:14:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                          "typeString": "type(enum Witnet.RadonDataTypes)"
                        }
                      },
                      "id": 38559,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "32167:3:116",
                      "memberName": "Any",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 37700,
                      "src": "32152:18:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                        "typeString": "enum Witnet.RadonDataTypes"
                      }
                    },
                    "src": "32144:26:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  },
                  "id": 38561,
                  "nodeType": "ExpressionStatement",
                  "src": "32144:26:116"
                },
                {
                  "condition": {
                    "id": 38565,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "32185:11:116",
                    "subExpression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 38562,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38551,
                          "src": "32186:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 38563,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "32191:3:116",
                        "memberName": "eof",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42774,
                        "src": "32186:8:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                          "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (bool)"
                        }
                      },
                      "id": 38564,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "32186:10:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 38620,
                  "nodeType": "IfStatement",
                  "src": "32181:587:116",
                  "trueBody": {
                    "id": 38619,
                    "nodeType": "Block",
                    "src": "32198:570:116",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 38569,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 38566,
                              "name": "cbor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38551,
                              "src": "32217:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory"
                              }
                            },
                            "id": 38567,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "32222:9:116",
                            "memberName": "majorType",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 42651,
                            "src": "32217:14:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "hexValue": "36",
                            "id": 38568,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "32235:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_6_by_1",
                              "typeString": "int_const 6"
                            },
                            "value": "6"
                          },
                          "src": "32217:19:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 38587,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 38584,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38551,
                                "src": "32391:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 38585,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "32396:9:116",
                              "memberName": "majorType",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42651,
                              "src": "32391:14:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "37",
                              "id": 38586,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "32409:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_7_by_1",
                                "typeString": "int_const 7"
                              },
                              "value": "7"
                            },
                            "src": "32391:19:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 38617,
                          "nodeType": "IfStatement",
                          "src": "32387:370:116",
                          "trueBody": {
                            "id": 38616,
                            "nodeType": "Block",
                            "src": "32412:345:116",
                            "statements": [
                              {
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "id": 38596,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    "id": 38591,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "expression": {
                                        "id": 38588,
                                        "name": "cbor",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 38551,
                                        "src": "32435:4:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                          "typeString": "struct WitnetCBOR.CBOR memory"
                                        }
                                      },
                                      "id": 38589,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "32440:21:116",
                                      "memberName": "additionalInformation",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 42653,
                                      "src": "32435:26:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "==",
                                    "rightExpression": {
                                      "hexValue": "3230",
                                      "id": 38590,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "32465:2:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_20_by_1",
                                        "typeString": "int_const 20"
                                      },
                                      "value": "20"
                                    },
                                    "src": "32435:32:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "||",
                                  "rightExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    "id": 38595,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "expression": {
                                        "id": 38592,
                                        "name": "cbor",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 38551,
                                        "src": "32471:4:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                          "typeString": "struct WitnetCBOR.CBOR memory"
                                        }
                                      },
                                      "id": 38593,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "32476:21:116",
                                      "memberName": "additionalInformation",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 42653,
                                      "src": "32471:26:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "==",
                                    "rightExpression": {
                                      "hexValue": "3231",
                                      "id": 38594,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "32501:2:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_21_by_1",
                                        "typeString": "int_const 21"
                                      },
                                      "value": "21"
                                    },
                                    "src": "32471:32:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "src": "32435:68:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "condition": {
                                    "commonType": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "id": 38609,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 38604,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 38601,
                                          "name": "cbor",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 38551,
                                          "src": "32602:4:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                            "typeString": "struct WitnetCBOR.CBOR memory"
                                          }
                                        },
                                        "id": 38602,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "32607:21:116",
                                        "memberName": "additionalInformation",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 42653,
                                        "src": "32602:26:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">=",
                                      "rightExpression": {
                                        "hexValue": "3235",
                                        "id": 38603,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "32632:2:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_25_by_1",
                                          "typeString": "int_const 25"
                                        },
                                        "value": "25"
                                      },
                                      "src": "32602:32:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&&",
                                    "rightExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 38608,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 38605,
                                          "name": "cbor",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 38551,
                                          "src": "32638:4:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                            "typeString": "struct WitnetCBOR.CBOR memory"
                                          }
                                        },
                                        "id": 38606,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "32643:21:116",
                                        "memberName": "additionalInformation",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 42653,
                                        "src": "32638:26:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "<=",
                                      "rightExpression": {
                                        "hexValue": "3237",
                                        "id": 38607,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "32668:2:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_27_by_1",
                                          "typeString": "int_const 27"
                                        },
                                        "value": "27"
                                      },
                                      "src": "32638:32:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "src": "32602:68:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "id": 38614,
                                  "nodeType": "IfStatement",
                                  "src": "32598:144:116",
                                  "trueBody": {
                                    "id": 38613,
                                    "nodeType": "Block",
                                    "src": "32672:70:116",
                                    "statements": [
                                      {
                                        "expression": {
                                          "expression": {
                                            "id": 38610,
                                            "name": "RadonDataTypes",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 37720,
                                            "src": "32702:14:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                                              "typeString": "type(enum Witnet.RadonDataTypes)"
                                            }
                                          },
                                          "id": 38611,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberLocation": "32717:5:116",
                                          "memberName": "Float",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 37705,
                                          "src": "32702:20:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                                            "typeString": "enum Witnet.RadonDataTypes"
                                          }
                                        },
                                        "functionReturnParameters": 38556,
                                        "id": 38612,
                                        "nodeType": "Return",
                                        "src": "32695:27:116"
                                      }
                                    ]
                                  }
                                },
                                "id": 38615,
                                "nodeType": "IfStatement",
                                "src": "32431:311:116",
                                "trueBody": {
                                  "id": 38600,
                                  "nodeType": "Block",
                                  "src": "32505:87:116",
                                  "statements": [
                                    {
                                      "expression": {
                                        "expression": {
                                          "id": 38597,
                                          "name": "RadonDataTypes",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 37720,
                                          "src": "32535:14:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                                            "typeString": "type(enum Witnet.RadonDataTypes)"
                                          }
                                        },
                                        "id": 38598,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberLocation": "32550:4:116",
                                        "memberName": "Bool",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 37702,
                                        "src": "32535:19:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                                          "typeString": "enum Witnet.RadonDataTypes"
                                        }
                                      },
                                      "functionReturnParameters": 38556,
                                      "id": 38599,
                                      "nodeType": "Return",
                                      "src": "32528:26:116"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        "id": 38618,
                        "nodeType": "IfStatement",
                        "src": "32213:544:116",
                        "trueBody": {
                          "id": 38583,
                          "nodeType": "Block",
                          "src": "32238:143:116",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "id": 38575,
                                              "name": "_CBOR_MAJOR_TYPE_TO_RADON_DATA_TYPES_MAP",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 38548,
                                              "src": "32292:40:116",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes7",
                                                "typeString": "bytes7"
                                              }
                                            },
                                            "id": 38578,
                                            "indexExpression": {
                                              "expression": {
                                                "id": 38576,
                                                "name": "cbor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 38551,
                                                "src": "32333:4:116",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                                }
                                              },
                                              "id": 38577,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "32338:9:116",
                                              "memberName": "majorType",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 42651,
                                              "src": "32333:14:116",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "32292:56:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          ],
                                          "id": 38574,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "32285:6:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 38573,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "32285:6:116",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 38579,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "32285:64:116",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 38572,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "32279:5:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 38571,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "32279:5:116",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 38580,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "32279:71:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 38570,
                                  "name": "RadonDataTypes",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37720,
                                  "src": "32264:14:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                                    "typeString": "type(enum Witnet.RadonDataTypes)"
                                  }
                                },
                                "id": 38581,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "32264:87:116",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                                  "typeString": "enum Witnet.RadonDataTypes"
                                }
                              },
                              "functionReturnParameters": 38556,
                              "id": 38582,
                              "nodeType": "Return",
                              "src": "32257:94:116"
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "id": 38622,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "peekRadonDataType",
            "nameLocation": "32041:17:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38552,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38551,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "32082:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38622,
                  "src": "32059:27:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 38550,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38549,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "32059:10:116",
                        "32070:4:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "32059:15:116"
                    },
                    "referencedDeclaration": 42658,
                    "src": "32059:15:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "32058:29:116"
            },
            "returnParameters": {
              "id": 38556,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38555,
                  "mutability": "mutable",
                  "name": "_type",
                  "nameLocation": "32126:5:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38622,
                  "src": "32111:20:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                    "typeString": "enum Witnet.RadonDataTypes"
                  },
                  "typeName": {
                    "id": 38554,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38553,
                      "name": "RadonDataTypes",
                      "nameLocations": [
                        "32111:14:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37720,
                      "src": "32111:14:116"
                    },
                    "referencedDeclaration": 37720,
                    "src": "32111:14:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "32110:22:116"
            },
            "scope": 40741,
            "src": "32032:743:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38641,
              "nodeType": "Block",
              "src": "33048:58:116",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "baseExpression": {
                        "id": 38633,
                        "name": "rollup",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38627,
                        "src": "33066:6:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct Witnet.FastForward calldata[] calldata"
                        }
                      },
                      "id": 38638,
                      "indexExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 38637,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 38634,
                            "name": "rollup",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38627,
                            "src": "33073:6:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "struct Witnet.FastForward calldata[] calldata"
                            }
                          },
                          "id": 38635,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "33080:6:116",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "33073:13:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 38636,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "33089:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "33073:17:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "33066:25:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_FastForward_$37306_calldata_ptr",
                        "typeString": "struct Witnet.FastForward calldata"
                      }
                    },
                    "id": 38639,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "33092:6:116",
                    "memberName": "beacon",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37296,
                    "src": "33066:32:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_calldata_ptr",
                      "typeString": "struct Witnet.Beacon calldata"
                    }
                  },
                  "functionReturnParameters": 38632,
                  "id": 38640,
                  "nodeType": "Return",
                  "src": "33059:39:116"
                }
              ]
            },
            "documentation": {
              "id": 38623,
              "nodeType": "StructuredDocumentation",
              "src": "32785:158:116",
              "text": "=======================================================================\n --- FastForward helper functions --------------------------------------"
            },
            "id": 38642,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "head",
            "nameLocation": "32958:4:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38628,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38627,
                  "mutability": "mutable",
                  "name": "rollup",
                  "nameLocation": "32986:6:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38642,
                  "src": "32963:29:116",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct Witnet.FastForward[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 38625,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 38624,
                        "name": "FastForward",
                        "nameLocations": [
                          "32963:11:116"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 37306,
                        "src": "32963:11:116"
                      },
                      "referencedDeclaration": 37306,
                      "src": "32963:11:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_FastForward_$37306_storage_ptr",
                        "typeString": "struct Witnet.FastForward"
                      }
                    },
                    "id": 38626,
                    "nodeType": "ArrayTypeName",
                    "src": "32963:13:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_storage_$dyn_storage_ptr",
                      "typeString": "struct Witnet.FastForward[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "32962:31:116"
            },
            "returnParameters": {
              "id": 38632,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38631,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38642,
                  "src": "33026:15:116",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_calldata_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 38630,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38629,
                      "name": "Beacon",
                      "nameLocations": [
                        "33026:6:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "33026:6:116"
                    },
                    "referencedDeclaration": 37242,
                    "src": "33026:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "33025:17:116"
            },
            "scope": 40741,
            "src": "32949:157:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38673,
              "nodeType": "Block",
              "src": "33466:243:116",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 38670,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 38664,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            },
                            "id": 38658,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 38654,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38646,
                                "src": "33503:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                                  "typeString": "struct Witnet.QuerySLA calldata"
                                }
                              },
                              "id": 38655,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "33508:16:116",
                              "memberName": "witCommitteeSize",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37370,
                              "src": "33503:21:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint16",
                                "typeString": "uint16"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "expression": {
                                "id": 38656,
                                "name": "stored",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38649,
                                "src": "33528:6:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                                  "typeString": "struct Witnet.QuerySLA storage pointer"
                                }
                              },
                              "id": 38657,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "33535:16:116",
                              "memberName": "witCommitteeSize",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37370,
                              "src": "33528:23:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint16",
                                "typeString": "uint16"
                              }
                            },
                            "src": "33503:48:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            },
                            "id": 38663,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 38659,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38646,
                                "src": "33572:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                                  "typeString": "struct Witnet.QuerySLA calldata"
                                }
                              },
                              "id": 38660,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "33577:16:116",
                              "memberName": "witUnitaryReward",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37372,
                              "src": "33572:21:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "expression": {
                                "id": 38661,
                                "name": "stored",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38649,
                                "src": "33597:6:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                                  "typeString": "struct Witnet.QuerySLA storage pointer"
                                }
                              },
                              "id": 38662,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "33604:16:116",
                              "memberName": "witUnitaryReward",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37372,
                              "src": "33597:23:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            "src": "33572:48:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "33503:117:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          },
                          "id": 38669,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 38665,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38646,
                              "src": "33642:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                                "typeString": "struct Witnet.QuerySLA calldata"
                              }
                            },
                            "id": 38666,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "33647:16:116",
                            "memberName": "witResultMaxSize",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37368,
                            "src": "33642:21:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "expression": {
                              "id": 38667,
                              "name": "stored",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38649,
                              "src": "33667:6:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                                "typeString": "struct Witnet.QuerySLA storage pointer"
                              }
                            },
                            "id": 38668,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "33674:16:116",
                            "memberName": "witResultMaxSize",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37368,
                            "src": "33667:23:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "src": "33642:48:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "33503:187:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 38671,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "33484:217:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38653,
                  "id": 38672,
                  "nodeType": "Return",
                  "src": "33477:224:116"
                }
              ]
            },
            "documentation": {
              "id": 38643,
              "nodeType": "StructuredDocumentation",
              "src": "33116:238:116",
              "text": "===============================================================================================================\n --- Query* helper methods -------------------------------------------------------------------------------------"
            },
            "id": 38674,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "equalOrGreaterThan",
            "nameLocation": "33369:18:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38650,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38646,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "33406:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38674,
                  "src": "33388:22:116",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                    "typeString": "struct Witnet.QuerySLA"
                  },
                  "typeName": {
                    "id": 38645,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38644,
                      "name": "QuerySLA",
                      "nameLocations": [
                        "33388:8:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37373,
                      "src": "33388:8:116"
                    },
                    "referencedDeclaration": 37373,
                    "src": "33388:8:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                      "typeString": "struct Witnet.QuerySLA"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38649,
                  "mutability": "mutable",
                  "name": "stored",
                  "nameLocation": "33429:6:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38674,
                  "src": "33412:23:116",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                    "typeString": "struct Witnet.QuerySLA"
                  },
                  "typeName": {
                    "id": 38648,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38647,
                      "name": "QuerySLA",
                      "nameLocations": [
                        "33412:8:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37373,
                      "src": "33412:8:116"
                    },
                    "referencedDeclaration": 37373,
                    "src": "33412:8:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                      "typeString": "struct Witnet.QuerySLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "33387:49:116"
            },
            "returnParameters": {
              "id": 38653,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38652,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38674,
                  "src": "33460:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38651,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "33460:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "33459:6:116"
            },
            "scope": 40741,
            "src": "33360:349:116",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38692,
              "nodeType": "Block",
              "src": "33782:71:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 38687,
                                "name": "hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38677,
                                "src": "33838:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                                  "typeString": "Witnet.QueryUUID"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                                  "typeString": "Witnet.QueryUUID"
                                }
                              ],
                              "expression": {
                                "id": 38685,
                                "name": "QueryUUID",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37149,
                                "src": "33821:9:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryUUID_$37149_$",
                                  "typeString": "type(Witnet.QueryUUID)"
                                }
                              },
                              "id": 38686,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "33831:6:116",
                              "memberName": "unwrap",
                              "nodeType": "MemberAccess",
                              "src": "33821:16:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_QueryUUID_$37149_$returns$_t_bytes15_$",
                                "typeString": "function (Witnet.QueryUUID) pure returns (bytes15)"
                              }
                            },
                            "id": 38688,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "33821:22:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes15",
                              "typeString": "bytes15"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes15",
                              "typeString": "bytes15"
                            }
                          ],
                          "expression": {
                            "id": 38683,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "33810:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 38684,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "33814:6:116",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "33810:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 38689,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "33810:34:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 38682,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "33800:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 38690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "33800:45:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 38681,
                  "id": 38691,
                  "nodeType": "Return",
                  "src": "33793:52:116"
                }
              ]
            },
            "id": 38693,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hashify",
            "nameLocation": "33726:7:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38678,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38677,
                  "mutability": "mutable",
                  "name": "hash",
                  "nameLocation": "33744:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38693,
                  "src": "33734:14:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                    "typeString": "Witnet.QueryUUID"
                  },
                  "typeName": {
                    "id": 38676,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38675,
                      "name": "QueryUUID",
                      "nameLocations": [
                        "33734:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37149,
                      "src": "33734:9:116"
                    },
                    "referencedDeclaration": 37149,
                    "src": "33734:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                      "typeString": "Witnet.QueryUUID"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "33733:16:116"
            },
            "returnParameters": {
              "id": 38681,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38680,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38693,
                  "src": "33773:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 38679,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33773:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "33772:9:116"
            },
            "scope": 40741,
            "src": "33717:136:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38739,
              "nodeType": "Block",
              "src": "33982:278:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "id": 38718,
                                            "name": "this",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4294967268,
                                            "src": "34099:4:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_contract$_Witnet_$40741",
                                              "typeString": "library Witnet"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_Witnet_$40741",
                                              "typeString": "library Witnet"
                                            }
                                          ],
                                          "id": 38717,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "34091:7:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_address_$",
                                            "typeString": "type(address)"
                                          },
                                          "typeName": {
                                            "id": 38716,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "34091:7:116",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 38719,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "34091:13:116",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "id": 38715,
                                      "name": "channel",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 37227,
                                      "src": "34083:7:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bytes4_$",
                                        "typeString": "function (address) view returns (bytes4)"
                                      }
                                    },
                                    "id": 38720,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "34083:22:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes4",
                                      "typeString": "bytes4"
                                    }
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 38725,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "expression": {
                                            "id": 38722,
                                            "name": "block",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4294967292,
                                            "src": "34135:5:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_magic_block",
                                              "typeString": "block"
                                            }
                                          },
                                          "id": 38723,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "34141:6:116",
                                          "memberName": "number",
                                          "nodeType": "MemberAccess",
                                          "src": "34135:12:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "-",
                                        "rightExpression": {
                                          "hexValue": "31",
                                          "id": 38724,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "34150:1:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_1_by_1",
                                            "typeString": "int_const 1"
                                          },
                                          "value": "1"
                                        },
                                        "src": "34135:16:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 38721,
                                      "name": "blockhash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967291,
                                      "src": "34125:9:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$",
                                        "typeString": "function (uint256) view returns (bytes32)"
                                      }
                                    },
                                    "id": 38726,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "34125:27:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "id": 38727,
                                    "name": "_queryId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 38696,
                                    "src": "34171:8:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                      "typeString": "Witnet.QueryId"
                                    }
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "id": 38731,
                                        "name": "_radHash",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 38699,
                                        "src": "34205:8:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                                          "typeString": "Witnet.RadonHash"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                                          "typeString": "Witnet.RadonHash"
                                        }
                                      ],
                                      "expression": {
                                        "expression": {
                                          "id": 38728,
                                          "name": "Witnet",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 40741,
                                          "src": "34181:6:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                            "typeString": "type(library Witnet)"
                                          }
                                        },
                                        "id": 38729,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "34188:9:116",
                                        "memberName": "RadonHash",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 37153,
                                        "src": "34181:16:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_userDefinedValueType$_RadonHash_$37153_$",
                                          "typeString": "type(Witnet.RadonHash)"
                                        }
                                      },
                                      "id": 38730,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberLocation": "34198:6:116",
                                      "memberName": "unwrap",
                                      "nodeType": "MemberAccess",
                                      "src": "34181:23:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_RadonHash_$37153_$returns$_t_bytes32_$",
                                        "typeString": "function (Witnet.RadonHash) pure returns (bytes32)"
                                      }
                                    },
                                    "id": 38732,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "34181:33:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "id": 38733,
                                    "name": "_slaHash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 38701,
                                    "src": "34216:8:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes4",
                                      "typeString": "bytes4"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                      "typeString": "Witnet.QueryId"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "expression": {
                                    "id": 38713,
                                    "name": "abi",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967295,
                                    "src": "34054:3:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_abi",
                                      "typeString": "abi"
                                    }
                                  },
                                  "id": 38714,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberLocation": "34058:6:116",
                                  "memberName": "encode",
                                  "nodeType": "MemberAccess",
                                  "src": "34054:10:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function () pure returns (bytes memory)"
                                  }
                                },
                                "id": 38734,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "34054:185:116",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 38712,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967288,
                              "src": "34044:9:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 38735,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "34044:196:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 38711,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "34022:7:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes15_$",
                            "typeString": "type(bytes15)"
                          },
                          "typeName": {
                            "id": 38710,
                            "name": "bytes15",
                            "nodeType": "ElementaryTypeName",
                            "src": "34022:7:116",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 38736,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "34022:229:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes15",
                          "typeString": "bytes15"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes15",
                          "typeString": "bytes15"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 38707,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "34000:6:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 38708,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "34007:9:116",
                        "memberName": "QueryUUID",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37149,
                        "src": "34000:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryUUID_$37149_$",
                          "typeString": "type(Witnet.QueryUUID)"
                        }
                      },
                      "id": 38709,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "34017:4:116",
                      "memberName": "wrap",
                      "nodeType": "MemberAccess",
                      "src": "34000:21:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_wrap_pure$_t_bytes15_$returns$_t_userDefinedValueType$_QueryUUID_$37149_$",
                        "typeString": "function (bytes15) pure returns (Witnet.QueryUUID)"
                      }
                    },
                    "id": 38737,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "34000:252:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                      "typeString": "Witnet.QueryUUID"
                    }
                  },
                  "functionReturnParameters": 38706,
                  "id": 38738,
                  "nodeType": "Return",
                  "src": "33993:259:116"
                }
              ]
            },
            "id": 38740,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hashify",
            "nameLocation": "33870:7:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38702,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38696,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "33886:8:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38740,
                  "src": "33878:16:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                    "typeString": "Witnet.QueryId"
                  },
                  "typeName": {
                    "id": 38695,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38694,
                      "name": "QueryId",
                      "nameLocations": [
                        "33878:7:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37151,
                      "src": "33878:7:116"
                    },
                    "referencedDeclaration": 37151,
                    "src": "33878:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38699,
                  "mutability": "mutable",
                  "name": "_radHash",
                  "nameLocation": "33913:8:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38740,
                  "src": "33896:25:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  },
                  "typeName": {
                    "id": 38698,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38697,
                      "name": "Witnet.RadonHash",
                      "nameLocations": [
                        "33896:6:116",
                        "33903:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37153,
                      "src": "33896:16:116"
                    },
                    "referencedDeclaration": 37153,
                    "src": "33896:16:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38701,
                  "mutability": "mutable",
                  "name": "_slaHash",
                  "nameLocation": "33931:8:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38740,
                  "src": "33923:16:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 38700,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33923:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "33877:63:116"
            },
            "returnParameters": {
              "id": 38706,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38705,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38740,
                  "src": "33964:16:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                    "typeString": "Witnet.QueryUUID"
                  },
                  "typeName": {
                    "id": 38704,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38703,
                      "name": "Witnet.QueryUUID",
                      "nameLocations": [
                        "33964:6:116",
                        "33971:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37149,
                      "src": "33964:16:116"
                    },
                    "referencedDeclaration": 37149,
                    "src": "33964:16:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                      "typeString": "Witnet.QueryUUID"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "33963:18:116"
            },
            "scope": 40741,
            "src": "33861:399:116",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38760,
              "nodeType": "Block",
              "src": "34343:184:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 38751,
                              "name": "querySLA",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38743,
                              "src": "34402:8:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                "typeString": "struct Witnet.QuerySLA memory"
                              }
                            },
                            "id": 38752,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "34411:16:116",
                            "memberName": "witResultMaxSize",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37368,
                            "src": "34402:25:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          {
                            "expression": {
                              "id": 38753,
                              "name": "querySLA",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38743,
                              "src": "34442:8:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                "typeString": "struct Witnet.QuerySLA memory"
                              }
                            },
                            "id": 38754,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "34451:16:116",
                            "memberName": "witCommitteeSize",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37370,
                            "src": "34442:25:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          {
                            "expression": {
                              "id": 38755,
                              "name": "querySLA",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38743,
                              "src": "34482:8:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                "typeString": "struct Witnet.QuerySLA memory"
                              }
                            },
                            "id": 38756,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "34491:16:116",
                            "memberName": "witUnitaryReward",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37372,
                            "src": "34482:25:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            },
                            {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            },
                            {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          ],
                          "expression": {
                            "id": 38749,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "34371:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 38750,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "34375:12:116",
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "34371:16:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 38757,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "34371:147:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 38748,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "34361:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 38758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "34361:158:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 38747,
                  "id": 38759,
                  "nodeType": "Return",
                  "src": "34354:165:116"
                }
              ]
            },
            "id": 38761,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hashify",
            "nameLocation": "34277:7:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38744,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38743,
                  "mutability": "mutable",
                  "name": "querySLA",
                  "nameLocation": "34301:8:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38761,
                  "src": "34285:24:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                    "typeString": "struct Witnet.QuerySLA"
                  },
                  "typeName": {
                    "id": 38742,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38741,
                      "name": "QuerySLA",
                      "nameLocations": [
                        "34285:8:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37373,
                      "src": "34285:8:116"
                    },
                    "referencedDeclaration": 37373,
                    "src": "34285:8:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                      "typeString": "struct Witnet.QuerySLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "34284:26:116"
            },
            "returnParameters": {
              "id": 38747,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38746,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38761,
                  "src": "34334:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 38745,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "34334:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "34333:9:116"
            },
            "scope": 40741,
            "src": "34268:259:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38790,
              "nodeType": "Block",
              "src": "34603:219:116",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 38787,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 38782,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 38777,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint16",
                                "typeString": "uint16"
                              },
                              "id": 38772,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 38769,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 38764,
                                  "src": "34636:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                    "typeString": "struct Witnet.QuerySLA memory"
                                  }
                                },
                                "id": 38770,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "34641:16:116",
                                "memberName": "witResultMaxSize",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37368,
                                "src": "34636:21:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "hexValue": "30",
                                "id": 38771,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "34661:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "34636:26:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint16",
                                "typeString": "uint16"
                              },
                              "id": 38776,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 38773,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 38764,
                                  "src": "34683:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                    "typeString": "struct Witnet.QuerySLA memory"
                                  }
                                },
                                "id": 38774,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "34688:16:116",
                                "memberName": "witCommitteeSize",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37370,
                                "src": "34683:21:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">",
                              "rightExpression": {
                                "hexValue": "30",
                                "id": 38775,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "34707:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "34683:25:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "34636:72:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            },
                            "id": 38781,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 38778,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38764,
                                "src": "34729:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                  "typeString": "struct Witnet.QuerySLA memory"
                                }
                              },
                              "id": 38779,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "34734:16:116",
                              "memberName": "witCommitteeSize",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37370,
                              "src": "34729:21:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint16",
                                "typeString": "uint16"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "hexValue": "313237",
                              "id": 38780,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "34754:3:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_127_by_1",
                                "typeString": "int_const 127"
                              },
                              "value": "127"
                            },
                            "src": "34729:28:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "34636:121:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 38786,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 38783,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38764,
                              "src": "34778:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                "typeString": "struct Witnet.QuerySLA memory"
                              }
                            },
                            "id": 38784,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "34783:16:116",
                            "memberName": "witUnitaryReward",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37372,
                            "src": "34778:21:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 38785,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "34802:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "34778:25:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "34636:167:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 38788,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "34621:193:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38768,
                  "id": 38789,
                  "nodeType": "Return",
                  "src": "34614:200:116"
                }
              ]
            },
            "id": 38791,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isValid",
            "nameLocation": "34544:7:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38765,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38764,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "34568:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38791,
                  "src": "34552:20:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                    "typeString": "struct Witnet.QuerySLA"
                  },
                  "typeName": {
                    "id": 38763,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38762,
                      "name": "QuerySLA",
                      "nameLocations": [
                        "34552:8:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37373,
                      "src": "34552:8:116"
                    },
                    "referencedDeclaration": 37373,
                    "src": "34552:8:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                      "typeString": "struct Witnet.QuerySLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "34551:22:116"
            },
            "returnParameters": {
              "id": 38768,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38767,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38791,
                  "src": "34597:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38766,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "34597:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "34596:6:116"
            },
            "scope": 40741,
            "src": "34535:287:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38807,
              "nodeType": "Block",
              "src": "34886:50:116",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 38804,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 38801,
                              "name": "a",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38794,
                              "src": "34920:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                "typeString": "Witnet.QueryId"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                "typeString": "Witnet.QueryId"
                              }
                            ],
                            "expression": {
                              "id": 38799,
                              "name": "QueryId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37151,
                              "src": "34905:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                                "typeString": "type(Witnet.QueryId)"
                              }
                            },
                            "id": 38800,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "34913:6:116",
                            "memberName": "unwrap",
                            "nodeType": "MemberAccess",
                            "src": "34905:14:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_QueryId_$37151_$returns$_t_uint64_$",
                              "typeString": "function (Witnet.QueryId) pure returns (uint64)"
                            }
                          },
                          "id": 38802,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "34905:17:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 38803,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "34926:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "34905:22:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 38805,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "34904:24:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38798,
                  "id": 38806,
                  "nodeType": "Return",
                  "src": "34897:31:116"
                }
              ]
            },
            "id": 38808,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isZero",
            "nameLocation": "34839:6:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38795,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38794,
                  "mutability": "mutable",
                  "name": "a",
                  "nameLocation": "34854:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38808,
                  "src": "34846:9:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                    "typeString": "Witnet.QueryId"
                  },
                  "typeName": {
                    "id": 38793,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38792,
                      "name": "QueryId",
                      "nameLocations": [
                        "34846:7:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37151,
                      "src": "34846:7:116"
                    },
                    "referencedDeclaration": 37151,
                    "src": "34846:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "34845:11:116"
            },
            "returnParameters": {
              "id": 38798,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38797,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38808,
                  "src": "34880:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38796,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "34880:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "34879:6:116"
            },
            "scope": 40741,
            "src": "34830:106:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38838,
              "nodeType": "Block",
              "src": "35024:359:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 38820,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38811,
                              "src": "35088:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                                "typeString": "struct Witnet.QuerySLA calldata"
                              }
                            },
                            "id": 38821,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "35093:16:116",
                            "memberName": "witCommitteeSize",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37370,
                            "src": "35088:21:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          ],
                          "id": 38819,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "35082:5:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 38818,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "35082:5:116",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 38822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "35082:28:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "hexValue": "3531",
                        "id": 38823,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "35149:2:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_51_by_1",
                          "typeString": "int_const 51"
                        },
                        "value": "51"
                      },
                      {
                        "expression": {
                          "id": 38824,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38811,
                          "src": "35181:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                            "typeString": "struct Witnet.QuerySLA calldata"
                          }
                        },
                        "id": 38825,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "35186:16:116",
                        "memberName": "witUnitaryReward",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37372,
                        "src": "35181:21:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 38830,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 38826,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38811,
                            "src": "35236:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                              "typeString": "struct Witnet.QuerySLA calldata"
                            }
                          },
                          "id": 38827,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "35241:16:116",
                          "memberName": "witUnitaryReward",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37372,
                          "src": "35236:21:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "*",
                        "rightExpression": {
                          "expression": {
                            "id": 38828,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38811,
                            "src": "35260:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                              "typeString": "struct Witnet.QuerySLA calldata"
                            }
                          },
                          "id": 38829,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "35265:16:116",
                          "memberName": "witCommitteeSize",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37370,
                          "src": "35260:21:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "src": "35236:45:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 38835,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 38831,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38811,
                            "src": "35318:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                              "typeString": "struct Witnet.QuerySLA calldata"
                            }
                          },
                          "id": 38832,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "35323:16:116",
                          "memberName": "witUnitaryReward",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37372,
                          "src": "35318:21:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "/",
                        "rightExpression": {
                          "expression": {
                            "id": 38833,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38811,
                            "src": "35342:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                              "typeString": "struct Witnet.QuerySLA calldata"
                            }
                          },
                          "id": 38834,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "35347:16:116",
                          "memberName": "witCommitteeSize",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37370,
                          "src": "35342:21:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "src": "35318:45:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_rational_51_by_1",
                          "typeString": "int_const 51"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 38817,
                      "name": "RadonSLAv1",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37814,
                      "src": "35042:10:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_RadonSLAv1_$37814_storage_ptr_$",
                        "typeString": "type(struct Witnet.RadonSLAv1 storage pointer)"
                      }
                    },
                    "id": 38836,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "35068:12:116",
                      "35125:22:116",
                      "35166:13:116",
                      "35217:17:116",
                      "35296:20:116"
                    ],
                    "names": [
                      "numWitnesses",
                      "minConsensusPercentage",
                      "witnessReward",
                      "witnessCollateral",
                      "minerCommitRevealFee"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "35042:333:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLAv1_$37814_memory_ptr",
                      "typeString": "struct Witnet.RadonSLAv1 memory"
                    }
                  },
                  "functionReturnParameters": 38816,
                  "id": 38837,
                  "nodeType": "Return",
                  "src": "35035:340:116"
                }
              ]
            },
            "id": 38839,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toV1",
            "nameLocation": "34953:4:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38812,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38811,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "34976:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38839,
                  "src": "34958:22:116",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                    "typeString": "struct Witnet.QuerySLA"
                  },
                  "typeName": {
                    "id": 38810,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38809,
                      "name": "QuerySLA",
                      "nameLocations": [
                        "34958:8:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37373,
                      "src": "34958:8:116"
                    },
                    "referencedDeclaration": 37373,
                    "src": "34958:8:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                      "typeString": "struct Witnet.QuerySLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "34957:24:116"
            },
            "returnParameters": {
              "id": 38816,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38815,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38839,
                  "src": "35005:17:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonSLAv1_$37814_memory_ptr",
                    "typeString": "struct Witnet.RadonSLAv1"
                  },
                  "typeName": {
                    "id": 38814,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38813,
                      "name": "RadonSLAv1",
                      "nameLocations": [
                        "35005:10:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37814,
                      "src": "35005:10:116"
                    },
                    "referencedDeclaration": 37814,
                    "src": "35005:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLAv1_$37814_storage_ptr",
                      "typeString": "struct Witnet.RadonSLAv1"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "35004:19:116"
            },
            "scope": 40741,
            "src": "34944:439:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38861,
              "nodeType": "Block",
              "src": "35704:68:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 38859,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 38853,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38843,
                          "src": "35739:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          }
                        ],
                        "expression": {
                          "id": 38851,
                          "name": "RadonHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37153,
                          "src": "35722:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_RadonHash_$37153_$",
                            "typeString": "type(Witnet.RadonHash)"
                          }
                        },
                        "id": 38852,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "35732:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "35722:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_RadonHash_$37153_$returns$_t_bytes32_$",
                          "typeString": "function (Witnet.RadonHash) pure returns (bytes32)"
                        }
                      },
                      "id": 38854,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "35722:19:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 38857,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38846,
                          "src": "35762:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          }
                        ],
                        "expression": {
                          "id": 38855,
                          "name": "RadonHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37153,
                          "src": "35745:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_RadonHash_$37153_$",
                            "typeString": "type(Witnet.RadonHash)"
                          }
                        },
                        "id": 38856,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "35755:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "35745:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_RadonHash_$37153_$returns$_t_bytes32_$",
                          "typeString": "function (Witnet.RadonHash) pure returns (bytes32)"
                        }
                      },
                      "id": 38858,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "35745:19:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "35722:42:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38850,
                  "id": 38860,
                  "nodeType": "Return",
                  "src": "35715:49:116"
                }
              ]
            },
            "documentation": {
              "id": 38840,
              "nodeType": "StructuredDocumentation",
              "src": "35393:238:116",
              "text": "===============================================================================================================\n --- RadonHash helper methods ----------------------------------------------------------------------------------"
            },
            "id": 38862,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "eq",
            "nameLocation": "35646:2:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38847,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38843,
                  "mutability": "mutable",
                  "name": "a",
                  "nameLocation": "35659:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38862,
                  "src": "35649:11:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  },
                  "typeName": {
                    "id": 38842,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38841,
                      "name": "RadonHash",
                      "nameLocations": [
                        "35649:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37153,
                      "src": "35649:9:116"
                    },
                    "referencedDeclaration": 37153,
                    "src": "35649:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38846,
                  "mutability": "mutable",
                  "name": "b",
                  "nameLocation": "35672:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38862,
                  "src": "35662:11:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  },
                  "typeName": {
                    "id": 38845,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38844,
                      "name": "RadonHash",
                      "nameLocations": [
                        "35662:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37153,
                      "src": "35662:9:116"
                    },
                    "referencedDeclaration": 37153,
                    "src": "35662:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "35648:26:116"
            },
            "returnParameters": {
              "id": 38850,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38849,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38862,
                  "src": "35698:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38848,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "35698:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "35697:6:116"
            },
            "scope": 40741,
            "src": "35637:135:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38880,
              "nodeType": "Block",
              "src": "35842:59:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 38878,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 38872,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38865,
                          "src": "35877:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          }
                        ],
                        "expression": {
                          "id": 38870,
                          "name": "RadonHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37153,
                          "src": "35860:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_RadonHash_$37153_$",
                            "typeString": "type(Witnet.RadonHash)"
                          }
                        },
                        "id": 38871,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "35870:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "35860:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_RadonHash_$37153_$returns$_t_bytes32_$",
                          "typeString": "function (Witnet.RadonHash) pure returns (bytes32)"
                        }
                      },
                      "id": 38873,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "35860:19:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 38876,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "35891:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 38875,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "35883:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": {
                          "id": 38874,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "35883:7:116",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 38877,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "35883:10:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "35860:33:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38869,
                  "id": 38879,
                  "nodeType": "Return",
                  "src": "35853:40:116"
                }
              ]
            },
            "id": 38881,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isZero",
            "nameLocation": "35793:6:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38866,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38865,
                  "mutability": "mutable",
                  "name": "h",
                  "nameLocation": "35810:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38881,
                  "src": "35800:11:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  },
                  "typeName": {
                    "id": 38864,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38863,
                      "name": "RadonHash",
                      "nameLocations": [
                        "35800:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37153,
                      "src": "35800:9:116"
                    },
                    "referencedDeclaration": 37153,
                    "src": "35800:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "35799:13:116"
            },
            "returnParameters": {
              "id": 38869,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38868,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38881,
                  "src": "35836:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38867,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "35836:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "35835:6:116"
            },
            "scope": 40741,
            "src": "35784:117:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38901,
              "nodeType": "Block",
              "src": "36226:120:116",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 38898,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_ResultStatus_$37698",
                            "typeString": "enum Witnet.ResultStatus"
                          },
                          "id": 38893,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 38890,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38885,
                            "src": "36259:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "expression": {
                              "id": 38891,
                              "name": "ResultStatus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37698,
                              "src": "36267:12:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                                "typeString": "type(enum Witnet.ResultStatus)"
                              }
                            },
                            "id": 38892,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "36280:8:116",
                            "memberName": "NoErrors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37375,
                            "src": "36267:21:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "src": "36259:29:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "id": 38897,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "36309:18:116",
                          "subExpression": {
                            "arguments": [
                              {
                                "id": 38895,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38885,
                                "src": "36322:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                  "typeString": "enum Witnet.ResultStatus"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                  "typeString": "enum Witnet.ResultStatus"
                                }
                              ],
                              "id": 38894,
                              "name": "keepWaiting",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                38217,
                                38959
                              ],
                              "referencedDeclaration": 38959,
                              "src": "36310:11:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_enum$_ResultStatus_$37698_$returns$_t_bool_$",
                                "typeString": "function (enum Witnet.ResultStatus) pure returns (bool)"
                              }
                            },
                            "id": 38896,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "36310:17:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "36259:68:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 38899,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "36244:94:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38889,
                  "id": 38900,
                  "nodeType": "Return",
                  "src": "36237:101:116"
                }
              ]
            },
            "documentation": {
              "id": 38882,
              "nodeType": "StructuredDocumentation",
              "src": "35915:238:116",
              "text": "===============================================================================================================\n --- ResultStatus helper methods -------------------------------------------------------------------------------"
            },
            "id": 38902,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hasErrors",
            "nameLocation": "36168:9:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38886,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38885,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "36191:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38902,
                  "src": "36178:17:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultStatus_$37698",
                    "typeString": "enum Witnet.ResultStatus"
                  },
                  "typeName": {
                    "id": 38884,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38883,
                      "name": "ResultStatus",
                      "nameLocations": [
                        "36178:12:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37698,
                      "src": "36178:12:116"
                    },
                    "referencedDeclaration": 37698,
                    "src": "36178:12:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResultStatus_$37698",
                      "typeString": "enum Witnet.ResultStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "36177:19:116"
            },
            "returnParameters": {
              "id": 38889,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38888,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38902,
                  "src": "36220:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38887,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "36220:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "36219:6:116"
            },
            "scope": 40741,
            "src": "36159:187:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38916,
              "nodeType": "Block",
              "src": "36428:70:116",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_enum$_ResultStatus_$37698",
                          "typeString": "enum Witnet.ResultStatus"
                        },
                        "id": 38913,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 38910,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38905,
                          "src": "36447:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ResultStatus_$37698",
                            "typeString": "enum Witnet.ResultStatus"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 38911,
                            "name": "ResultStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37698,
                            "src": "36455:12:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                              "typeString": "type(enum Witnet.ResultStatus)"
                            }
                          },
                          "id": 38912,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "36468:21:116",
                          "memberName": "CircumstantialFailure",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37501,
                          "src": "36455:34:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ResultStatus_$37698",
                            "typeString": "enum Witnet.ResultStatus"
                          }
                        },
                        "src": "36447:42:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 38914,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "36446:44:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38909,
                  "id": 38915,
                  "nodeType": "Return",
                  "src": "36439:51:116"
                }
              ]
            },
            "id": 38917,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isCircumstantial",
            "nameLocation": "36363:16:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38906,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38905,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "36393:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38917,
                  "src": "36380:17:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultStatus_$37698",
                    "typeString": "enum Witnet.ResultStatus"
                  },
                  "typeName": {
                    "id": 38904,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38903,
                      "name": "ResultStatus",
                      "nameLocations": [
                        "36380:12:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37698,
                      "src": "36380:12:116"
                    },
                    "referencedDeclaration": 37698,
                    "src": "36380:12:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResultStatus_$37698",
                      "typeString": "enum Witnet.ResultStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "36379:19:116"
            },
            "returnParameters": {
              "id": 38909,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38908,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38917,
                  "src": "36422:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38907,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "36422:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "36421:6:116"
            },
            "scope": 40741,
            "src": "36354:144:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38938,
              "nodeType": "Block",
              "src": "36575:157:116",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 38935,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 38931,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "id": 38926,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38920,
                                "src": "36624:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                  "typeString": "enum Witnet.ResultStatus"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                  "typeString": "enum Witnet.ResultStatus"
                                }
                              ],
                              "id": 38925,
                              "name": "lackOfConsensus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38984,
                              "src": "36608:15:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_enum$_ResultStatus_$37698_$returns$_t_bool_$",
                                "typeString": "function (enum Witnet.ResultStatus) pure returns (bool)"
                              }
                            },
                            "id": 38927,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "36608:21:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "arguments": [
                              {
                                "id": 38929,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38920,
                                "src": "36667:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                  "typeString": "enum Witnet.ResultStatus"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                  "typeString": "enum Witnet.ResultStatus"
                                }
                              ],
                              "id": 38928,
                              "name": "isCircumstantial",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38917,
                              "src": "36650:16:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_enum$_ResultStatus_$37698_$returns$_t_bool_$",
                                "typeString": "function (enum Witnet.ResultStatus) pure returns (bool)"
                              }
                            },
                            "id": 38930,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "36650:22:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "36608:64:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 38933,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38920,
                              "src": "36708:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                "typeString": "enum Witnet.ResultStatus"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                "typeString": "enum Witnet.ResultStatus"
                              }
                            ],
                            "id": 38932,
                            "name": "poorIncentives",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39014,
                            "src": "36693:14:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_enum$_ResultStatus_$37698_$returns$_t_bool_$",
                              "typeString": "function (enum Witnet.ResultStatus) pure returns (bool)"
                            }
                          },
                          "id": 38934,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "36693:20:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "36608:105:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 38936,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "36593:131:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38924,
                  "id": 38937,
                  "nodeType": "Return",
                  "src": "36586:138:116"
                }
              ]
            },
            "id": 38939,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isRetriable",
            "nameLocation": "36515:11:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38921,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38920,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "36540:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38939,
                  "src": "36527:17:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultStatus_$37698",
                    "typeString": "enum Witnet.ResultStatus"
                  },
                  "typeName": {
                    "id": 38919,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38918,
                      "name": "ResultStatus",
                      "nameLocations": [
                        "36527:12:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37698,
                      "src": "36527:12:116"
                    },
                    "referencedDeclaration": 37698,
                    "src": "36527:12:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResultStatus_$37698",
                      "typeString": "enum Witnet.ResultStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "36526:19:116"
            },
            "returnParameters": {
              "id": 38924,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38923,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38939,
                  "src": "36569:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38922,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "36569:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "36568:6:116"
            },
            "scope": 40741,
            "src": "36506:226:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38958,
              "nodeType": "Block",
              "src": "36809:155:116",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 38955,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_ResultStatus_$37698",
                            "typeString": "enum Witnet.ResultStatus"
                          },
                          "id": 38950,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 38947,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38942,
                            "src": "36842:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "id": 38948,
                              "name": "ResultStatus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37698,
                              "src": "36850:12:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                                "typeString": "type(enum Witnet.ResultStatus)"
                              }
                            },
                            "id": 38949,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "36863:19:116",
                            "memberName": "BoardAwaitingResult",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37675,
                            "src": "36850:32:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "src": "36842:40:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_ResultStatus_$37698",
                            "typeString": "enum Witnet.ResultStatus"
                          },
                          "id": 38954,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 38951,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38942,
                            "src": "36903:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "id": 38952,
                              "name": "ResultStatus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37698,
                              "src": "36911:12:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                                "typeString": "type(enum Witnet.ResultStatus)"
                              }
                            },
                            "id": 38953,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "36924:21:116",
                            "memberName": "BoardFinalizingResult",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37677,
                            "src": "36911:34:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "src": "36903:42:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "36842:103:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 38956,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "36827:129:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38946,
                  "id": 38957,
                  "nodeType": "Return",
                  "src": "36820:136:116"
                }
              ]
            },
            "id": 38959,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "keepWaiting",
            "nameLocation": "36749:11:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38943,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38942,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "36774:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38959,
                  "src": "36761:17:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultStatus_$37698",
                    "typeString": "enum Witnet.ResultStatus"
                  },
                  "typeName": {
                    "id": 38941,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38940,
                      "name": "ResultStatus",
                      "nameLocations": [
                        "36761:12:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37698,
                      "src": "36761:12:116"
                    },
                    "referencedDeclaration": 37698,
                    "src": "36761:12:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResultStatus_$37698",
                      "typeString": "enum Witnet.ResultStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "36760:19:116"
            },
            "returnParameters": {
              "id": 38946,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38945,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38959,
                  "src": "36803:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38944,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "36803:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "36802:6:116"
            },
            "scope": 40741,
            "src": "36740:224:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 38983,
              "nodeType": "Block",
              "src": "37045:215:116",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 38980,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 38975,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            },
                            "id": 38970,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 38967,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38962,
                              "src": "37078:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                "typeString": "enum Witnet.ResultStatus"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "expression": {
                                "id": 38968,
                                "name": "ResultStatus",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37698,
                                "src": "37086:12:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                                  "typeString": "type(enum Witnet.ResultStatus)"
                                }
                              },
                              "id": 38969,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "37099:19:116",
                              "memberName": "InsufficientCommits",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37497,
                              "src": "37086:32:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                "typeString": "enum Witnet.ResultStatus"
                              }
                            },
                            "src": "37078:40:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            },
                            "id": 38974,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 38971,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38962,
                              "src": "37139:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                "typeString": "enum Witnet.ResultStatus"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "expression": {
                                "id": 38972,
                                "name": "ResultStatus",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37698,
                                "src": "37147:12:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                                  "typeString": "type(enum Witnet.ResultStatus)"
                                }
                              },
                              "id": 38973,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "37160:20:116",
                              "memberName": "InsufficientMajority",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37495,
                              "src": "37147:33:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                "typeString": "enum Witnet.ResultStatus"
                              }
                            },
                            "src": "37139:41:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "37078:102:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_ResultStatus_$37698",
                            "typeString": "enum Witnet.ResultStatus"
                          },
                          "id": 38979,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 38976,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38962,
                            "src": "37201:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "id": 38977,
                              "name": "ResultStatus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37698,
                              "src": "37209:12:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                                "typeString": "type(enum Witnet.ResultStatus)"
                              }
                            },
                            "id": 38978,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "37222:19:116",
                            "memberName": "InsufficientReveals",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37493,
                            "src": "37209:32:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "src": "37201:40:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "37078:163:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 38981,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "37063:189:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38966,
                  "id": 38982,
                  "nodeType": "Return",
                  "src": "37056:196:116"
                }
              ]
            },
            "id": 38984,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "lackOfConsensus",
            "nameLocation": "36981:15:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38963,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38962,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "37010:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 38984,
                  "src": "36997:17:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultStatus_$37698",
                    "typeString": "enum Witnet.ResultStatus"
                  },
                  "typeName": {
                    "id": 38961,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38960,
                      "name": "ResultStatus",
                      "nameLocations": [
                        "36997:12:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37698,
                      "src": "36997:12:116"
                    },
                    "referencedDeclaration": 37698,
                    "src": "36997:12:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResultStatus_$37698",
                      "typeString": "enum Witnet.ResultStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "36996:19:116"
            },
            "returnParameters": {
              "id": 38966,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38965,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38984,
                  "src": "37039:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38964,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "37039:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "37038:6:116"
            },
            "scope": 40741,
            "src": "36972:288:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39013,
              "nodeType": "Block",
              "src": "37340:284:116",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 39010,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 39005,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 39000,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                "typeString": "enum Witnet.ResultStatus"
                              },
                              "id": 38995,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 38992,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38987,
                                "src": "37373:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                  "typeString": "enum Witnet.ResultStatus"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "expression": {
                                  "id": 38993,
                                  "name": "ResultStatus",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37698,
                                  "src": "37381:12:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                                    "typeString": "type(enum Witnet.ResultStatus)"
                                  }
                                },
                                "id": 38994,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "37394:20:116",
                                "memberName": "OversizedTallyResult",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37517,
                                "src": "37381:33:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                  "typeString": "enum Witnet.ResultStatus"
                                }
                              },
                              "src": "37373:41:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "||",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                "typeString": "enum Witnet.ResultStatus"
                              },
                              "id": 38999,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 38996,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38987,
                                "src": "37435:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                  "typeString": "enum Witnet.ResultStatus"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "expression": {
                                  "id": 38997,
                                  "name": "ResultStatus",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37698,
                                  "src": "37443:12:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                                    "typeString": "type(enum Witnet.ResultStatus)"
                                  }
                                },
                                "id": 38998,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "37456:19:116",
                                "memberName": "InsufficientCommits",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37497,
                                "src": "37443:32:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                  "typeString": "enum Witnet.ResultStatus"
                                }
                              },
                              "src": "37435:40:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "37373:102:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            },
                            "id": 39004,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 39001,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38987,
                              "src": "37496:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                "typeString": "enum Witnet.ResultStatus"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "expression": {
                                "id": 39002,
                                "name": "ResultStatus",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37698,
                                "src": "37504:12:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                                  "typeString": "type(enum Witnet.ResultStatus)"
                                }
                              },
                              "id": 39003,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "37517:20:116",
                              "memberName": "BridgePoorIncentives",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37657,
                              "src": "37504:33:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultStatus_$37698",
                                "typeString": "enum Witnet.ResultStatus"
                              }
                            },
                            "src": "37496:41:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "37373:164:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_ResultStatus_$37698",
                            "typeString": "enum Witnet.ResultStatus"
                          },
                          "id": 39009,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 39006,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38987,
                            "src": "37558:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "id": 39007,
                              "name": "ResultStatus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37698,
                              "src": "37566:12:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                                "typeString": "type(enum Witnet.ResultStatus)"
                              }
                            },
                            "id": 39008,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "37579:26:116",
                            "memberName": "BridgeOversizedTallyResult",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37659,
                            "src": "37566:39:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "src": "37558:47:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "37373:232:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 39011,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "37358:258:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 38991,
                  "id": 39012,
                  "nodeType": "Return",
                  "src": "37351:265:116"
                }
              ]
            },
            "id": 39014,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "poorIncentives",
            "nameLocation": "37277:14:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 38988,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38987,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "37305:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39014,
                  "src": "37292:17:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultStatus_$37698",
                    "typeString": "enum Witnet.ResultStatus"
                  },
                  "typeName": {
                    "id": 38986,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38985,
                      "name": "ResultStatus",
                      "nameLocations": [
                        "37292:12:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37698,
                      "src": "37292:12:116"
                    },
                    "referencedDeclaration": 37698,
                    "src": "37292:12:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResultStatus_$37698",
                      "typeString": "enum Witnet.ResultStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "37291:19:116"
            },
            "returnParameters": {
              "id": 38991,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38990,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39014,
                  "src": "37334:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38989,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "37334:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "37333:6:116"
            },
            "scope": 40741,
            "src": "37268:356:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39036,
              "nodeType": "Block",
              "src": "37945:67:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 39034,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 39028,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39018,
                          "src": "37980:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        ],
                        "expression": {
                          "id": 39026,
                          "name": "Timestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37157,
                          "src": "37963:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                            "typeString": "type(Witnet.Timestamp)"
                          }
                        },
                        "id": 39027,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "37973:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "37963:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                        }
                      },
                      "id": 39029,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "37963:19:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 39032,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39021,
                          "src": "38002:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        ],
                        "expression": {
                          "id": 39030,
                          "name": "Timestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37157,
                          "src": "37985:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                            "typeString": "type(Witnet.Timestamp)"
                          }
                        },
                        "id": 39031,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "37995:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "37985:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                        }
                      },
                      "id": 39033,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "37985:19:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "37963:41:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 39025,
                  "id": 39035,
                  "nodeType": "Return",
                  "src": "37956:48:116"
                }
              ]
            },
            "documentation": {
              "id": 39015,
              "nodeType": "StructuredDocumentation",
              "src": "37634:238:116",
              "text": "===============================================================================================================\n --- Timestamp helper methods ----------------------------------------------------------------------------------"
            },
            "id": 39037,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "gt",
            "nameLocation": "37887:2:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39022,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39018,
                  "mutability": "mutable",
                  "name": "a",
                  "nameLocation": "37900:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39037,
                  "src": "37890:11:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 39017,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 39016,
                      "name": "Timestamp",
                      "nameLocations": [
                        "37890:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "37890:9:116"
                    },
                    "referencedDeclaration": 37157,
                    "src": "37890:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 39021,
                  "mutability": "mutable",
                  "name": "b",
                  "nameLocation": "37913:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39037,
                  "src": "37903:11:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 39020,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 39019,
                      "name": "Timestamp",
                      "nameLocations": [
                        "37903:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "37903:9:116"
                    },
                    "referencedDeclaration": 37157,
                    "src": "37903:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "37889:26:116"
            },
            "returnParameters": {
              "id": 39025,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39024,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39037,
                  "src": "37939:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 39023,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "37939:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "37938:6:116"
            },
            "scope": 40741,
            "src": "37878:134:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39058,
              "nodeType": "Block",
              "src": "38088:68:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 39056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 39050,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39040,
                          "src": "38123:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        ],
                        "expression": {
                          "id": 39048,
                          "name": "Timestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37157,
                          "src": "38106:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                            "typeString": "type(Witnet.Timestamp)"
                          }
                        },
                        "id": 39049,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "38116:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "38106:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                        }
                      },
                      "id": 39051,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "38106:19:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 39054,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39043,
                          "src": "38146:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        ],
                        "expression": {
                          "id": 39052,
                          "name": "Timestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37157,
                          "src": "38129:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                            "typeString": "type(Witnet.Timestamp)"
                          }
                        },
                        "id": 39053,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "38139:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "38129:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                        }
                      },
                      "id": 39055,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "38129:19:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "38106:42:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 39047,
                  "id": 39057,
                  "nodeType": "Return",
                  "src": "38099:49:116"
                }
              ]
            },
            "id": 39059,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "egt",
            "nameLocation": "38029:3:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39044,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39040,
                  "mutability": "mutable",
                  "name": "a",
                  "nameLocation": "38043:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39059,
                  "src": "38033:11:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 39039,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 39038,
                      "name": "Timestamp",
                      "nameLocations": [
                        "38033:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "38033:9:116"
                    },
                    "referencedDeclaration": 37157,
                    "src": "38033:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 39043,
                  "mutability": "mutable",
                  "name": "b",
                  "nameLocation": "38056:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39059,
                  "src": "38046:11:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 39042,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 39041,
                      "name": "Timestamp",
                      "nameLocations": [
                        "38046:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "38046:9:116"
                    },
                    "referencedDeclaration": 37157,
                    "src": "38046:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38032:26:116"
            },
            "returnParameters": {
              "id": 39047,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39046,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39059,
                  "src": "38082:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 39045,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "38082:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38081:6:116"
            },
            "scope": 40741,
            "src": "38020:136:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39080,
              "nodeType": "Block",
              "src": "38232:68:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 39078,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 39072,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39062,
                          "src": "38267:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        ],
                        "expression": {
                          "id": 39070,
                          "name": "Timestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37157,
                          "src": "38250:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                            "typeString": "type(Witnet.Timestamp)"
                          }
                        },
                        "id": 39071,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "38260:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "38250:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                        }
                      },
                      "id": 39073,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "38250:19:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 39076,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39065,
                          "src": "38290:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        ],
                        "expression": {
                          "id": 39074,
                          "name": "Timestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37157,
                          "src": "38273:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                            "typeString": "type(Witnet.Timestamp)"
                          }
                        },
                        "id": 39075,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "38283:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "38273:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                        }
                      },
                      "id": 39077,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "38273:19:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "38250:42:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 39069,
                  "id": 39079,
                  "nodeType": "Return",
                  "src": "38243:49:116"
                }
              ]
            },
            "id": 39081,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "elt",
            "nameLocation": "38173:3:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39066,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39062,
                  "mutability": "mutable",
                  "name": "a",
                  "nameLocation": "38187:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39081,
                  "src": "38177:11:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 39061,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 39060,
                      "name": "Timestamp",
                      "nameLocations": [
                        "38177:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "38177:9:116"
                    },
                    "referencedDeclaration": 37157,
                    "src": "38177:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 39065,
                  "mutability": "mutable",
                  "name": "b",
                  "nameLocation": "38200:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39081,
                  "src": "38190:11:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 39064,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 39063,
                      "name": "Timestamp",
                      "nameLocations": [
                        "38190:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "38190:9:116"
                    },
                    "referencedDeclaration": 37157,
                    "src": "38190:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38176:26:116"
            },
            "returnParameters": {
              "id": 39069,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39068,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39081,
                  "src": "38226:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 39067,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "38226:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38225:6:116"
            },
            "scope": 40741,
            "src": "38164:136:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39096,
              "nodeType": "Block",
              "src": "38366:50:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 39094,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 39091,
                          "name": "t",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39084,
                          "src": "38401:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        ],
                        "expression": {
                          "id": 39089,
                          "name": "Timestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37157,
                          "src": "38384:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                            "typeString": "type(Witnet.Timestamp)"
                          }
                        },
                        "id": 39090,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "38394:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "38384:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                        }
                      },
                      "id": 39092,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "38384:19:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 39093,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "38407:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "38384:24:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 39088,
                  "id": 39095,
                  "nodeType": "Return",
                  "src": "38377:31:116"
                }
              ]
            },
            "id": 39097,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isZero",
            "nameLocation": "38317:6:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39085,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39084,
                  "mutability": "mutable",
                  "name": "t",
                  "nameLocation": "38334:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39097,
                  "src": "38324:11:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 39083,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 39082,
                      "name": "Timestamp",
                      "nameLocations": [
                        "38324:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "38324:9:116"
                    },
                    "referencedDeclaration": 37157,
                    "src": "38324:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38323:13:116"
            },
            "returnParameters": {
              "id": 39088,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39087,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39097,
                  "src": "38360:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 39086,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "38360:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38359:6:116"
            },
            "scope": 40741,
            "src": "38308:108:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39125,
              "nodeType": "Block",
              "src": "38760:86:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "3332",
                                "id": 39114,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "38808:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                },
                                "value": "32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                }
                              ],
                              "id": 39113,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "38800:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 39112,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "38800:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39115,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "38800:11:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "hexValue": "31",
                            "id": 39116,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "38813:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          {
                            "id": 39117,
                            "name": "_values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39102,
                            "src": "38816:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                              "typeString": "bytes32[1] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                              "typeString": "bytes32[1] memory"
                            }
                          ],
                          "expression": {
                            "id": 39110,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "38789:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 39111,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "38793:6:116",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "38789:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 39118,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "38789:35:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "components": [
                          {
                            "baseExpression": {
                              "id": 39120,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "38827:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 39119,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "38827:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39121,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "38827:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                              "typeString": "type(bytes32[] memory)"
                            }
                          }
                        ],
                        "id": 39122,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "38826:11:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      ],
                      "expression": {
                        "id": 39108,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "38778:3:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 39109,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "38782:6:116",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "38778:10:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 39123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "38778:60:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "functionReturnParameters": 39107,
                  "id": 39124,
                  "nodeType": "Return",
                  "src": "38771:67:116"
                }
              ]
            },
            "documentation": {
              "id": 39098,
              "nodeType": "StructuredDocumentation",
              "src": "38426:238:116",
              "text": "===============================================================================================================\n --- 'bytes*' helper methods -----------------------------------------------------------------------------------"
            },
            "id": 39126,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "intoMemArray",
            "nameLocation": "38679:12:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39103,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39102,
                  "mutability": "mutable",
                  "name": "_values",
                  "nameLocation": "38710:7:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39126,
                  "src": "38692:25:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                    "typeString": "bytes32[1]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39099,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "38692:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39101,
                    "length": {
                      "hexValue": "31",
                      "id": 39100,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "38700:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "38692:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$1_storage_ptr",
                      "typeString": "bytes32[1]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38691:27:116"
            },
            "returnParameters": {
              "id": 39107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39106,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39126,
                  "src": "38742:16:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39104,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "38742:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39105,
                    "nodeType": "ArrayTypeName",
                    "src": "38742:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38741:18:116"
            },
            "scope": 40741,
            "src": "38670:176:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39153,
              "nodeType": "Block",
              "src": "38944:86:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "3332",
                                "id": 39142,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "38992:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                },
                                "value": "32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                }
                              ],
                              "id": 39141,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "38984:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 39140,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "38984:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39143,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "38984:11:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "hexValue": "32",
                            "id": 39144,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "38997:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_2_by_1",
                              "typeString": "int_const 2"
                            },
                            "value": "2"
                          },
                          {
                            "id": 39145,
                            "name": "_values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39130,
                            "src": "39000:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$2_memory_ptr",
                              "typeString": "bytes32[2] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_rational_2_by_1",
                              "typeString": "int_const 2"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$2_memory_ptr",
                              "typeString": "bytes32[2] memory"
                            }
                          ],
                          "expression": {
                            "id": 39138,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "38973:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 39139,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "38977:6:116",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "38973:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 39146,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "38973:35:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "components": [
                          {
                            "baseExpression": {
                              "id": 39148,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "39011:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 39147,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "39011:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39149,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "39011:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                              "typeString": "type(bytes32[] memory)"
                            }
                          }
                        ],
                        "id": 39150,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "39010:11:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      ],
                      "expression": {
                        "id": 39136,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "38962:3:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 39137,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "38966:6:116",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "38962:10:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 39151,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "38962:60:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "functionReturnParameters": 39135,
                  "id": 39152,
                  "nodeType": "Return",
                  "src": "38955:67:116"
                }
              ]
            },
            "id": 39154,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "intoMemArray",
            "nameLocation": "38863:12:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39131,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39130,
                  "mutability": "mutable",
                  "name": "_values",
                  "nameLocation": "38894:7:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39154,
                  "src": "38876:25:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$2_memory_ptr",
                    "typeString": "bytes32[2]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39127,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "38876:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39129,
                    "length": {
                      "hexValue": "32",
                      "id": 39128,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "38884:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_2_by_1",
                        "typeString": "int_const 2"
                      },
                      "value": "2"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "38876:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$2_storage_ptr",
                      "typeString": "bytes32[2]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38875:27:116"
            },
            "returnParameters": {
              "id": 39135,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39134,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39154,
                  "src": "38926:16:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39132,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "38926:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39133,
                    "nodeType": "ArrayTypeName",
                    "src": "38926:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38925:18:116"
            },
            "scope": 40741,
            "src": "38854:176:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39181,
              "nodeType": "Block",
              "src": "39128:86:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "3332",
                                "id": 39170,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "39176:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                },
                                "value": "32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                }
                              ],
                              "id": 39169,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "39168:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 39168,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "39168:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39171,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "39168:11:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "hexValue": "33",
                            "id": 39172,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "39181:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_3_by_1",
                              "typeString": "int_const 3"
                            },
                            "value": "3"
                          },
                          {
                            "id": 39173,
                            "name": "_values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39158,
                            "src": "39184:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_rational_3_by_1",
                              "typeString": "int_const 3"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "expression": {
                            "id": 39166,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "39157:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 39167,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "39161:6:116",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "39157:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 39174,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "39157:35:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "components": [
                          {
                            "baseExpression": {
                              "id": 39176,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "39195:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 39175,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "39195:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39177,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "39195:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                              "typeString": "type(bytes32[] memory)"
                            }
                          }
                        ],
                        "id": 39178,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "39194:11:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      ],
                      "expression": {
                        "id": 39164,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "39146:3:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 39165,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "39150:6:116",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "39146:10:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 39179,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "39146:60:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "functionReturnParameters": 39163,
                  "id": 39180,
                  "nodeType": "Return",
                  "src": "39139:67:116"
                }
              ]
            },
            "id": 39182,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "intoMemArray",
            "nameLocation": "39047:12:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39159,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39158,
                  "mutability": "mutable",
                  "name": "_values",
                  "nameLocation": "39078:7:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39182,
                  "src": "39060:25:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                    "typeString": "bytes32[3]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39155,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "39060:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39157,
                    "length": {
                      "hexValue": "33",
                      "id": 39156,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "39068:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_3_by_1",
                        "typeString": "int_const 3"
                      },
                      "value": "3"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "39060:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$3_storage_ptr",
                      "typeString": "bytes32[3]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39059:27:116"
            },
            "returnParameters": {
              "id": 39163,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39162,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39182,
                  "src": "39110:16:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39160,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "39110:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39161,
                    "nodeType": "ArrayTypeName",
                    "src": "39110:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39109:18:116"
            },
            "scope": 40741,
            "src": "39038:176:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39209,
              "nodeType": "Block",
              "src": "39312:86:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "3332",
                                "id": 39198,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "39360:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                },
                                "value": "32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                }
                              ],
                              "id": 39197,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "39352:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 39196,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "39352:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39199,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "39352:11:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "hexValue": "34",
                            "id": 39200,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "39365:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "4"
                          },
                          {
                            "id": 39201,
                            "name": "_values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39186,
                            "src": "39368:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$4_memory_ptr",
                              "typeString": "bytes32[4] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$4_memory_ptr",
                              "typeString": "bytes32[4] memory"
                            }
                          ],
                          "expression": {
                            "id": 39194,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "39341:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 39195,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "39345:6:116",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "39341:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 39202,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "39341:35:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "components": [
                          {
                            "baseExpression": {
                              "id": 39204,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "39379:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 39203,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "39379:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39205,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "39379:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                              "typeString": "type(bytes32[] memory)"
                            }
                          }
                        ],
                        "id": 39206,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "39378:11:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      ],
                      "expression": {
                        "id": 39192,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "39330:3:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 39193,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "39334:6:116",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "39330:10:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 39207,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "39330:60:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "functionReturnParameters": 39191,
                  "id": 39208,
                  "nodeType": "Return",
                  "src": "39323:67:116"
                }
              ]
            },
            "id": 39210,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "intoMemArray",
            "nameLocation": "39231:12:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39186,
                  "mutability": "mutable",
                  "name": "_values",
                  "nameLocation": "39262:7:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39210,
                  "src": "39244:25:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$4_memory_ptr",
                    "typeString": "bytes32[4]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39183,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "39244:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39185,
                    "length": {
                      "hexValue": "34",
                      "id": 39184,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "39252:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_4_by_1",
                        "typeString": "int_const 4"
                      },
                      "value": "4"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "39244:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$4_storage_ptr",
                      "typeString": "bytes32[4]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39243:27:116"
            },
            "returnParameters": {
              "id": 39191,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39190,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39210,
                  "src": "39294:16:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39188,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "39294:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39189,
                    "nodeType": "ArrayTypeName",
                    "src": "39294:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39293:18:116"
            },
            "scope": 40741,
            "src": "39222:176:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39237,
              "nodeType": "Block",
              "src": "39496:86:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "3332",
                                "id": 39226,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "39544:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                },
                                "value": "32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                }
                              ],
                              "id": 39225,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "39536:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 39224,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "39536:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39227,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "39536:11:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "hexValue": "35",
                            "id": 39228,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "39549:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_5_by_1",
                              "typeString": "int_const 5"
                            },
                            "value": "5"
                          },
                          {
                            "id": 39229,
                            "name": "_values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39214,
                            "src": "39552:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                              "typeString": "bytes32[5] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_rational_5_by_1",
                              "typeString": "int_const 5"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                              "typeString": "bytes32[5] memory"
                            }
                          ],
                          "expression": {
                            "id": 39222,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "39525:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 39223,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "39529:6:116",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "39525:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 39230,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "39525:35:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "components": [
                          {
                            "baseExpression": {
                              "id": 39232,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "39563:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 39231,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "39563:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39233,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "39563:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                              "typeString": "type(bytes32[] memory)"
                            }
                          }
                        ],
                        "id": 39234,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "39562:11:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      ],
                      "expression": {
                        "id": 39220,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "39514:3:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 39221,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "39518:6:116",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "39514:10:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 39235,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "39514:60:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "functionReturnParameters": 39219,
                  "id": 39236,
                  "nodeType": "Return",
                  "src": "39507:67:116"
                }
              ]
            },
            "id": 39238,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "intoMemArray",
            "nameLocation": "39415:12:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39214,
                  "mutability": "mutable",
                  "name": "_values",
                  "nameLocation": "39446:7:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39238,
                  "src": "39428:25:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                    "typeString": "bytes32[5]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39211,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "39428:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39213,
                    "length": {
                      "hexValue": "35",
                      "id": 39212,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "39436:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_5_by_1",
                        "typeString": "int_const 5"
                      },
                      "value": "5"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "39428:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$5_storage_ptr",
                      "typeString": "bytes32[5]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39427:27:116"
            },
            "returnParameters": {
              "id": 39219,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39218,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39238,
                  "src": "39478:16:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39216,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "39478:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39217,
                    "nodeType": "ArrayTypeName",
                    "src": "39478:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39477:18:116"
            },
            "scope": 40741,
            "src": "39406:176:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39265,
              "nodeType": "Block",
              "src": "39680:86:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "3332",
                                "id": 39254,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "39728:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                },
                                "value": "32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                }
                              ],
                              "id": 39253,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "39720:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 39252,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "39720:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39255,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "39720:11:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "hexValue": "36",
                            "id": 39256,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "39733:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_6_by_1",
                              "typeString": "int_const 6"
                            },
                            "value": "6"
                          },
                          {
                            "id": 39257,
                            "name": "_values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39242,
                            "src": "39736:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$6_memory_ptr",
                              "typeString": "bytes32[6] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_rational_6_by_1",
                              "typeString": "int_const 6"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$6_memory_ptr",
                              "typeString": "bytes32[6] memory"
                            }
                          ],
                          "expression": {
                            "id": 39250,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "39709:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 39251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "39713:6:116",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "39709:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 39258,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "39709:35:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "components": [
                          {
                            "baseExpression": {
                              "id": 39260,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "39747:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 39259,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "39747:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39261,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "39747:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                              "typeString": "type(bytes32[] memory)"
                            }
                          }
                        ],
                        "id": 39262,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "39746:11:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      ],
                      "expression": {
                        "id": 39248,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "39698:3:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 39249,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "39702:6:116",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "39698:10:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 39263,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "39698:60:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "functionReturnParameters": 39247,
                  "id": 39264,
                  "nodeType": "Return",
                  "src": "39691:67:116"
                }
              ]
            },
            "id": 39266,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "intoMemArray",
            "nameLocation": "39599:12:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39243,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39242,
                  "mutability": "mutable",
                  "name": "_values",
                  "nameLocation": "39630:7:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39266,
                  "src": "39612:25:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$6_memory_ptr",
                    "typeString": "bytes32[6]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39239,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "39612:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39241,
                    "length": {
                      "hexValue": "36",
                      "id": 39240,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "39620:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_6_by_1",
                        "typeString": "int_const 6"
                      },
                      "value": "6"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "39612:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$6_storage_ptr",
                      "typeString": "bytes32[6]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39611:27:116"
            },
            "returnParameters": {
              "id": 39247,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39246,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39266,
                  "src": "39662:16:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39244,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "39662:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39245,
                    "nodeType": "ArrayTypeName",
                    "src": "39662:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39661:18:116"
            },
            "scope": 40741,
            "src": "39590:176:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39293,
              "nodeType": "Block",
              "src": "39864:86:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "3332",
                                "id": 39282,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "39912:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                },
                                "value": "32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                }
                              ],
                              "id": 39281,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "39904:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 39280,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "39904:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39283,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "39904:11:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "hexValue": "37",
                            "id": 39284,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "39917:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_7_by_1",
                              "typeString": "int_const 7"
                            },
                            "value": "7"
                          },
                          {
                            "id": 39285,
                            "name": "_values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39270,
                            "src": "39920:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$7_memory_ptr",
                              "typeString": "bytes32[7] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_rational_7_by_1",
                              "typeString": "int_const 7"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$7_memory_ptr",
                              "typeString": "bytes32[7] memory"
                            }
                          ],
                          "expression": {
                            "id": 39278,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "39893:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 39279,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "39897:6:116",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "39893:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 39286,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "39893:35:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "components": [
                          {
                            "baseExpression": {
                              "id": 39288,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "39931:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 39287,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "39931:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39289,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "39931:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                              "typeString": "type(bytes32[] memory)"
                            }
                          }
                        ],
                        "id": 39290,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "39930:11:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      ],
                      "expression": {
                        "id": 39276,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "39882:3:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 39277,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "39886:6:116",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "39882:10:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 39291,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "39882:60:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "functionReturnParameters": 39275,
                  "id": 39292,
                  "nodeType": "Return",
                  "src": "39875:67:116"
                }
              ]
            },
            "id": 39294,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "intoMemArray",
            "nameLocation": "39783:12:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39271,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39270,
                  "mutability": "mutable",
                  "name": "_values",
                  "nameLocation": "39814:7:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39294,
                  "src": "39796:25:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$7_memory_ptr",
                    "typeString": "bytes32[7]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39267,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "39796:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39269,
                    "length": {
                      "hexValue": "37",
                      "id": 39268,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "39804:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_7_by_1",
                        "typeString": "int_const 7"
                      },
                      "value": "7"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "39796:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$7_storage_ptr",
                      "typeString": "bytes32[7]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39795:27:116"
            },
            "returnParameters": {
              "id": 39275,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39274,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39294,
                  "src": "39846:16:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39272,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "39846:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39273,
                    "nodeType": "ArrayTypeName",
                    "src": "39846:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39845:18:116"
            },
            "scope": 40741,
            "src": "39774:176:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39321,
              "nodeType": "Block",
              "src": "40048:86:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "3332",
                                "id": 39310,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "40096:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                },
                                "value": "32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                }
                              ],
                              "id": 39309,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "40088:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 39308,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "40088:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39311,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "40088:11:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "hexValue": "38",
                            "id": 39312,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "40101:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          {
                            "id": 39313,
                            "name": "_values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39298,
                            "src": "40104:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$8_memory_ptr",
                              "typeString": "bytes32[8] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$8_memory_ptr",
                              "typeString": "bytes32[8] memory"
                            }
                          ],
                          "expression": {
                            "id": 39306,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "40077:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 39307,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "40081:6:116",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "40077:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 39314,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "40077:35:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "components": [
                          {
                            "baseExpression": {
                              "id": 39316,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "40115:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 39315,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "40115:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39317,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "40115:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                              "typeString": "type(bytes32[] memory)"
                            }
                          }
                        ],
                        "id": 39318,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "40114:11:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "type(bytes32[] memory)"
                        }
                      ],
                      "expression": {
                        "id": 39304,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "40066:3:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 39305,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "40070:6:116",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "40066:10:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 39319,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "40066:60:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "functionReturnParameters": 39303,
                  "id": 39320,
                  "nodeType": "Return",
                  "src": "40059:67:116"
                }
              ]
            },
            "id": 39322,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "intoMemArray",
            "nameLocation": "39967:12:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39299,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39298,
                  "mutability": "mutable",
                  "name": "_values",
                  "nameLocation": "39998:7:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39322,
                  "src": "39980:25:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$8_memory_ptr",
                    "typeString": "bytes32[8]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39295,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "39980:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39297,
                    "length": {
                      "hexValue": "38",
                      "id": 39296,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "39988:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_8_by_1",
                        "typeString": "int_const 8"
                      },
                      "value": "8"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "39980:10:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$8_storage_ptr",
                      "typeString": "bytes32[8]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39979:27:116"
            },
            "returnParameters": {
              "id": 39303,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39302,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39322,
                  "src": "40030:16:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39300,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "40030:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39301,
                    "nodeType": "ArrayTypeName",
                    "src": "40030:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "40029:18:116"
            },
            "scope": 40741,
            "src": "39958:176:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39345,
              "nodeType": "Block",
              "src": "40220:109:116",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 39333,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 39331,
                            "name": "a",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39324,
                            "src": "40239:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 39332,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39326,
                            "src": "40243:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "40239:5:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "arguments": [
                            {
                              "id": 39339,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39326,
                              "src": "40305:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "id": 39340,
                              "name": "a",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39324,
                              "src": "40308:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 39338,
                            "name": "_merkleHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40689,
                            "src": "40293:11:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (bytes32,bytes32) pure returns (bytes32)"
                            }
                          },
                          "id": 39341,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "40293:17:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 39342,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "40239:71:116",
                        "trueExpression": {
                          "arguments": [
                            {
                              "id": 39335,
                              "name": "a",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39324,
                              "src": "40272:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "id": 39336,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39326,
                              "src": "40275:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 39334,
                            "name": "_merkleHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40689,
                            "src": "40260:11:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (bytes32,bytes32) pure returns (bytes32)"
                            }
                          },
                          "id": 39337,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "40260:17:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "id": 39343,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "40238:83:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 39330,
                  "id": 39344,
                  "nodeType": "Return",
                  "src": "40231:90:116"
                }
              ]
            },
            "id": 39346,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "merkleHash",
            "nameLocation": "40155:10:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39327,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39324,
                  "mutability": "mutable",
                  "name": "a",
                  "nameLocation": "40174:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39346,
                  "src": "40166:9:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 39323,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "40166:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 39326,
                  "mutability": "mutable",
                  "name": "b",
                  "nameLocation": "40185:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39346,
                  "src": "40177:9:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 39325,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "40177:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "40165:22:116"
            },
            "returnParameters": {
              "id": 39330,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39329,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39346,
                  "src": "40211:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 39328,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "40211:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "40210:9:116"
            },
            "scope": 40741,
            "src": "40146:183:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39382,
              "nodeType": "Block",
              "src": "40435:152:116",
              "statements": [
                {
                  "expression": {
                    "id": 39358,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 39356,
                      "name": "_root",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39354,
                      "src": "40446:5:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 39357,
                      "name": "leaf",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39351,
                      "src": "40454:4:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "40446:12:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 39359,
                  "nodeType": "ExpressionStatement",
                  "src": "40446:12:116"
                },
                {
                  "body": {
                    "id": 39380,
                    "nodeType": "Block",
                    "src": "40516:64:116",
                    "statements": [
                      {
                        "expression": {
                          "id": 39378,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 39371,
                            "name": "_root",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39354,
                            "src": "40531:5:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 39373,
                                "name": "_root",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 39354,
                                "src": "40550:5:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "baseExpression": {
                                  "id": 39374,
                                  "name": "proof",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 39349,
                                  "src": "40557:5:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                    "typeString": "bytes32[] calldata"
                                  }
                                },
                                "id": 39376,
                                "indexExpression": {
                                  "id": 39375,
                                  "name": "_ix",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 39361,
                                  "src": "40563:3:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "40557:10:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 39372,
                              "name": "merkleHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39346,
                              "src": "40539:10:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                "typeString": "function (bytes32,bytes32) pure returns (bytes32)"
                              }
                            },
                            "id": 39377,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "40539:29:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "40531:37:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 39379,
                        "nodeType": "ExpressionStatement",
                        "src": "40531:37:116"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 39367,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 39364,
                      "name": "_ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39361,
                      "src": "40488:3:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 39365,
                        "name": "proof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39349,
                        "src": "40494:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 39366,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "40500:6:116",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "40494:12:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "40488:18:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 39381,
                  "initializationExpression": {
                    "assignments": [
                      39361
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 39361,
                        "mutability": "mutable",
                        "name": "_ix",
                        "nameLocation": "40479:3:116",
                        "nodeType": "VariableDeclaration",
                        "scope": 39381,
                        "src": "40474:8:116",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 39360,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "40474:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 39363,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 39362,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "40485:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "40474:12:116"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 39369,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "40508:6:116",
                      "subExpression": {
                        "id": 39368,
                        "name": "_ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39361,
                        "src": "40508:3:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 39370,
                    "nodeType": "ExpressionStatement",
                    "src": "40508:6:116"
                  },
                  "nodeType": "ForStatement",
                  "src": "40469:111:116"
                }
              ]
            },
            "id": 39383,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "merkleRoot",
            "nameLocation": "40346:10:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39352,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39349,
                  "mutability": "mutable",
                  "name": "proof",
                  "nameLocation": "40376:5:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39383,
                  "src": "40357:24:116",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 39347,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "40357:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 39348,
                    "nodeType": "ArrayTypeName",
                    "src": "40357:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 39351,
                  "mutability": "mutable",
                  "name": "leaf",
                  "nameLocation": "40391:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39383,
                  "src": "40383:12:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 39350,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "40383:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "40356:40:116"
            },
            "returnParameters": {
              "id": 39355,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39354,
                  "mutability": "mutable",
                  "name": "_root",
                  "nameLocation": "40428:5:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39383,
                  "src": "40420:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 39353,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "40420:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "40419:15:116"
            },
            "scope": 40741,
            "src": "40337:250:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39399,
              "nodeType": "Block",
              "src": "40678:68:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 39395,
                            "name": "bytecode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39385,
                            "src": "40728:8:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          ],
                          "id": 39394,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967288,
                          "src": "40718:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 39396,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "40718:19:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 39391,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "40696:6:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 39392,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "40703:9:116",
                        "memberName": "RadonHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37153,
                        "src": "40696:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_RadonHash_$37153_$",
                          "typeString": "type(Witnet.RadonHash)"
                        }
                      },
                      "id": 39393,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "40713:4:116",
                      "memberName": "wrap",
                      "nodeType": "MemberAccess",
                      "src": "40696:21:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_RadonHash_$37153_$",
                        "typeString": "function (bytes32) pure returns (Witnet.RadonHash)"
                      }
                    },
                    "id": 39397,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "40696:42:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "functionReturnParameters": 39390,
                  "id": 39398,
                  "nodeType": "Return",
                  "src": "40689:49:116"
                }
              ]
            },
            "id": 39400,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "radHash",
            "nameLocation": "40604:7:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39385,
                  "mutability": "mutable",
                  "name": "bytecode",
                  "nameLocation": "40627:8:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39400,
                  "src": "40612:23:116",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 39384,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "40612:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "40611:25:116"
            },
            "returnParameters": {
              "id": 39390,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39389,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39400,
                  "src": "40660:16:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  },
                  "typeName": {
                    "id": 39388,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 39387,
                      "name": "Witnet.RadonHash",
                      "nameLocations": [
                        "40660:6:116",
                        "40667:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37153,
                      "src": "40660:16:116"
                    },
                    "referencedDeclaration": 37153,
                    "src": "40660:16:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "40659:18:116"
            },
            "scope": 40741,
            "src": "40595:151:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39465,
              "nodeType": "Block",
              "src": "40873:588:116",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 39412,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 39409,
                        "name": "signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39402,
                        "src": "40888:9:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 39410,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "40898:6:116",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "40888:16:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "3635",
                      "id": 39411,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "40908:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_65_by_1",
                        "typeString": "int_const 65"
                      },
                      "value": "65"
                    },
                    "src": "40888:22:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 39420,
                  "nodeType": "IfStatement",
                  "src": "40884:74:116",
                  "trueBody": {
                    "id": 39419,
                    "nodeType": "Block",
                    "src": "40912:46:116",
                    "statements": [
                      {
                        "expression": {
                          "components": [
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 39415,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "40943:1:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 39414,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "40935:7:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": {
                                  "id": 39413,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "40935:7:116",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 39416,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "40935:10:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "id": 39417,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "40934:12:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "functionReturnParameters": 39408,
                        "id": 39418,
                        "nodeType": "Return",
                        "src": "40927:19:116"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    39422
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 39422,
                      "mutability": "mutable",
                      "name": "r",
                      "nameLocation": "40976:1:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 39465,
                      "src": "40968:9:116",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 39421,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "40968:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 39423,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "40968:9:116"
                },
                {
                  "assignments": [
                    39425
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 39425,
                      "mutability": "mutable",
                      "name": "s",
                      "nameLocation": "40996:1:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 39465,
                      "src": "40988:9:116",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 39424,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "40988:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 39426,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "40988:9:116"
                },
                {
                  "assignments": [
                    39428
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 39428,
                      "mutability": "mutable",
                      "name": "v",
                      "nameLocation": "41014:1:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 39465,
                      "src": "41008:7:116",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 39427,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "41008:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 39429,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "41008:7:116"
                },
                {
                  "AST": {
                    "nativeSrc": "41035:159:116",
                    "nodeType": "YulBlock",
                    "src": "41035:159:116",
                    "statements": [
                      {
                        "nativeSrc": "41050:32:116",
                        "nodeType": "YulAssignment",
                        "src": "41050:32:116",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "signature",
                                  "nativeSrc": "41065:9:116",
                                  "nodeType": "YulIdentifier",
                                  "src": "41065:9:116"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "41076:4:116",
                                  "nodeType": "YulLiteral",
                                  "src": "41076:4:116",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "41061:3:116",
                                "nodeType": "YulIdentifier",
                                "src": "41061:3:116"
                              },
                              "nativeSrc": "41061:20:116",
                              "nodeType": "YulFunctionCall",
                              "src": "41061:20:116"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "41055:5:116",
                            "nodeType": "YulIdentifier",
                            "src": "41055:5:116"
                          },
                          "nativeSrc": "41055:27:116",
                          "nodeType": "YulFunctionCall",
                          "src": "41055:27:116"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nativeSrc": "41050:1:116",
                            "nodeType": "YulIdentifier",
                            "src": "41050:1:116"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "41096:32:116",
                        "nodeType": "YulAssignment",
                        "src": "41096:32:116",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "signature",
                                  "nativeSrc": "41111:9:116",
                                  "nodeType": "YulIdentifier",
                                  "src": "41111:9:116"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "41122:4:116",
                                  "nodeType": "YulLiteral",
                                  "src": "41122:4:116",
                                  "type": "",
                                  "value": "0x40"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "41107:3:116",
                                "nodeType": "YulIdentifier",
                                "src": "41107:3:116"
                              },
                              "nativeSrc": "41107:20:116",
                              "nodeType": "YulFunctionCall",
                              "src": "41107:20:116"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "41101:5:116",
                            "nodeType": "YulIdentifier",
                            "src": "41101:5:116"
                          },
                          "nativeSrc": "41101:27:116",
                          "nodeType": "YulFunctionCall",
                          "src": "41101:27:116"
                        },
                        "variableNames": [
                          {
                            "name": "s",
                            "nativeSrc": "41096:1:116",
                            "nodeType": "YulIdentifier",
                            "src": "41096:1:116"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "41142:41:116",
                        "nodeType": "YulAssignment",
                        "src": "41142:41:116",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "41152:1:116",
                              "nodeType": "YulLiteral",
                              "src": "41152:1:116",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "signature",
                                      "nativeSrc": "41165:9:116",
                                      "nodeType": "YulIdentifier",
                                      "src": "41165:9:116"
                                    },
                                    {
                                      "kind": "number",
                                      "nativeSrc": "41176:4:116",
                                      "nodeType": "YulLiteral",
                                      "src": "41176:4:116",
                                      "type": "",
                                      "value": "0x60"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nativeSrc": "41161:3:116",
                                    "nodeType": "YulIdentifier",
                                    "src": "41161:3:116"
                                  },
                                  "nativeSrc": "41161:20:116",
                                  "nodeType": "YulFunctionCall",
                                  "src": "41161:20:116"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nativeSrc": "41155:5:116",
                                "nodeType": "YulIdentifier",
                                "src": "41155:5:116"
                              },
                              "nativeSrc": "41155:27:116",
                              "nodeType": "YulFunctionCall",
                              "src": "41155:27:116"
                            }
                          ],
                          "functionName": {
                            "name": "byte",
                            "nativeSrc": "41147:4:116",
                            "nodeType": "YulIdentifier",
                            "src": "41147:4:116"
                          },
                          "nativeSrc": "41147:36:116",
                          "nodeType": "YulFunctionCall",
                          "src": "41147:36:116"
                        },
                        "variableNames": [
                          {
                            "name": "v",
                            "nativeSrc": "41142:1:116",
                            "nodeType": "YulIdentifier",
                            "src": "41142:1:116"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "prague",
                  "externalReferences": [
                    {
                      "declaration": 39422,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "41050:1:116",
                      "valueSize": 1
                    },
                    {
                      "declaration": 39425,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "41096:1:116",
                      "valueSize": 1
                    },
                    {
                      "declaration": 39402,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "41065:9:116",
                      "valueSize": 1
                    },
                    {
                      "declaration": 39402,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "41111:9:116",
                      "valueSize": 1
                    },
                    {
                      "declaration": 39402,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "41165:9:116",
                      "valueSize": 1
                    },
                    {
                      "declaration": 39428,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "41142:1:116",
                      "valueSize": 1
                    }
                  ],
                  "id": 39430,
                  "nodeType": "InlineAssembly",
                  "src": "41026:168:116"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 39436,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 39433,
                          "name": "s",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39425,
                          "src": "41216:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 39432,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "41208:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 39431,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "41208:7:116",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 39434,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "41208:10:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130",
                      "id": 39435,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "41221:66:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1",
                        "typeString": "int_const 5789...(69 digits omitted)...7168"
                      },
                      "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"
                    },
                    "src": "41208:79:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 39443,
                  "nodeType": "IfStatement",
                  "src": "41204:129:116",
                  "trueBody": {
                    "id": 39442,
                    "nodeType": "Block",
                    "src": "41289:44:116",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 39439,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "41319:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 39438,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "41311:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 39437,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "41311:7:116",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 39440,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "41311:10:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "functionReturnParameters": 39408,
                        "id": 39441,
                        "nodeType": "Return",
                        "src": "41304:17:116"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 39450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 39446,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 39444,
                        "name": "v",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39428,
                        "src": "41347:1:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "hexValue": "3237",
                        "id": 39445,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "41352:2:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_27_by_1",
                          "typeString": "int_const 27"
                        },
                        "value": "27"
                      },
                      "src": "41347:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 39449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 39447,
                        "name": "v",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39428,
                        "src": "41358:1:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "hexValue": "3238",
                        "id": 39448,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "41363:2:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_28_by_1",
                          "typeString": "int_const 28"
                        },
                        "value": "28"
                      },
                      "src": "41358:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "41347:18:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 39457,
                  "nodeType": "IfStatement",
                  "src": "41343:68:116",
                  "trueBody": {
                    "id": 39456,
                    "nodeType": "Block",
                    "src": "41367:44:116",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 39453,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "41397:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 39452,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "41389:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 39451,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "41389:7:116",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 39454,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "41389:10:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "functionReturnParameters": 39408,
                        "id": 39455,
                        "nodeType": "Return",
                        "src": "41382:17:116"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 39459,
                        "name": "hash_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39404,
                        "src": "41438:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 39460,
                        "name": "v",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39428,
                        "src": "41445:1:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "id": 39461,
                        "name": "r",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39422,
                        "src": "41448:1:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 39462,
                        "name": "s",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39425,
                        "src": "41451:1:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 39458,
                      "name": "ecrecover",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967290,
                      "src": "41428:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)"
                      }
                    },
                    "id": 39463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "41428:25:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 39408,
                  "id": 39464,
                  "nodeType": "Return",
                  "src": "41421:32:116"
                }
              ]
            },
            "id": 39466,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "recoverEvmAddr",
            "nameLocation": "40763:14:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39402,
                  "mutability": "mutable",
                  "name": "signature",
                  "nameLocation": "40791:9:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39466,
                  "src": "40778:22:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 39401,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "40778:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 39404,
                  "mutability": "mutable",
                  "name": "hash_",
                  "nameLocation": "40810:5:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39466,
                  "src": "40802:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 39403,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "40802:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "40777:39:116"
            },
            "returnParameters": {
              "id": 39408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39407,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39466,
                  "src": "40859:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 39406,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "40859:7:116",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "40858:9:116"
            },
            "scope": 40741,
            "src": "40754:707:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39562,
              "nodeType": "Block",
              "src": "41680:578:116",
              "statements": [
                {
                  "assignments": [
                    39479
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 39479,
                      "mutability": "mutable",
                      "name": "_publicKeyX",
                      "nameLocation": "41699:11:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 39562,
                      "src": "41691:19:116",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 39478,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "41691:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 39489,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 39484,
                                "name": "evmAuthorized",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 39468,
                                "src": "41760:13:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "expression": {
                                "id": 39482,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "41743:3:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 39483,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "41747:12:116",
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "src": "41743:16:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 39485,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "41743:31:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 39481,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967288,
                          "src": "41733:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 39486,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "41733:42:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 39487,
                        "name": "witSignature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39473,
                        "src": "41777:12:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 39480,
                      "name": "recoverWitPublicKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39634,
                      "src": "41713:19:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 39488,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "41713:77:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "41691:99:116"
                },
                {
                  "assignments": [
                    39491
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 39491,
                      "mutability": "mutable",
                      "name": "_witSigner",
                      "nameLocation": "41809:10:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 39562,
                      "src": "41801:18:116",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes20",
                        "typeString": "bytes20"
                      },
                      "typeName": {
                        "id": 39490,
                        "name": "bytes20",
                        "nodeType": "ElementaryTypeName",
                        "src": "41801:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes20",
                          "typeString": "bytes20"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 39496,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 39494,
                        "name": "witSigner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39471,
                        "src": "41837:9:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                          "typeString": "Witnet.Address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                          "typeString": "Witnet.Address"
                        }
                      ],
                      "expression": {
                        "id": 39492,
                        "name": "Address",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37143,
                        "src": "41822:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_Address_$37143_$",
                          "typeString": "type(Witnet.Address)"
                        }
                      },
                      "id": 39493,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "41830:6:116",
                      "memberName": "unwrap",
                      "nodeType": "MemberAccess",
                      "src": "41822:14:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Address_$37143_$returns$_t_bytes20_$",
                        "typeString": "function (Witnet.Address) pure returns (bytes20)"
                      }
                    },
                    "id": 39495,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "41822:25:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes20",
                      "typeString": "bytes20"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "41801:46:116"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 39559,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 39543,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 39527,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_bytes20",
                                "typeString": "bytes20"
                              },
                              "id": 39511,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 39497,
                                "name": "_witSigner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 39491,
                                "src": "41880:10:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes20",
                                  "typeString": "bytes20"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "hexValue": "30783030",
                                                "id": 39505,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "41933:4:116",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_0_by_1",
                                                  "typeString": "int_const 0"
                                                },
                                                "value": "0x00"
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_rational_0_by_1",
                                                  "typeString": "int_const 0"
                                                }
                                              ],
                                              "id": 39504,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "41926:6:116",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_bytes1_$",
                                                "typeString": "type(bytes1)"
                                              },
                                              "typeName": {
                                                "id": 39503,
                                                "name": "bytes1",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "41926:6:116",
                                                "typeDescriptions": {}
                                              }
                                            },
                                            "id": 39506,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "41926:12:116",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          },
                                          {
                                            "id": 39507,
                                            "name": "_publicKeyX",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 39479,
                                            "src": "41940:11:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "expression": {
                                            "id": 39501,
                                            "name": "abi",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4294967295,
                                            "src": "41909:3:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_magic_abi",
                                              "typeString": "abi"
                                            }
                                          },
                                          "id": 39502,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberLocation": "41913:12:116",
                                          "memberName": "encodePacked",
                                          "nodeType": "MemberAccess",
                                          "src": "41909:16:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                            "typeString": "function () pure returns (bytes memory)"
                                          }
                                        },
                                        "id": 39508,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "41909:43:116",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      ],
                                      "id": 39500,
                                      "name": "sha256",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967274,
                                      "src": "41902:6:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                        "typeString": "function (bytes memory) pure returns (bytes32)"
                                      }
                                    },
                                    "id": 39509,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "41902:51:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 39499,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "41894:7:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes20_$",
                                    "typeString": "type(bytes20)"
                                  },
                                  "typeName": {
                                    "id": 39498,
                                    "name": "bytes20",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "41894:7:116",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 39510,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "41894:60:116",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes20",
                                  "typeString": "bytes20"
                                }
                              },
                              "src": "41880:74:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "||",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_bytes20",
                                "typeString": "bytes20"
                              },
                              "id": 39526,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 39512,
                                "name": "_witSigner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 39491,
                                "src": "41975:10:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes20",
                                  "typeString": "bytes20"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "hexValue": "30783031",
                                                "id": 39520,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "42028:4:116",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                },
                                                "value": "0x01"
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                }
                                              ],
                                              "id": 39519,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "42021:6:116",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_bytes1_$",
                                                "typeString": "type(bytes1)"
                                              },
                                              "typeName": {
                                                "id": 39518,
                                                "name": "bytes1",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "42021:6:116",
                                                "typeDescriptions": {}
                                              }
                                            },
                                            "id": 39521,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "42021:12:116",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          },
                                          {
                                            "id": 39522,
                                            "name": "_publicKeyX",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 39479,
                                            "src": "42035:11:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "expression": {
                                            "id": 39516,
                                            "name": "abi",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4294967295,
                                            "src": "42004:3:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_magic_abi",
                                              "typeString": "abi"
                                            }
                                          },
                                          "id": 39517,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberLocation": "42008:12:116",
                                          "memberName": "encodePacked",
                                          "nodeType": "MemberAccess",
                                          "src": "42004:16:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                            "typeString": "function () pure returns (bytes memory)"
                                          }
                                        },
                                        "id": 39523,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "42004:43:116",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      ],
                                      "id": 39515,
                                      "name": "sha256",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967274,
                                      "src": "41997:6:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                        "typeString": "function (bytes memory) pure returns (bytes32)"
                                      }
                                    },
                                    "id": 39524,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "41997:51:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 39514,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "41989:7:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes20_$",
                                    "typeString": "type(bytes20)"
                                  },
                                  "typeName": {
                                    "id": 39513,
                                    "name": "bytes20",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "41989:7:116",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 39525,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "41989:60:116",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes20",
                                  "typeString": "bytes20"
                                }
                              },
                              "src": "41975:74:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "41880:169:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_bytes20",
                              "typeString": "bytes20"
                            },
                            "id": 39542,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 39528,
                              "name": "_witSigner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39491,
                              "src": "42070:10:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes20",
                                "typeString": "bytes20"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "hexValue": "30783032",
                                              "id": 39536,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "42123:4:116",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_2_by_1",
                                                "typeString": "int_const 2"
                                              },
                                              "value": "0x02"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_rational_2_by_1",
                                                "typeString": "int_const 2"
                                              }
                                            ],
                                            "id": 39535,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "42116:6:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_bytes1_$",
                                              "typeString": "type(bytes1)"
                                            },
                                            "typeName": {
                                              "id": 39534,
                                              "name": "bytes1",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "42116:6:116",
                                              "typeDescriptions": {}
                                            }
                                          },
                                          "id": 39537,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "nameLocations": [],
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "42116:12:116",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes1",
                                            "typeString": "bytes1"
                                          }
                                        },
                                        {
                                          "id": 39538,
                                          "name": "_publicKeyX",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 39479,
                                          "src": "42130:11:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes1",
                                            "typeString": "bytes1"
                                          },
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "expression": {
                                          "id": 39532,
                                          "name": "abi",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4294967295,
                                          "src": "42099:3:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_magic_abi",
                                            "typeString": "abi"
                                          }
                                        },
                                        "id": 39533,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberLocation": "42103:12:116",
                                        "memberName": "encodePacked",
                                        "nodeType": "MemberAccess",
                                        "src": "42099:16:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                          "typeString": "function () pure returns (bytes memory)"
                                        }
                                      },
                                      "id": 39539,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "42099:43:116",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 39531,
                                    "name": "sha256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967274,
                                    "src": "42092:6:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 39540,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "42092:51:116",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 39530,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "42084:7:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes20_$",
                                  "typeString": "type(bytes20)"
                                },
                                "typeName": {
                                  "id": 39529,
                                  "name": "bytes20",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "42084:7:116",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 39541,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "42084:60:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes20",
                                "typeString": "bytes20"
                              }
                            },
                            "src": "42070:74:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "41880:264:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          },
                          "id": 39558,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 39544,
                            "name": "_witSigner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39491,
                            "src": "42165:10:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes20",
                              "typeString": "bytes20"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "hexValue": "30783033",
                                            "id": 39552,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "42218:4:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_3_by_1",
                                              "typeString": "int_const 3"
                                            },
                                            "value": "0x03"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_3_by_1",
                                              "typeString": "int_const 3"
                                            }
                                          ],
                                          "id": 39551,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "42211:6:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 39550,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "42211:6:116",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 39553,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "42211:12:116",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      },
                                      {
                                        "id": 39554,
                                        "name": "_publicKeyX",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39479,
                                        "src": "42225:11:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "expression": {
                                        "id": 39548,
                                        "name": "abi",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4294967295,
                                        "src": "42194:3:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_abi",
                                          "typeString": "abi"
                                        }
                                      },
                                      "id": 39549,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberLocation": "42198:12:116",
                                      "memberName": "encodePacked",
                                      "nodeType": "MemberAccess",
                                      "src": "42194:16:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                        "typeString": "function () pure returns (bytes memory)"
                                      }
                                    },
                                    "id": 39555,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "42194:43:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 39547,
                                  "name": "sha256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967274,
                                  "src": "42187:6:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 39556,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "42187:51:116",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 39546,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "42179:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes20_$",
                                "typeString": "type(bytes20)"
                              },
                              "typeName": {
                                "id": 39545,
                                "name": "bytes20",
                                "nodeType": "ElementaryTypeName",
                                "src": "42179:7:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 39557,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "42179:60:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes20",
                              "typeString": "bytes20"
                            }
                          },
                          "src": "42165:74:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "41880:359:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 39560,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "41865:385:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 39477,
                  "id": 39561,
                  "nodeType": "Return",
                  "src": "41858:392:116"
                }
              ]
            },
            "id": 39563,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "verifyWitAddressAuthorization",
            "nameLocation": "41478:29:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39474,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39468,
                  "mutability": "mutable",
                  "name": "evmAuthorized",
                  "nameLocation": "41530:13:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39563,
                  "src": "41522:21:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 39467,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "41522:7:116",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 39471,
                  "mutability": "mutable",
                  "name": "witSigner",
                  "nameLocation": "41567:9:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39563,
                  "src": "41559:17:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                    "typeString": "Witnet.Address"
                  },
                  "typeName": {
                    "id": 39470,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 39469,
                      "name": "Address",
                      "nameLocations": [
                        "41559:7:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37143,
                      "src": "41559:7:116"
                    },
                    "referencedDeclaration": 37143,
                    "src": "41559:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Address_$37143",
                      "typeString": "Witnet.Address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 39473,
                  "mutability": "mutable",
                  "name": "witSignature",
                  "nameLocation": "41604:12:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39563,
                  "src": "41591:25:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 39472,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "41591:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "41507:120:116"
            },
            "returnParameters": {
              "id": 39477,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39476,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39563,
                  "src": "41669:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 39475,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "41669:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "41668:6:116"
            },
            "scope": 40741,
            "src": "41469:789:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39633,
              "nodeType": "Block",
              "src": "42410:679:116",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 39575,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 39572,
                        "name": "witSignature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39567,
                        "src": "42425:12:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 39573,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "42438:6:116",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "42425:19:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3635",
                      "id": 39574,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "42448:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_65_by_1",
                        "typeString": "int_const 65"
                      },
                      "value": "65"
                    },
                    "src": "42425:25:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 39632,
                  "nodeType": "IfStatement",
                  "src": "42421:661:116",
                  "trueBody": {
                    "id": 39631,
                    "nodeType": "Block",
                    "src": "42452:630:116",
                    "statements": [
                      {
                        "assignments": [
                          39577
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 39577,
                            "mutability": "mutable",
                            "name": "r",
                            "nameLocation": "42475:1:116",
                            "nodeType": "VariableDeclaration",
                            "scope": 39631,
                            "src": "42467:9:116",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 39576,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "42467:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 39578,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "42467:9:116"
                      },
                      {
                        "assignments": [
                          39580
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 39580,
                            "mutability": "mutable",
                            "name": "s",
                            "nameLocation": "42499:1:116",
                            "nodeType": "VariableDeclaration",
                            "scope": 39631,
                            "src": "42491:9:116",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 39579,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "42491:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 39581,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "42491:9:116"
                      },
                      {
                        "assignments": [
                          39583
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 39583,
                            "mutability": "mutable",
                            "name": "v",
                            "nameLocation": "42521:1:116",
                            "nodeType": "VariableDeclaration",
                            "scope": 39631,
                            "src": "42515:7:116",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 39582,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "42515:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 39584,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "42515:7:116"
                      },
                      {
                        "AST": {
                          "nativeSrc": "42546:184:116",
                          "nodeType": "YulBlock",
                          "src": "42546:184:116",
                          "statements": [
                            {
                              "nativeSrc": "42565:35:116",
                              "nodeType": "YulAssignment",
                              "src": "42565:35:116",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "witSignature",
                                        "nativeSrc": "42580:12:116",
                                        "nodeType": "YulIdentifier",
                                        "src": "42580:12:116"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "42594:4:116",
                                        "nodeType": "YulLiteral",
                                        "src": "42594:4:116",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nativeSrc": "42576:3:116",
                                      "nodeType": "YulIdentifier",
                                      "src": "42576:3:116"
                                    },
                                    "nativeSrc": "42576:23:116",
                                    "nodeType": "YulFunctionCall",
                                    "src": "42576:23:116"
                                  }
                                ],
                                "functionName": {
                                  "name": "mload",
                                  "nativeSrc": "42570:5:116",
                                  "nodeType": "YulIdentifier",
                                  "src": "42570:5:116"
                                },
                                "nativeSrc": "42570:30:116",
                                "nodeType": "YulFunctionCall",
                                "src": "42570:30:116"
                              },
                              "variableNames": [
                                {
                                  "name": "r",
                                  "nativeSrc": "42565:1:116",
                                  "nodeType": "YulIdentifier",
                                  "src": "42565:1:116"
                                }
                              ]
                            },
                            {
                              "nativeSrc": "42618:35:116",
                              "nodeType": "YulAssignment",
                              "src": "42618:35:116",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "witSignature",
                                        "nativeSrc": "42633:12:116",
                                        "nodeType": "YulIdentifier",
                                        "src": "42633:12:116"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "42647:4:116",
                                        "nodeType": "YulLiteral",
                                        "src": "42647:4:116",
                                        "type": "",
                                        "value": "0x40"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nativeSrc": "42629:3:116",
                                      "nodeType": "YulIdentifier",
                                      "src": "42629:3:116"
                                    },
                                    "nativeSrc": "42629:23:116",
                                    "nodeType": "YulFunctionCall",
                                    "src": "42629:23:116"
                                  }
                                ],
                                "functionName": {
                                  "name": "mload",
                                  "nativeSrc": "42623:5:116",
                                  "nodeType": "YulIdentifier",
                                  "src": "42623:5:116"
                                },
                                "nativeSrc": "42623:30:116",
                                "nodeType": "YulFunctionCall",
                                "src": "42623:30:116"
                              },
                              "variableNames": [
                                {
                                  "name": "s",
                                  "nativeSrc": "42618:1:116",
                                  "nodeType": "YulIdentifier",
                                  "src": "42618:1:116"
                                }
                              ]
                            },
                            {
                              "nativeSrc": "42671:44:116",
                              "nodeType": "YulAssignment",
                              "src": "42671:44:116",
                              "value": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "42681:1:116",
                                    "nodeType": "YulLiteral",
                                    "src": "42681:1:116",
                                    "type": "",
                                    "value": "0"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "witSignature",
                                            "nativeSrc": "42694:12:116",
                                            "nodeType": "YulIdentifier",
                                            "src": "42694:12:116"
                                          },
                                          {
                                            "kind": "number",
                                            "nativeSrc": "42708:4:116",
                                            "nodeType": "YulLiteral",
                                            "src": "42708:4:116",
                                            "type": "",
                                            "value": "0x60"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nativeSrc": "42690:3:116",
                                          "nodeType": "YulIdentifier",
                                          "src": "42690:3:116"
                                        },
                                        "nativeSrc": "42690:23:116",
                                        "nodeType": "YulFunctionCall",
                                        "src": "42690:23:116"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nativeSrc": "42684:5:116",
                                      "nodeType": "YulIdentifier",
                                      "src": "42684:5:116"
                                    },
                                    "nativeSrc": "42684:30:116",
                                    "nodeType": "YulFunctionCall",
                                    "src": "42684:30:116"
                                  }
                                ],
                                "functionName": {
                                  "name": "byte",
                                  "nativeSrc": "42676:4:116",
                                  "nodeType": "YulIdentifier",
                                  "src": "42676:4:116"
                                },
                                "nativeSrc": "42676:39:116",
                                "nodeType": "YulFunctionCall",
                                "src": "42676:39:116"
                              },
                              "variableNames": [
                                {
                                  "name": "v",
                                  "nativeSrc": "42671:1:116",
                                  "nodeType": "YulIdentifier",
                                  "src": "42671:1:116"
                                }
                              ]
                            }
                          ]
                        },
                        "evmVersion": "prague",
                        "externalReferences": [
                          {
                            "declaration": 39577,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "42565:1:116",
                            "valueSize": 1
                          },
                          {
                            "declaration": 39580,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "42618:1:116",
                            "valueSize": 1
                          },
                          {
                            "declaration": 39583,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "42671:1:116",
                            "valueSize": 1
                          },
                          {
                            "declaration": 39567,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "42580:12:116",
                            "valueSize": 1
                          },
                          {
                            "declaration": 39567,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "42633:12:116",
                            "valueSize": 1
                          },
                          {
                            "declaration": 39567,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "42694:12:116",
                            "valueSize": 1
                          }
                        ],
                        "id": 39585,
                        "nodeType": "InlineAssembly",
                        "src": "42537:193:116"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 39600,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 39591,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "arguments": [
                                {
                                  "id": 39588,
                                  "name": "s",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 39580,
                                  "src": "42774:1:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 39587,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "42766:7:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 39586,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "42766:7:116",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 39589,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "42766:10:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "hexValue": "307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130",
                              "id": 39590,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "42780:66:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1",
                                "typeString": "int_const 5789...(69 digits omitted)...7168"
                              },
                              "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"
                            },
                            "src": "42766:80:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "id": 39598,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 39594,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 39592,
                                    "name": "v",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 39583,
                                    "src": "42872:1:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "hexValue": "3237",
                                    "id": 39593,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "42877:2:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_27_by_1",
                                      "typeString": "int_const 27"
                                    },
                                    "value": "27"
                                  },
                                  "src": "42872:7:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "||",
                                "rightExpression": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 39597,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 39595,
                                    "name": "v",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 39583,
                                    "src": "42883:1:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "hexValue": "3238",
                                    "id": 39596,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "42888:2:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_28_by_1",
                                      "typeString": "int_const 28"
                                    },
                                    "value": "28"
                                  },
                                  "src": "42883:7:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "src": "42872:18:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 39599,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "42871:20:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "42766:125:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 39630,
                        "nodeType": "IfStatement",
                        "src": "42744:327:116",
                        "trueBody": {
                          "id": 39629,
                          "nodeType": "Block",
                          "src": "42907:164:116",
                          "statements": [
                            {
                              "assignments": [
                                39602,
                                null
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 39602,
                                  "mutability": "mutable",
                                  "name": "x",
                                  "nameLocation": "42935:1:116",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 39629,
                                  "src": "42927:9:116",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 39601,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "42927:7:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "visibility": "internal"
                                },
                                null
                              ],
                              "id": 39621,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "id": 39607,
                                        "name": "evmDigest",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39565,
                                        "src": "42967:9:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 39606,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "42959:7:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 39605,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "42959:7:116",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 39608,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "42959:18:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    "id": 39611,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 39609,
                                      "name": "v",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 39583,
                                      "src": "42979:1:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "hexValue": "3237",
                                      "id": 39610,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "42983:2:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_27_by_1",
                                        "typeString": "int_const 27"
                                      },
                                      "value": "27"
                                    },
                                    "src": "42979:6:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "id": 39614,
                                        "name": "r",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39577,
                                        "src": "42995:1:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 39613,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "42987:7:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 39612,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "42987:7:116",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 39615,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "42987:10:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "id": 39618,
                                        "name": "s",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39580,
                                        "src": "43007:1:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 39617,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "42999:7:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 39616,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "42999:7:116",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 39619,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "42999:10:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "id": 39603,
                                    "name": "Secp256k1",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 32535,
                                    "src": "42941:9:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Secp256k1_$32535_$",
                                      "typeString": "type(library Secp256k1)"
                                    }
                                  },
                                  "id": 39604,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "42951:7:116",
                                  "memberName": "recover",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 31717,
                                  "src": "42941:17:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint8_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
                                    "typeString": "function (uint256,uint8,uint256,uint256) pure returns (uint256,uint256)"
                                  }
                                },
                                "id": 39620,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "42941:69:116",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                                  "typeString": "tuple(uint256,uint256)"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "42926:84:116"
                            },
                            {
                              "expression": {
                                "id": 39627,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 39622,
                                  "name": "_witPublicKey",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 39570,
                                  "src": "43029:13:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "id": 39625,
                                      "name": "x",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 39602,
                                      "src": "43053:1:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 39624,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "43045:7:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": {
                                      "id": 39623,
                                      "name": "bytes32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "43045:7:116",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 39626,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "43045:10:116",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "43029:26:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 39628,
                              "nodeType": "ExpressionStatement",
                              "src": "43029:26:116"
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "id": 39634,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "recoverWitPublicKey",
            "nameLocation": "42275:19:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39568,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39565,
                  "mutability": "mutable",
                  "name": "evmDigest",
                  "nameLocation": "42303:9:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39634,
                  "src": "42295:17:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 39564,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "42295:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 39567,
                  "mutability": "mutable",
                  "name": "witSignature",
                  "nameLocation": "42327:12:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39634,
                  "src": "42314:25:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 39566,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "42314:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "42294:46:116"
            },
            "returnParameters": {
              "id": 39571,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39570,
                  "mutability": "mutable",
                  "name": "_witPublicKey",
                  "nameLocation": "42390:13:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39634,
                  "src": "42382:21:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 39569,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "42382:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "42381:23:116"
            },
            "scope": 40741,
            "src": "42266:823:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39648,
              "nodeType": "Block",
              "src": "43169:52:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 39644,
                            "name": "_value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39636,
                            "src": "43205:6:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 39643,
                          "name": "toBytes20",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39681,
                          "src": "43195:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes20_$",
                            "typeString": "function (bytes memory) pure returns (bytes20)"
                          }
                        },
                        "id": 39645,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "43195:17:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes20",
                          "typeString": "bytes20"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes20",
                          "typeString": "bytes20"
                        }
                      ],
                      "id": 39642,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "43187:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 39641,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "43187:7:116",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 39646,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "43187:26:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 39640,
                  "id": 39647,
                  "nodeType": "Return",
                  "src": "43180:33:116"
                }
              ]
            },
            "id": 39649,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toAddress",
            "nameLocation": "43106:9:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39637,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39636,
                  "mutability": "mutable",
                  "name": "_value",
                  "nameLocation": "43129:6:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39649,
                  "src": "43116:19:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 39635,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "43116:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "43115:21:116"
            },
            "returnParameters": {
              "id": 39640,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39639,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39649,
                  "src": "43160:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 39638,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "43160:7:116",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "43159:9:116"
            },
            "scope": 40741,
            "src": "43097:124:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39664,
              "nodeType": "Block",
              "src": "43299:57:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 39659,
                            "name": "_value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39651,
                            "src": "43337:6:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "hexValue": "34",
                            "id": 39660,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "43345:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "4"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            }
                          ],
                          "id": 39658,
                          "name": "toFixedBytes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39750,
                          "src": "43324:12:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory,uint8) pure returns (bytes32)"
                          }
                        },
                        "id": 39661,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "43324:23:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 39657,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "43317:6:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes4_$",
                        "typeString": "type(bytes4)"
                      },
                      "typeName": {
                        "id": 39656,
                        "name": "bytes4",
                        "nodeType": "ElementaryTypeName",
                        "src": "43317:6:116",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 39662,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "43317:31:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 39655,
                  "id": 39663,
                  "nodeType": "Return",
                  "src": "43310:38:116"
                }
              ]
            },
            "id": 39665,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toBytes4",
            "nameLocation": "43238:8:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39651,
                  "mutability": "mutable",
                  "name": "_value",
                  "nameLocation": "43260:6:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39665,
                  "src": "43247:19:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 39650,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "43247:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "43246:21:116"
            },
            "returnParameters": {
              "id": 39655,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39654,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39665,
                  "src": "43291:6:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 39653,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "43291:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "43290:8:116"
            },
            "scope": 40741,
            "src": "43229:127:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39680,
              "nodeType": "Block",
              "src": "43440:59:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 39675,
                            "name": "_value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39667,
                            "src": "43479:6:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "hexValue": "3230",
                            "id": 39676,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "43487:2:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_20_by_1",
                              "typeString": "int_const 20"
                            },
                            "value": "20"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_rational_20_by_1",
                              "typeString": "int_const 20"
                            }
                          ],
                          "id": 39674,
                          "name": "toFixedBytes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39750,
                          "src": "43466:12:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory,uint8) pure returns (bytes32)"
                          }
                        },
                        "id": 39677,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "43466:24:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 39673,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "43458:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes20_$",
                        "typeString": "type(bytes20)"
                      },
                      "typeName": {
                        "id": 39672,
                        "name": "bytes20",
                        "nodeType": "ElementaryTypeName",
                        "src": "43458:7:116",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 39678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "43458:33:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes20",
                      "typeString": "bytes20"
                    }
                  },
                  "functionReturnParameters": 39671,
                  "id": 39679,
                  "nodeType": "Return",
                  "src": "43451:40:116"
                }
              ]
            },
            "id": 39681,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toBytes20",
            "nameLocation": "43377:9:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39668,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39667,
                  "mutability": "mutable",
                  "name": "_value",
                  "nameLocation": "43400:6:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39681,
                  "src": "43387:19:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 39666,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "43387:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "43386:21:116"
            },
            "returnParameters": {
              "id": 39671,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39670,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39681,
                  "src": "43431:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  },
                  "typeName": {
                    "id": 39669,
                    "name": "bytes20",
                    "nodeType": "ElementaryTypeName",
                    "src": "43431:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes20",
                      "typeString": "bytes20"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "43430:9:116"
            },
            "scope": 40741,
            "src": "43368:131:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39693,
              "nodeType": "Block",
              "src": "43583:50:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 39689,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39683,
                        "src": "43614:6:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "hexValue": "3332",
                        "id": 39690,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "43622:2:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_32_by_1",
                          "typeString": "int_const 32"
                        },
                        "value": "32"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_rational_32_by_1",
                          "typeString": "int_const 32"
                        }
                      ],
                      "id": 39688,
                      "name": "toFixedBytes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39750,
                      "src": "43601:12:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory,uint8) pure returns (bytes32)"
                      }
                    },
                    "id": 39691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "43601:24:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 39687,
                  "id": 39692,
                  "nodeType": "Return",
                  "src": "43594:31:116"
                }
              ]
            },
            "id": 39694,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toBytes32",
            "nameLocation": "43520:9:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39684,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39683,
                  "mutability": "mutable",
                  "name": "_value",
                  "nameLocation": "43543:6:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39694,
                  "src": "43530:19:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 39682,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "43530:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "43529:21:116"
            },
            "returnParameters": {
              "id": 39687,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39686,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39694,
                  "src": "43574:7:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 39685,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "43574:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "43573:9:116"
            },
            "scope": 40741,
            "src": "43511:122:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39749,
              "nodeType": "Block",
              "src": "43765:289:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 39706,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 39704,
                          "name": "_numBytes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39698,
                          "src": "43783:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "hexValue": "3332",
                          "id": 39705,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "43796:2:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_32_by_1",
                            "typeString": "int_const 32"
                          },
                          "value": "32"
                        },
                        "src": "43783:15:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 39703,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967293,
                      "src": "43776:6:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 39707,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "43776:23:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 39708,
                  "nodeType": "ExpressionStatement",
                  "src": "43776:23:116"
                },
                {
                  "id": 39748,
                  "nodeType": "UncheckedBlock",
                  "src": "43810:237:116",
                  "statements": [
                    {
                      "assignments": [
                        39710
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 39710,
                          "mutability": "mutable",
                          "name": "_len",
                          "nameLocation": "43840:4:116",
                          "nodeType": "VariableDeclaration",
                          "scope": 39748,
                          "src": "43835:9:116",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 39709,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "43835:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 39719,
                      "initialValue": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 39714,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 39711,
                              "name": "_value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39696,
                              "src": "43847:6:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 39712,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "43854:6:116",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "43847:13:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "id": 39713,
                            "name": "_numBytes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39698,
                            "src": "43863:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "43847:25:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "expression": {
                            "id": 39716,
                            "name": "_value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39696,
                            "src": "43887:6:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 39717,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "43894:6:116",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "43887:13:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 39718,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "43847:53:116",
                        "trueExpression": {
                          "id": 39715,
                          "name": "_numBytes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39698,
                          "src": "43875:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "43835:65:116"
                    },
                    {
                      "body": {
                        "id": 39746,
                        "nodeType": "Block",
                        "src": "43951:85:116",
                        "statements": [
                          {
                            "expression": {
                              "id": 39744,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "id": 39730,
                                "name": "_bytes32",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 39701,
                                "src": "43970:8:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "|=",
                              "rightHandSide": {
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 39743,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "arguments": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      },
                                      "id": 39737,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "baseExpression": {
                                          "id": 39733,
                                          "name": "_value",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 39696,
                                          "src": "43990:6:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          }
                                        },
                                        "id": 39735,
                                        "indexExpression": {
                                          "id": 39734,
                                          "name": "_i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 39721,
                                          "src": "43997:2:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "43990:10:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "&",
                                      "rightExpression": {
                                        "hexValue": "30786666",
                                        "id": 39736,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "44003:4:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_255_by_1",
                                          "typeString": "int_const 255"
                                        },
                                        "value": "0xff"
                                      },
                                      "src": "43990:17:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    ],
                                    "id": 39732,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "43982:7:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": {
                                      "id": 39731,
                                      "name": "bytes32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "43982:7:116",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 39738,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "43982:26:116",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 39741,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "id": 39739,
                                        "name": "_i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39721,
                                        "src": "44013:2:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "hexValue": "38",
                                        "id": 39740,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "44018:1:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        },
                                        "value": "8"
                                      },
                                      "src": "44013:6:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 39742,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "44012:8:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "43982:38:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "43970:50:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "id": 39745,
                            "nodeType": "ExpressionStatement",
                            "src": "43970:50:116"
                          }
                        ]
                      },
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 39726,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 39724,
                          "name": "_i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39721,
                          "src": "43933:2:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "id": 39725,
                          "name": "_len",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39710,
                          "src": "43938:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "43933:9:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 39747,
                      "initializationExpression": {
                        "assignments": [
                          39721
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 39721,
                            "mutability": "mutable",
                            "name": "_i",
                            "nameLocation": "43925:2:116",
                            "nodeType": "VariableDeclaration",
                            "scope": 39747,
                            "src": "43920:7:116",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 39720,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "43920:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 39723,
                        "initialValue": {
                          "hexValue": "30",
                          "id": 39722,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "43930:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "43920:11:116"
                      },
                      "isSimpleCounterLoop": true,
                      "loopExpression": {
                        "expression": {
                          "id": 39728,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "43944:5:116",
                          "subExpression": {
                            "id": 39727,
                            "name": "_i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39721,
                            "src": "43944:2:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 39729,
                        "nodeType": "ExpressionStatement",
                        "src": "43944:5:116"
                      },
                      "nodeType": "ForStatement",
                      "src": "43915:121:116"
                    }
                  ]
                }
              ]
            },
            "id": 39750,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toFixedBytes",
            "nameLocation": "43650:12:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39699,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39696,
                  "mutability": "mutable",
                  "name": "_value",
                  "nameLocation": "43676:6:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39750,
                  "src": "43663:19:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 39695,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "43663:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 39698,
                  "mutability": "mutable",
                  "name": "_numBytes",
                  "nameLocation": "43690:9:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39750,
                  "src": "43684:15:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 39697,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "43684:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "43662:38:116"
            },
            "returnParameters": {
              "id": 39702,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39701,
                  "mutability": "mutable",
                  "name": "_bytes32",
                  "nameLocation": "43750:8:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39750,
                  "src": "43742:16:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 39700,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "43742:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "43741:18:116"
            },
            "scope": 40741,
            "src": "43641:413:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39794,
              "nodeType": "Block",
              "src": "44209:274:116",
              "statements": [
                {
                  "assignments": [
                    39759
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 39759,
                      "mutability": "mutable",
                      "name": "_bytes",
                      "nameLocation": "44233:6:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 39794,
                      "src": "44220:19:116",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 39758,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "44220:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 39766,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 39763,
                            "name": "_bytes32",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39753,
                            "src": "44268:8:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 39762,
                          "name": "_toStringLength",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40740,
                          "src": "44252:15:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_uint256_$",
                            "typeString": "function (bytes32) pure returns (uint256)"
                          }
                        },
                        "id": 39764,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "44252:25:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 39761,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "44242:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (bytes memory)"
                      },
                      "typeName": {
                        "id": 39760,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "44246:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      }
                    },
                    "id": 39765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "44242:36:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "44220:58:116"
                },
                {
                  "body": {
                    "id": 39787,
                    "nodeType": "Block",
                    "src": "44328:116:116",
                    "statements": [
                      {
                        "expression": {
                          "id": 39781,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 39775,
                              "name": "_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39759,
                              "src": "44343:6:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 39777,
                            "indexExpression": {
                              "id": 39776,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39768,
                              "src": "44350:2:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "44343:10:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "baseExpression": {
                              "id": 39778,
                              "name": "_bytes32",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39753,
                              "src": "44356:8:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "id": 39780,
                            "indexExpression": {
                              "id": 39779,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39768,
                              "src": "44365:2:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "44356:12:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "src": "44343:25:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "id": 39782,
                        "nodeType": "ExpressionStatement",
                        "src": "44343:25:116"
                      },
                      {
                        "id": 39786,
                        "nodeType": "UncheckedBlock",
                        "src": "44383:50:116",
                        "statements": [
                          {
                            "expression": {
                              "id": 39784,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": false,
                              "src": "44412:5:116",
                              "subExpression": {
                                "id": 39783,
                                "name": "_i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 39768,
                                "src": "44412:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 39785,
                            "nodeType": "ExpressionStatement",
                            "src": "44412:5:116"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 39774,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 39771,
                      "name": "_i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39768,
                      "src": "44307:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 39772,
                        "name": "_bytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39759,
                        "src": "44312:6:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 39773,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "44319:6:116",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "44312:13:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "44307:18:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 39788,
                  "initializationExpression": {
                    "assignments": [
                      39768
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 39768,
                        "mutability": "mutable",
                        "name": "_i",
                        "nameLocation": "44299:2:116",
                        "nodeType": "VariableDeclaration",
                        "scope": 39788,
                        "src": "44294:7:116",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 39767,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "44294:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 39770,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 39769,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "44304:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "44294:11:116"
                  },
                  "isSimpleCounterLoop": false,
                  "nodeType": "ForStatement",
                  "src": "44289:155:116"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 39791,
                        "name": "_bytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39759,
                        "src": "44468:6:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 39790,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "44461:6:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": {
                        "id": 39789,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "44461:6:116",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 39792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "44461:14:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 39757,
                  "id": 39793,
                  "nodeType": "Return",
                  "src": "44454:21:116"
                }
              ]
            },
            "documentation": {
              "id": 39751,
              "nodeType": "StructuredDocumentation",
              "src": "44066:41:116",
              "text": "@notice Converts bytes32 into string."
            },
            "id": 39795,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "asAscii",
            "nameLocation": "44122:7:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39754,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39753,
                  "mutability": "mutable",
                  "name": "_bytes32",
                  "nameLocation": "44138:8:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39795,
                  "src": "44130:16:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 39752,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "44130:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "44129:18:116"
            },
            "returnParameters": {
              "id": 39757,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39756,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39795,
                  "src": "44189:13:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 39755,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "44189:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "44188:15:116"
            },
            "scope": 40741,
            "src": "44113:370:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39859,
              "nodeType": "Block",
              "src": "44592:288:116",
              "statements": [
                {
                  "assignments": [
                    39803
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 39803,
                      "mutability": "mutable",
                      "name": "_bytes",
                      "nameLocation": "44616:6:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 39859,
                      "src": "44603:19:116",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 39802,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "44603:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 39808,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "3634",
                        "id": 39806,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "44635:2:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_64_by_1",
                          "typeString": "int_const 64"
                        },
                        "value": "64"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_64_by_1",
                          "typeString": "int_const 64"
                        }
                      ],
                      "id": 39805,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "44625:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (bytes memory)"
                      },
                      "typeName": {
                        "id": 39804,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "44629:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      }
                    },
                    "id": 39807,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "44625:13:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "44603:35:116"
                },
                {
                  "body": {
                    "id": 39852,
                    "nodeType": "Block",
                    "src": "44685:156:116",
                    "statements": [
                      {
                        "expression": {
                          "id": 39832,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 39816,
                              "name": "_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39803,
                              "src": "44700:6:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 39819,
                            "indexExpression": {
                              "id": 39818,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": false,
                              "src": "44707:5:116",
                              "subExpression": {
                                "id": 39817,
                                "name": "_i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 39810,
                                "src": "44707:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "44700:13:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_bytes1",
                                      "typeString": "bytes1"
                                    },
                                    "id": 39829,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "baseExpression": {
                                        "id": 39823,
                                        "name": "_bytes32",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39797,
                                        "src": "44733:8:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "id": 39827,
                                      "indexExpression": {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 39826,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 39824,
                                          "name": "_i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 39810,
                                          "src": "44742:2:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "/",
                                        "rightExpression": {
                                          "hexValue": "32",
                                          "id": 39825,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "44747:1:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_2_by_1",
                                            "typeString": "int_const 2"
                                          },
                                          "value": "2"
                                        },
                                        "src": "44742:6:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "44733:16:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "hexValue": "34",
                                      "id": 39828,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "44753:1:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      },
                                      "value": "4"
                                    },
                                    "src": "44733:21:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes1",
                                      "typeString": "bytes1"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes1",
                                      "typeString": "bytes1"
                                    }
                                  ],
                                  "id": 39822,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "44727:5:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 39821,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "44727:5:116",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 39830,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "44727:28:116",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 39820,
                              "name": "_toHexChar",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40714,
                              "src": "44716:10:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bytes1_$",
                                "typeString": "function (uint8) pure returns (bytes1)"
                              }
                            },
                            "id": 39831,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "44716:40:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "src": "44700:56:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "id": 39833,
                        "nodeType": "ExpressionStatement",
                        "src": "44700:56:116"
                      },
                      {
                        "expression": {
                          "id": 39850,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 39834,
                              "name": "_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39803,
                              "src": "44771:6:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 39837,
                            "indexExpression": {
                              "id": 39836,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": false,
                              "src": "44778:5:116",
                              "subExpression": {
                                "id": 39835,
                                "name": "_i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 39810,
                                "src": "44778:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "44771:13:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_bytes1",
                                      "typeString": "bytes1"
                                    },
                                    "id": 39847,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "baseExpression": {
                                        "id": 39841,
                                        "name": "_bytes32",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39797,
                                        "src": "44804:8:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "id": 39845,
                                      "indexExpression": {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 39844,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 39842,
                                          "name": "_i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 39810,
                                          "src": "44813:2:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "/",
                                        "rightExpression": {
                                          "hexValue": "32",
                                          "id": 39843,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "44818:1:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_2_by_1",
                                            "typeString": "int_const 2"
                                          },
                                          "value": "2"
                                        },
                                        "src": "44813:6:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "44804:16:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "hexValue": "30783066",
                                      "id": 39846,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "44823:4:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_15_by_1",
                                        "typeString": "int_const 15"
                                      },
                                      "value": "0x0f"
                                    },
                                    "src": "44804:23:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes1",
                                      "typeString": "bytes1"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes1",
                                      "typeString": "bytes1"
                                    }
                                  ],
                                  "id": 39840,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "44798:5:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 39839,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "44798:5:116",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 39848,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "44798:30:116",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 39838,
                              "name": "_toHexChar",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40714,
                              "src": "44787:10:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bytes1_$",
                                "typeString": "function (uint8) pure returns (bytes1)"
                              }
                            },
                            "id": 39849,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "44787:42:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "src": "44771:58:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "id": 39851,
                        "nodeType": "ExpressionStatement",
                        "src": "44771:58:116"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 39815,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 39812,
                      "name": "_i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39810,
                      "src": "44664:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 39813,
                        "name": "_bytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39803,
                        "src": "44669:6:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 39814,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "44676:6:116",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "44669:13:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "44664:18:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 39853,
                  "initializationExpression": {
                    "assignments": [
                      39810
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 39810,
                        "mutability": "mutable",
                        "name": "_i",
                        "nameLocation": "44660:2:116",
                        "nodeType": "VariableDeclaration",
                        "scope": 39853,
                        "src": "44654:8:116",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 39809,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "44654:5:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 39811,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "44654:8:116"
                  },
                  "isSimpleCounterLoop": false,
                  "nodeType": "ForStatement",
                  "src": "44649:192:116"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 39856,
                        "name": "_bytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39803,
                        "src": "44865:6:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 39855,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "44858:6:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": {
                        "id": 39854,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "44858:6:116",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 39857,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "44858:14:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 39801,
                  "id": 39858,
                  "nodeType": "Return",
                  "src": "44851:21:116"
                }
              ]
            },
            "id": 39860,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toHexString",
            "nameLocation": "44500:11:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39798,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39797,
                  "mutability": "mutable",
                  "name": "_bytes32",
                  "nameLocation": "44520:8:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39860,
                  "src": "44512:16:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 39796,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "44512:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "44511:18:116"
            },
            "returnParameters": {
              "id": 39801,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39800,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39860,
                  "src": "44572:13:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 39799,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "44572:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "44571:15:116"
            },
            "scope": 40741,
            "src": "44491:389:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 39940,
              "nodeType": "Block",
              "src": "45235:455:116",
              "statements": [
                {
                  "assignments": [
                    39869
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 39869,
                      "mutability": "mutable",
                      "name": "lowered",
                      "nameLocation": "45259:7:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 39940,
                      "src": "45246:20:116",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 39868,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "45246:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 39878,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 39874,
                              "name": "str",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39863,
                              "src": "45285:3:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "id": 39873,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "45279:5:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                              "typeString": "type(bytes storage pointer)"
                            },
                            "typeName": {
                              "id": 39872,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "45279:5:116",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 39875,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "45279:10:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 39876,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "45290:6:116",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "45279:17:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 39871,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "45269:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (bytes memory)"
                      },
                      "typeName": {
                        "id": 39870,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "45273:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      }
                    },
                    "id": 39877,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "45269:28:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "45246:51:116"
                },
                {
                  "id": 39934,
                  "nodeType": "UncheckedBlock",
                  "src": "45308:342:116",
                  "statements": [
                    {
                      "body": {
                        "id": 39932,
                        "nodeType": "Block",
                        "src": "45376:263:116",
                        "statements": [
                          {
                            "assignments": [
                              39891
                            ],
                            "declarations": [
                              {
                                "constant": false,
                                "id": 39891,
                                "mutability": "mutable",
                                "name": "char",
                                "nameLocation": "45401:4:116",
                                "nodeType": "VariableDeclaration",
                                "scope": 39932,
                                "src": "45395:10:116",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "typeName": {
                                  "id": 39890,
                                  "name": "uint8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "45395:5:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "visibility": "internal"
                              }
                            ],
                            "id": 39901,
                            "initialValue": {
                              "arguments": [
                                {
                                  "baseExpression": {
                                    "arguments": [
                                      {
                                        "id": 39896,
                                        "name": "str",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39863,
                                        "src": "45420:3:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      ],
                                      "id": 39895,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "45414:5:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                        "typeString": "type(bytes storage pointer)"
                                      },
                                      "typeName": {
                                        "id": 39894,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "45414:5:116",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 39897,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "45414:10:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  },
                                  "id": 39899,
                                  "indexExpression": {
                                    "id": 39898,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 39880,
                                    "src": "45425:1:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "45414:13:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes1",
                                    "typeString": "bytes1"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes1",
                                    "typeString": "bytes1"
                                  }
                                ],
                                "id": 39893,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "45408:5:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint8_$",
                                  "typeString": "type(uint8)"
                                },
                                "typeName": {
                                  "id": 39892,
                                  "name": "uint8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "45408:5:116",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 39900,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "45408:20:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "VariableDeclarationStatement",
                            "src": "45395:33:116"
                          },
                          {
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 39908,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 39904,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 39902,
                                  "name": "char",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 39891,
                                  "src": "45451:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">=",
                                "rightExpression": {
                                  "hexValue": "3635",
                                  "id": 39903,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "45459:2:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_65_by_1",
                                    "typeString": "int_const 65"
                                  },
                                  "value": "65"
                                },
                                "src": "45451:10:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 39907,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 39905,
                                  "name": "char",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 39891,
                                  "src": "45465:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<=",
                                "rightExpression": {
                                  "hexValue": "3930",
                                  "id": 39906,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "45473:2:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_90_by_1",
                                    "typeString": "int_const 90"
                                  },
                                  "value": "90"
                                },
                                "src": "45465:10:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "45451:24:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "id": 39930,
                              "nodeType": "Block",
                              "src": "45556:68:116",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 39928,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "baseExpression": {
                                        "id": 39921,
                                        "name": "lowered",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39869,
                                        "src": "45579:7:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      },
                                      "id": 39923,
                                      "indexExpression": {
                                        "id": 39922,
                                        "name": "i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39880,
                                        "src": "45587:1:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "nodeType": "IndexAccess",
                                      "src": "45579:10:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "arguments": [
                                        {
                                          "id": 39926,
                                          "name": "char",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 39891,
                                          "src": "45599:4:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 39925,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "45592:6:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes1_$",
                                          "typeString": "type(bytes1)"
                                        },
                                        "typeName": {
                                          "id": 39924,
                                          "name": "bytes1",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "45592:6:116",
                                          "typeDescriptions": {}
                                        }
                                      },
                                      "id": 39927,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "45592:12:116",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    },
                                    "src": "45579:25:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes1",
                                      "typeString": "bytes1"
                                    }
                                  },
                                  "id": 39929,
                                  "nodeType": "ExpressionStatement",
                                  "src": "45579:25:116"
                                }
                              ]
                            },
                            "id": 39931,
                            "nodeType": "IfStatement",
                            "src": "45447:177:116",
                            "trueBody": {
                              "id": 39920,
                              "nodeType": "Block",
                              "src": "45477:73:116",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 39918,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "baseExpression": {
                                        "id": 39909,
                                        "name": "lowered",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39869,
                                        "src": "45500:7:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      },
                                      "id": 39911,
                                      "indexExpression": {
                                        "id": 39910,
                                        "name": "i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39880,
                                        "src": "45508:1:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "nodeType": "IndexAccess",
                                      "src": "45500:10:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "arguments": [
                                        {
                                          "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          },
                                          "id": 39916,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "id": 39914,
                                            "name": "char",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 39891,
                                            "src": "45520:4:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "+",
                                          "rightExpression": {
                                            "hexValue": "3332",
                                            "id": 39915,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "45527:2:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_32_by_1",
                                              "typeString": "int_const 32"
                                            },
                                            "value": "32"
                                          },
                                          "src": "45520:9:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 39913,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "45513:6:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes1_$",
                                          "typeString": "type(bytes1)"
                                        },
                                        "typeName": {
                                          "id": 39912,
                                          "name": "bytes1",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "45513:6:116",
                                          "typeDescriptions": {}
                                        }
                                      },
                                      "id": 39917,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "45513:17:116",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    },
                                    "src": "45500:30:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes1",
                                      "typeString": "bytes1"
                                    }
                                  },
                                  "id": 39919,
                                  "nodeType": "ExpressionStatement",
                                  "src": "45500:30:116"
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 39886,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 39883,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39880,
                          "src": "45350:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "expression": {
                            "id": 39884,
                            "name": "lowered",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39869,
                            "src": "45354:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 39885,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "45362:6:116",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "45354:14:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "45350:18:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 39933,
                      "initializationExpression": {
                        "assignments": [
                          39880
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 39880,
                            "mutability": "mutable",
                            "name": "i",
                            "nameLocation": "45343:1:116",
                            "nodeType": "VariableDeclaration",
                            "scope": 39933,
                            "src": "45338:6:116",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 39879,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "45338:4:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 39882,
                        "initialValue": {
                          "hexValue": "30",
                          "id": 39881,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "45347:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "45338:10:116"
                      },
                      "isSimpleCounterLoop": true,
                      "loopExpression": {
                        "expression": {
                          "id": 39888,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "45370:4:116",
                          "subExpression": {
                            "id": 39887,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39880,
                            "src": "45370:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 39889,
                        "nodeType": "ExpressionStatement",
                        "src": "45370:4:116"
                      },
                      "nodeType": "ForStatement",
                      "src": "45333:306:116"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 39937,
                        "name": "lowered",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39869,
                        "src": "45674:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 39936,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "45667:6:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": {
                        "id": 39935,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "45667:6:116",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 39938,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "45667:15:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 39867,
                  "id": 39939,
                  "nodeType": "Return",
                  "src": "45660:22:116"
                }
              ]
            },
            "documentation": {
              "id": 39861,
              "nodeType": "StructuredDocumentation",
              "src": "44890:238:116",
              "text": "===============================================================================================================\n --- 'string' helper methods -----------------------------------------------------------------------------------"
            },
            "id": 39941,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toLowerCase",
            "nameLocation": "45143:11:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39864,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39863,
                  "mutability": "mutable",
                  "name": "str",
                  "nameLocation": "45169:3:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 39941,
                  "src": "45155:17:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 39862,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "45155:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "45154:19:116"
            },
            "returnParameters": {
              "id": 39867,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39866,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 39941,
                  "src": "45215:13:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 39865,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "45215:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "45214:15:116"
            },
            "scope": 40741,
            "src": "45134:556:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 40021,
              "nodeType": "Block",
              "src": "45848:438:116",
              "statements": [
                {
                  "id": 40020,
                  "nodeType": "UncheckedBlock",
                  "src": "45859:420:116",
                  "statements": [
                    {
                      "expression": {
                        "id": 39959,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "id": 39948,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39946,
                          "src": "45884:6:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 39957,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "arguments": [
                                    {
                                      "id": 39953,
                                      "name": "hexString",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 39943,
                                      "src": "45909:9:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    ],
                                    "id": 39952,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "45903:5:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                      "typeString": "type(bytes storage pointer)"
                                    },
                                    "typeName": {
                                      "id": 39951,
                                      "name": "bytes",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "45903:5:116",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 39954,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "45903:16:116",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                "id": 39955,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "45920:6:116",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "45903:23:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "hexValue": "32",
                                "id": 39956,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "45929:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "45903:27:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 39950,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "45893:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function (uint256) pure returns (bytes memory)"
                            },
                            "typeName": {
                              "id": 39949,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "45897:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            }
                          },
                          "id": 39958,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "45893:38:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "src": "45884:47:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 39960,
                      "nodeType": "ExpressionStatement",
                      "src": "45884:47:116"
                    },
                    {
                      "body": {
                        "id": 40018,
                        "nodeType": "Block",
                        "src": "45987:281:116",
                        "statements": [
                          {
                            "assignments": [
                              39972
                            ],
                            "declarations": [
                              {
                                "constant": false,
                                "id": 39972,
                                "mutability": "mutable",
                                "name": "byte1",
                                "nameLocation": "46012:5:116",
                                "nodeType": "VariableDeclaration",
                                "scope": 40018,
                                "src": "46006:11:116",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "typeName": {
                                  "id": 39971,
                                  "name": "uint8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "46006:5:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "visibility": "internal"
                              }
                            ],
                            "id": 39986,
                            "initialValue": {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "baseExpression": {
                                        "arguments": [
                                          {
                                            "id": 39978,
                                            "name": "hexString",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 39943,
                                            "src": "46047:9:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_string_memory_ptr",
                                              "typeString": "string memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_string_memory_ptr",
                                              "typeString": "string memory"
                                            }
                                          ],
                                          "id": 39977,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "46041:5:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                            "typeString": "type(bytes storage pointer)"
                                          },
                                          "typeName": {
                                            "id": 39976,
                                            "name": "bytes",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "46041:5:116",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 39979,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "46041:16:116",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      },
                                      "id": 39983,
                                      "indexExpression": {
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 39982,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "hexValue": "32",
                                          "id": 39980,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "46058:1:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_2_by_1",
                                            "typeString": "int_const 2"
                                          },
                                          "value": "2"
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "*",
                                        "rightExpression": {
                                          "id": 39981,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 39962,
                                          "src": "46062:1:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "46058:5:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "46041:23:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    ],
                                    "id": 39975,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "46035:5:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 39974,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "46035:5:116",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 39984,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "46035:30:116",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 39973,
                                "name": "_hexCharToByte",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40678,
                                "src": "46020:14:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_uint8_$",
                                  "typeString": "function (uint8) pure returns (uint8)"
                                }
                              },
                              "id": 39985,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "46020:46:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "VariableDeclarationStatement",
                            "src": "46006:60:116"
                          },
                          {
                            "assignments": [
                              39988
                            ],
                            "declarations": [
                              {
                                "constant": false,
                                "id": 39988,
                                "mutability": "mutable",
                                "name": "byte2",
                                "nameLocation": "46091:5:116",
                                "nodeType": "VariableDeclaration",
                                "scope": 40018,
                                "src": "46085:11:116",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "typeName": {
                                  "id": 39987,
                                  "name": "uint8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "46085:5:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "visibility": "internal"
                              }
                            ],
                            "id": 40004,
                            "initialValue": {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "baseExpression": {
                                        "arguments": [
                                          {
                                            "id": 39994,
                                            "name": "hexString",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 39943,
                                            "src": "46126:9:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_string_memory_ptr",
                                              "typeString": "string memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_string_memory_ptr",
                                              "typeString": "string memory"
                                            }
                                          ],
                                          "id": 39993,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "46120:5:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                            "typeString": "type(bytes storage pointer)"
                                          },
                                          "typeName": {
                                            "id": 39992,
                                            "name": "bytes",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "46120:5:116",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 39995,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "46120:16:116",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      },
                                      "id": 40001,
                                      "indexExpression": {
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 40000,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "id": 39998,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "hexValue": "32",
                                            "id": 39996,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "46137:1:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_2_by_1",
                                              "typeString": "int_const 2"
                                            },
                                            "value": "2"
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "*",
                                          "rightExpression": {
                                            "id": 39997,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 39962,
                                            "src": "46141:1:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "src": "46137:5:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "+",
                                        "rightExpression": {
                                          "hexValue": "31",
                                          "id": 39999,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "46145:1:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_1_by_1",
                                            "typeString": "int_const 1"
                                          },
                                          "value": "1"
                                        },
                                        "src": "46137:9:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "46120:27:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    ],
                                    "id": 39991,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "46114:5:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 39990,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "46114:5:116",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 40002,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "46114:34:116",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 39989,
                                "name": "_hexCharToByte",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40678,
                                "src": "46099:14:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_uint8_$",
                                  "typeString": "function (uint8) pure returns (uint8)"
                                }
                              },
                              "id": 40003,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "46099:50:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "VariableDeclarationStatement",
                            "src": "46085:64:116"
                          },
                          {
                            "expression": {
                              "id": 40016,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "baseExpression": {
                                  "id": 40005,
                                  "name": "result",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 39946,
                                  "src": "46168:6:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                "id": 40007,
                                "indexExpression": {
                                  "id": 40006,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 39962,
                                  "src": "46175:1:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "nodeType": "IndexAccess",
                                "src": "46168:9:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes1",
                                  "typeString": "bytes1"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "arguments": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    "id": 40014,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 40012,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "id": 40010,
                                        "name": "byte1",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 39972,
                                        "src": "46187:5:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "hexValue": "3136",
                                        "id": 40011,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "46195:2:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_16_by_1",
                                          "typeString": "int_const 16"
                                        },
                                        "value": "16"
                                      },
                                      "src": "46187:10:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "+",
                                    "rightExpression": {
                                      "id": 40013,
                                      "name": "byte2",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 39988,
                                      "src": "46200:5:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "src": "46187:18:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 40009,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "46180:6:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes1_$",
                                    "typeString": "type(bytes1)"
                                  },
                                  "typeName": {
                                    "id": 40008,
                                    "name": "bytes1",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "46180:6:116",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 40015,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "46180:26:116",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes1",
                                  "typeString": "bytes1"
                                }
                              },
                              "src": "46168:38:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "id": 40017,
                            "nodeType": "ExpressionStatement",
                            "src": "46168:38:116"
                          }
                        ]
                      },
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 39967,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 39964,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39962,
                          "src": "45962:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "expression": {
                            "id": 39965,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39946,
                            "src": "45966:6:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 39966,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "45973:6:116",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "45966:13:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "45962:17:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 40019,
                      "initializationExpression": {
                        "assignments": [
                          39962
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 39962,
                            "mutability": "mutable",
                            "name": "i",
                            "nameLocation": "45959:1:116",
                            "nodeType": "VariableDeclaration",
                            "scope": 40019,
                            "src": "45951:9:116",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 39961,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "45951:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 39963,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "45951:9:116"
                      },
                      "isSimpleCounterLoop": true,
                      "loopExpression": {
                        "expression": {
                          "id": 39969,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "45981:4:116",
                          "subExpression": {
                            "id": 39968,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39962,
                            "src": "45981:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 39970,
                        "nodeType": "ExpressionStatement",
                        "src": "45981:4:116"
                      },
                      "nodeType": "ForStatement",
                      "src": "45946:322:116"
                    }
                  ]
                }
              ]
            },
            "id": 40022,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "parseHexString",
            "nameLocation": "45764:14:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 39944,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39943,
                  "mutability": "mutable",
                  "name": "hexString",
                  "nameLocation": "45793:9:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40022,
                  "src": "45779:23:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 39942,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "45779:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "45778:25:116"
            },
            "returnParameters": {
              "id": 39947,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39946,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "45840:6:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40022,
                  "src": "45827:19:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 39945,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "45827:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "45826:21:116"
            },
            "scope": 40741,
            "src": "45755:531:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 40115,
              "nodeType": "Block",
              "src": "46392:455:116",
              "statements": [
                {
                  "id": 40114,
                  "nodeType": "UncheckedBlock",
                  "src": "46403:437:116",
                  "statements": [
                    {
                      "body": {
                        "id": 40108,
                        "nodeType": "Block",
                        "src": "46476:320:116",
                        "statements": [
                          {
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 40073,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 40058,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 40055,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "arguments": [
                                                {
                                                  "id": 40049,
                                                  "name": "str",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 40024,
                                                  "src": "46534:3:116",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                ],
                                                "id": 40048,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "46528:5:116",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                                  "typeString": "type(bytes storage pointer)"
                                                },
                                                "typeName": {
                                                  "id": 40047,
                                                  "name": "bytes",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "46528:5:116",
                                                  "typeDescriptions": {}
                                                }
                                              },
                                              "id": 40050,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "46528:10:116",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                "typeString": "bytes memory"
                                              }
                                            },
                                            "id": 40052,
                                            "indexExpression": {
                                              "id": 40051,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 40032,
                                              "src": "46539:1:116",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "46528:13:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          ],
                                          "id": 40046,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "46522:5:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 40045,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "46522:5:116",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 40053,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "46522:20:116",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "3438",
                                        "id": 40054,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "46545:2:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_48_by_1",
                                          "typeString": "int_const 48"
                                        },
                                        "value": "48"
                                      },
                                      "src": "46522:25:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "id": 40056,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "46521:27:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 40057,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "46551:1:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "46521:31:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "||",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 40072,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 40069,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "arguments": [
                                                {
                                                  "id": 40063,
                                                  "name": "str",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 40024,
                                                  "src": "46594:3:116",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                ],
                                                "id": 40062,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "46588:5:116",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                                  "typeString": "type(bytes storage pointer)"
                                                },
                                                "typeName": {
                                                  "id": 40061,
                                                  "name": "bytes",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "46588:5:116",
                                                  "typeDescriptions": {}
                                                }
                                              },
                                              "id": 40064,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "46588:10:116",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                "typeString": "bytes memory"
                                              }
                                            },
                                            "id": 40066,
                                            "indexExpression": {
                                              "id": 40065,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 40032,
                                              "src": "46599:1:116",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "46588:13:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          ],
                                          "id": 40060,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "46582:5:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 40059,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "46582:5:116",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 40067,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "46582:20:116",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "3438",
                                        "id": 40068,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "46605:2:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_48_by_1",
                                          "typeString": "int_const 48"
                                        },
                                        "value": "48"
                                      },
                                      "src": "46582:25:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "id": 40070,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "46581:27:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "hexValue": "39",
                                  "id": 40071,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "46611:1:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_9_by_1",
                                    "typeString": "int_const 9"
                                  },
                                  "value": "9"
                                },
                                "src": "46581:31:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "46521:91:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "id": 40079,
                            "nodeType": "IfStatement",
                            "src": "46495:197:116",
                            "trueBody": {
                              "id": 40078,
                              "nodeType": "Block",
                              "src": "46632:60:116",
                              "statements": [
                                {
                                  "expression": {
                                    "components": [
                                      {
                                        "hexValue": "30",
                                        "id": 40074,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "46663:1:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      {
                                        "hexValue": "66616c7365",
                                        "id": 40075,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "46666:5:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        "value": "false"
                                      }
                                    ],
                                    "id": 40076,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "46662:10:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$",
                                      "typeString": "tuple(int_const 0,bool)"
                                    }
                                  },
                                  "functionReturnParameters": 40030,
                                  "id": 40077,
                                  "nodeType": "Return",
                                  "src": "46655:17:116"
                                }
                              ]
                            }
                          },
                          {
                            "expression": {
                              "id": 40106,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "id": 40080,
                                "name": "res",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40027,
                                "src": "46710:3:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "+=",
                              "rightHandSide": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 40105,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 40091,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "arguments": [
                                                {
                                                  "id": 40085,
                                                  "name": "str",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 40024,
                                                  "src": "46730:3:116",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                ],
                                                "id": 40084,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "46724:5:116",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                                  "typeString": "type(bytes storage pointer)"
                                                },
                                                "typeName": {
                                                  "id": 40083,
                                                  "name": "bytes",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "46724:5:116",
                                                  "typeDescriptions": {}
                                                }
                                              },
                                              "id": 40086,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "46724:10:116",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                "typeString": "bytes memory"
                                              }
                                            },
                                            "id": 40088,
                                            "indexExpression": {
                                              "id": 40087,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 40032,
                                              "src": "46735:1:116",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "46724:13:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          ],
                                          "id": 40082,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "46718:5:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 40081,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "46718:5:116",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 40089,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "46718:20:116",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "3438",
                                        "id": 40090,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "46741:2:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_48_by_1",
                                          "typeString": "int_const 48"
                                        },
                                        "value": "48"
                                      },
                                      "src": "46718:25:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "id": 40092,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "46717:27:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 40104,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "hexValue": "3130",
                                    "id": 40093,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "46747:2:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_10_by_1",
                                      "typeString": "int_const 10"
                                    },
                                    "value": "10"
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "**",
                                  "rightExpression": {
                                    "components": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 40102,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "id": 40100,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "expression": {
                                              "arguments": [
                                                {
                                                  "id": 40096,
                                                  "name": "str",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 40024,
                                                  "src": "46760:3:116",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                ],
                                                "id": 40095,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "46754:5:116",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                                  "typeString": "type(bytes storage pointer)"
                                                },
                                                "typeName": {
                                                  "id": 40094,
                                                  "name": "bytes",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "46754:5:116",
                                                  "typeDescriptions": {}
                                                }
                                              },
                                              "id": 40097,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "46754:10:116",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                "typeString": "bytes memory"
                                              }
                                            },
                                            "id": 40098,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "46765:6:116",
                                            "memberName": "length",
                                            "nodeType": "MemberAccess",
                                            "src": "46754:17:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "id": 40099,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 40032,
                                            "src": "46774:1:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "src": "46754:21:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "-",
                                        "rightExpression": {
                                          "hexValue": "31",
                                          "id": 40101,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "46778:1:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_1_by_1",
                                            "typeString": "int_const 1"
                                          },
                                          "value": "1"
                                        },
                                        "src": "46754:25:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "id": 40103,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "46753:27:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "46747:33:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "46717:63:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "46710:70:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 40107,
                            "nodeType": "ExpressionStatement",
                            "src": "46710:70:116"
                          }
                        ]
                      },
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 40041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 40035,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40032,
                          "src": "46448:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 40038,
                                "name": "str",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40024,
                                "src": "46458:3:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "id": 40037,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "46452:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": {
                                "id": 40036,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "46452:5:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 40039,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "46452:10:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 40040,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "46463:6:116",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "46452:17:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "46448:21:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 40109,
                      "initializationExpression": {
                        "assignments": [
                          40032
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 40032,
                            "mutability": "mutable",
                            "name": "i",
                            "nameLocation": "46441:1:116",
                            "nodeType": "VariableDeclaration",
                            "scope": 40109,
                            "src": "46433:9:116",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 40031,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "46433:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 40034,
                        "initialValue": {
                          "hexValue": "30",
                          "id": 40033,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "46445:1:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "46433:13:116"
                      },
                      "isSimpleCounterLoop": true,
                      "loopExpression": {
                        "expression": {
                          "id": 40043,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "46471:3:116",
                          "subExpression": {
                            "id": 40042,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40032,
                            "src": "46471:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 40044,
                        "nodeType": "ExpressionStatement",
                        "src": "46471:3:116"
                      },
                      "nodeType": "ForStatement",
                      "src": "46428:368:116"
                    },
                    {
                      "expression": {
                        "components": [
                          {
                            "id": 40110,
                            "name": "res",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40027,
                            "src": "46818:3:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "hexValue": "74727565",
                            "id": 40111,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "46823:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          }
                        ],
                        "id": 40112,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "46817:11:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
                          "typeString": "tuple(uint256,bool)"
                        }
                      },
                      "functionReturnParameters": 40030,
                      "id": 40113,
                      "nodeType": "Return",
                      "src": "46810:18:116"
                    }
                  ]
                }
              ]
            },
            "id": 40116,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tryUint",
            "nameLocation": "46303:7:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40025,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40024,
                  "mutability": "mutable",
                  "name": "str",
                  "nameLocation": "46325:3:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40116,
                  "src": "46311:17:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 40023,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "46311:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "46310:19:116"
            },
            "returnParameters": {
              "id": 40030,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40027,
                  "mutability": "mutable",
                  "name": "res",
                  "nameLocation": "46376:3:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40116,
                  "src": "46371:8:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 40026,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "46371:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 40029,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 40116,
                  "src": "46381:4:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 40028,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "46381:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "46370:16:116"
            },
            "scope": 40741,
            "src": "46294:553:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 40132,
              "nodeType": "Block",
              "src": "47190:56:116",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 40130,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 40127,
                          "name": "epoch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40120,
                          "src": "47227:5:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        ],
                        "expression": {
                          "id": 40125,
                          "name": "BlockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37145,
                          "src": "47208:11:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "type(Witnet.BlockNumber)"
                          }
                        },
                        "id": 40126,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "47220:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "47208:18:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                        }
                      },
                      "id": 40128,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "47208:25:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "hexValue": "3130",
                      "id": 40129,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "47236:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10_by_1",
                        "typeString": "int_const 10"
                      },
                      "value": "10"
                    },
                    "src": "47208:30:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "functionReturnParameters": 40124,
                  "id": 40131,
                  "nodeType": "Return",
                  "src": "47201:37:116"
                }
              ]
            },
            "documentation": {
              "id": 40117,
              "nodeType": "StructuredDocumentation",
              "src": "46857:238:116",
              "text": "===============================================================================================================\n --- 'uint*' helper methods ------------------------------------------------------------------------------------"
            },
            "id": 40133,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "determineBeaconIndexFromEpoch",
            "nameLocation": "47110:29:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40121,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40120,
                  "mutability": "mutable",
                  "name": "epoch",
                  "nameLocation": "47152:5:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40133,
                  "src": "47140:17:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 40119,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 40118,
                      "name": "BlockNumber",
                      "nameLocations": [
                        "47140:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "47140:11:116"
                    },
                    "referencedDeclaration": 37145,
                    "src": "47140:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "47139:19:116"
            },
            "returnParameters": {
              "id": 40124,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40123,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 40133,
                  "src": "47182:6:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 40122,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "47182:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "47181:8:116"
            },
            "scope": 40741,
            "src": "47101:145:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 40147,
              "nodeType": "Block",
              "src": "47353:151:116",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 40143,
                            "name": "timestamp",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40136,
                            "src": "47461:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          ],
                          "id": 40142,
                          "name": "determineEpochFromTimestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40208,
                          "src": "47415:27:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "function (Witnet.Timestamp) pure returns (Witnet.BlockNumber)"
                          }
                        },
                        "id": 40144,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "47415:70:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                          "typeString": "Witnet.BlockNumber"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                          "typeString": "Witnet.BlockNumber"
                        }
                      ],
                      "id": 40141,
                      "name": "determineBeaconIndexFromEpoch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40133,
                      "src": "47371:29:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                        "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                      }
                    },
                    "id": 40145,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "47371:125:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "functionReturnParameters": 40140,
                  "id": 40146,
                  "nodeType": "Return",
                  "src": "47364:132:116"
                }
              ]
            },
            "id": 40148,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "determineBeaconIndexFromTimestamp",
            "nameLocation": "47267:33:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40137,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40136,
                  "mutability": "mutable",
                  "name": "timestamp",
                  "nameLocation": "47311:9:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40148,
                  "src": "47301:19:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 40135,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 40134,
                      "name": "Timestamp",
                      "nameLocations": [
                        "47301:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "47301:9:116"
                    },
                    "referencedDeclaration": 37157,
                    "src": "47301:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "47300:21:116"
            },
            "returnParameters": {
              "id": 40140,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40139,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 40148,
                  "src": "47345:6:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 40138,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "47345:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "47344:8:116"
            },
            "scope": 40741,
            "src": "47258:246:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 40207,
              "nodeType": "Block",
              "src": "47606:614:116",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 40162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 40159,
                          "name": "timestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40151,
                          "src": "47638:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        ],
                        "expression": {
                          "id": 40157,
                          "name": "Timestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37157,
                          "src": "47621:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                            "typeString": "type(Witnet.Timestamp)"
                          }
                        },
                        "id": 40158,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "47631:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "47621:16:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                        }
                      },
                      "id": 40160,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "47621:27:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "id": 40161,
                      "name": "WIT_2_GENESIS_TIMESTAMP",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37198,
                      "src": "47651:23:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "47621:53:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "id": 40184,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "arguments": [
                          {
                            "id": 40181,
                            "name": "timestamp",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40151,
                            "src": "47933:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          ],
                          "expression": {
                            "id": 40179,
                            "name": "Timestamp",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37157,
                            "src": "47916:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                              "typeString": "type(Witnet.Timestamp)"
                            }
                          },
                          "id": 40180,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "47926:6:116",
                          "memberName": "unwrap",
                          "nodeType": "MemberAccess",
                          "src": "47916:16:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                            "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                          }
                        },
                        "id": 40182,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "47916:27:116",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "id": 40183,
                        "name": "WIT_1_GENESIS_TIMESTAMP",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37162,
                        "src": "47946:23:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "src": "47916:53:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 40204,
                      "nodeType": "Block",
                      "src": "48160:53:116",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 40201,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "48199:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "expression": {
                                "id": 40199,
                                "name": "BlockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37145,
                                "src": "48182:11:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                                  "typeString": "type(Witnet.BlockNumber)"
                                }
                              },
                              "id": 40200,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "48194:4:116",
                              "memberName": "wrap",
                              "nodeType": "MemberAccess",
                              "src": "48182:16:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_BlockNumber_$37145_$",
                                "typeString": "function (uint64) pure returns (Witnet.BlockNumber)"
                              }
                            },
                            "id": 40202,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "48182:19:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                              "typeString": "Witnet.BlockNumber"
                            }
                          },
                          "functionReturnParameters": 40156,
                          "id": 40203,
                          "nodeType": "Return",
                          "src": "48175:26:116"
                        }
                      ]
                    },
                    "id": 40205,
                    "nodeType": "IfStatement",
                    "src": "47912:301:116",
                    "trueBody": {
                      "id": 40198,
                      "nodeType": "Block",
                      "src": "47971:183:116",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                },
                                "id": 40195,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      },
                                      "id": 40192,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "arguments": [
                                          {
                                            "id": 40189,
                                            "name": "timestamp",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 40151,
                                            "src": "48046:9:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                              "typeString": "Witnet.Timestamp"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                              "typeString": "Witnet.Timestamp"
                                            }
                                          ],
                                          "expression": {
                                            "id": 40187,
                                            "name": "Timestamp",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 37157,
                                            "src": "48029:9:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                                              "typeString": "type(Witnet.Timestamp)"
                                            }
                                          },
                                          "id": 40188,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberLocation": "48039:6:116",
                                          "memberName": "unwrap",
                                          "nodeType": "MemberAccess",
                                          "src": "48029:16:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                                            "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                                          }
                                        },
                                        "id": 40190,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "48029:27:116",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "id": 40191,
                                        "name": "WIT_1_GENESIS_TIMESTAMP",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 37162,
                                        "src": "48059:23:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      "src": "48029:53:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    }
                                  ],
                                  "id": 40193,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "48028:55:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "/",
                                "rightExpression": {
                                  "id": 40194,
                                  "name": "WIT_1_SECS_PER_EPOCH",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37165,
                                  "src": "48107:20:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "48028:99:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "expression": {
                                "id": 40185,
                                "name": "BlockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37145,
                                "src": "47993:11:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                                  "typeString": "type(Witnet.BlockNumber)"
                                }
                              },
                              "id": 40186,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "48005:4:116",
                              "memberName": "wrap",
                              "nodeType": "MemberAccess",
                              "src": "47993:16:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_BlockNumber_$37145_$",
                                "typeString": "function (uint64) pure returns (Witnet.BlockNumber)"
                              }
                            },
                            "id": 40196,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "47993:149:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                              "typeString": "Witnet.BlockNumber"
                            }
                          },
                          "functionReturnParameters": 40156,
                          "id": 40197,
                          "nodeType": "Return",
                          "src": "47986:156:116"
                        }
                      ]
                    }
                  },
                  "id": 40206,
                  "nodeType": "IfStatement",
                  "src": "47617:596:116",
                  "trueBody": {
                    "id": 40178,
                    "nodeType": "Block",
                    "src": "47676:230:116",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              "id": 40175,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 40165,
                                "name": "WIT_2_GENESIS_EPOCH",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37195,
                                "src": "47733:19:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                },
                                "id": 40174,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      },
                                      "id": 40171,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "arguments": [
                                          {
                                            "id": 40168,
                                            "name": "timestamp",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 40151,
                                            "src": "47794:9:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                              "typeString": "Witnet.Timestamp"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                              "typeString": "Witnet.Timestamp"
                                            }
                                          ],
                                          "expression": {
                                            "id": 40166,
                                            "name": "Timestamp",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 37157,
                                            "src": "47777:9:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                                              "typeString": "type(Witnet.Timestamp)"
                                            }
                                          },
                                          "id": 40167,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberLocation": "47787:6:116",
                                          "memberName": "unwrap",
                                          "nodeType": "MemberAccess",
                                          "src": "47777:16:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                                            "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                                          }
                                        },
                                        "id": 40169,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "47777:27:116",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "id": 40170,
                                        "name": "WIT_2_GENESIS_TIMESTAMP",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 37198,
                                        "src": "47807:23:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      "src": "47777:53:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    }
                                  ],
                                  "id": 40172,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "47776:55:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "/",
                                "rightExpression": {
                                  "id": 40173,
                                  "name": "WIT_2_SECS_PER_EPOCH",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37201,
                                  "src": "47859:20:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "47776:103:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "src": "47733:146:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "expression": {
                              "id": 40163,
                              "name": "BlockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37145,
                              "src": "47698:11:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                                "typeString": "type(Witnet.BlockNumber)"
                              }
                            },
                            "id": 40164,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "47710:4:116",
                            "memberName": "wrap",
                            "nodeType": "MemberAccess",
                            "src": "47698:16:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_BlockNumber_$37145_$",
                              "typeString": "function (uint64) pure returns (Witnet.BlockNumber)"
                            }
                          },
                          "id": 40176,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "47698:196:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        },
                        "functionReturnParameters": 40156,
                        "id": 40177,
                        "nodeType": "Return",
                        "src": "47691:203:116"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 40208,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "determineEpochFromTimestamp",
            "nameLocation": "47521:27:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40152,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40151,
                  "mutability": "mutable",
                  "name": "timestamp",
                  "nameLocation": "47559:9:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40208,
                  "src": "47549:19:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 40150,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 40149,
                      "name": "Timestamp",
                      "nameLocations": [
                        "47549:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "47549:9:116"
                    },
                    "referencedDeclaration": 37157,
                    "src": "47549:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "47548:21:116"
            },
            "returnParameters": {
              "id": 40156,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40155,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 40208,
                  "src": "47593:11:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 40154,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 40153,
                      "name": "BlockNumber",
                      "nameLocations": [
                        "47593:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "47593:11:116"
                    },
                    "referencedDeclaration": 37145,
                    "src": "47593:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "47592:13:116"
            },
            "scope": 40741,
            "src": "47512:708:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 40254,
              "nodeType": "Block",
              "src": "48318:499:116",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 40222,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 40219,
                          "name": "epoch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40211,
                          "src": "48352:5:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        ],
                        "expression": {
                          "id": 40217,
                          "name": "BlockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37145,
                          "src": "48333:11:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "type(Witnet.BlockNumber)"
                          }
                        },
                        "id": 40218,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "48345:6:116",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "48333:18:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                        }
                      },
                      "id": 40220,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "48333:25:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "id": 40221,
                      "name": "WIT_2_GENESIS_EPOCH",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37195,
                      "src": "48362:19:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "48333:48:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 40250,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 40242,
                            "name": "WIT_1_GENESIS_TIMESTAMP",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37162,
                            "src": "48705:23:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                },
                                "id": 40248,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 40243,
                                  "name": "WIT_1_SECS_PER_EPOCH",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 37165,
                                  "src": "48749:20:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "arguments": [
                                    {
                                      "id": 40246,
                                      "name": "epoch",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 40211,
                                      "src": "48791:5:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                                        "typeString": "Witnet.BlockNumber"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                                        "typeString": "Witnet.BlockNumber"
                                      }
                                    ],
                                    "expression": {
                                      "id": 40244,
                                      "name": "BlockNumber",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 37145,
                                      "src": "48772:11:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                                        "typeString": "type(Witnet.BlockNumber)"
                                      }
                                    },
                                    "id": 40245,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberLocation": "48784:6:116",
                                    "memberName": "unwrap",
                                    "nodeType": "MemberAccess",
                                    "src": "48772:18:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                                      "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                                    }
                                  },
                                  "id": 40247,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "48772:25:116",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "src": "48749:48:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "id": 40249,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "48748:50:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "48705:93:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        ],
                        "expression": {
                          "id": 40240,
                          "name": "Timestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37157,
                          "src": "48676:9:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                            "typeString": "type(Witnet.Timestamp)"
                          }
                        },
                        "id": 40241,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "48686:4:116",
                        "memberName": "wrap",
                        "nodeType": "MemberAccess",
                        "src": "48676:14:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$37157_$",
                          "typeString": "function (uint64) pure returns (Witnet.Timestamp)"
                        }
                      },
                      "id": 40251,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "48676:133:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                        "typeString": "Witnet.Timestamp"
                      }
                    },
                    "functionReturnParameters": 40216,
                    "id": 40252,
                    "nodeType": "Return",
                    "src": "48669:140:116"
                  },
                  "id": 40253,
                  "nodeType": "IfStatement",
                  "src": "48329:480:116",
                  "trueBody": {
                    "id": 40239,
                    "nodeType": "Block",
                    "src": "48383:280:116",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              "id": 40236,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 40225,
                                "name": "WIT_2_GENESIS_TIMESTAMP",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37198,
                                "src": "48438:23:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "components": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    },
                                    "id": 40234,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 40226,
                                      "name": "WIT_2_SECS_PER_EPOCH",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 37201,
                                      "src": "48486:20:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint32",
                                        "typeString": "uint32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "*",
                                    "rightExpression": {
                                      "components": [
                                        {
                                          "commonType": {
                                            "typeIdentifier": "t_uint64",
                                            "typeString": "uint64"
                                          },
                                          "id": 40232,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "arguments": [
                                              {
                                                "id": 40229,
                                                "name": "epoch",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 40211,
                                                "src": "48555:5:116",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                                                  "typeString": "Witnet.BlockNumber"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                                                  "typeString": "Witnet.BlockNumber"
                                                }
                                              ],
                                              "expression": {
                                                "id": 40227,
                                                "name": "BlockNumber",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 37145,
                                                "src": "48536:11:116",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                                                  "typeString": "type(Witnet.BlockNumber)"
                                                }
                                              },
                                              "id": 40228,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "memberLocation": "48548:6:116",
                                              "memberName": "unwrap",
                                              "nodeType": "MemberAccess",
                                              "src": "48536:18:116",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                                                "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                                              }
                                            },
                                            "id": 40230,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "48536:25:116",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint64",
                                              "typeString": "uint64"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "id": 40231,
                                            "name": "WIT_2_GENESIS_EPOCH",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 37195,
                                            "src": "48593:19:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint32",
                                              "typeString": "uint32"
                                            }
                                          },
                                          "src": "48536:76:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint64",
                                            "typeString": "uint64"
                                          }
                                        }
                                      ],
                                      "id": 40233,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "48509:104:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    },
                                    "src": "48486:127:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  }
                                ],
                                "id": 40235,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "48485:151:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "src": "48438:198:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "expression": {
                              "id": 40223,
                              "name": "Timestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37157,
                              "src": "48405:9:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                                "typeString": "type(Witnet.Timestamp)"
                              }
                            },
                            "id": 40224,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "48415:4:116",
                            "memberName": "wrap",
                            "nodeType": "MemberAccess",
                            "src": "48405:14:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$37157_$",
                              "typeString": "function (uint64) pure returns (Witnet.Timestamp)"
                            }
                          },
                          "id": 40237,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "48405:246:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        },
                        "functionReturnParameters": 40216,
                        "id": 40238,
                        "nodeType": "Return",
                        "src": "48398:253:116"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 40255,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "determineTimestampFromEpoch",
            "nameLocation": "48237:27:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40212,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40211,
                  "mutability": "mutable",
                  "name": "epoch",
                  "nameLocation": "48277:5:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40255,
                  "src": "48265:17:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 40210,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 40209,
                      "name": "BlockNumber",
                      "nameLocations": [
                        "48265:11:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "48265:11:116"
                    },
                    "referencedDeclaration": 37145,
                    "src": "48265:11:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "48264:19:116"
            },
            "returnParameters": {
              "id": 40216,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40215,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 40255,
                  "src": "48307:9:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 40214,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 40213,
                      "name": "Timestamp",
                      "nameLocations": [
                        "48307:9:116"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "48307:9:116"
                    },
                    "referencedDeclaration": 37157,
                    "src": "48307:9:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "48306:11:116"
            },
            "scope": 40741,
            "src": "48228:589:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 40299,
              "nodeType": "Block",
              "src": "49113:210:116",
              "statements": [
                {
                  "assignments": [
                    40268
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 40268,
                      "mutability": "mutable",
                      "name": "_number",
                      "nameLocation": "49132:7:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 40299,
                      "src": "49124:15:116",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 40267,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "49124:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 40288,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 40287,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 40274,
                                  "name": "seed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 40262,
                                  "src": "49203:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "id": 40275,
                                  "name": "nonce",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 40260,
                                  "src": "49209:5:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "id": 40272,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967295,
                                  "src": "49192:3:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 40273,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "49196:6:116",
                                "memberName": "encode",
                                "nodeType": "MemberAccess",
                                "src": "49192:10:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 40276,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "49192:23:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 40271,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967288,
                            "src": "49164:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 40277,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "49164:66:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 40270,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "49142:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 40269,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "49142:7:116",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 40278,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "49142:99:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&",
                    "rightExpression": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_rational_6277101735386680763835789423207666416102355444464034512895_by_1",
                            "typeString": "int_const 6277...(50 digits omitted)...2895"
                          },
                          "id": 40285,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_rational_6277101735386680763835789423207666416102355444464034512896_by_1",
                              "typeString": "int_const 6277...(50 digits omitted)...2896"
                            },
                            "id": 40283,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "hexValue": "32",
                              "id": 40281,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "49252:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_2_by_1",
                                "typeString": "int_const 2"
                              },
                              "value": "2"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "**",
                            "rightExpression": {
                              "hexValue": "313932",
                              "id": 40282,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "49257:3:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_192_by_1",
                                "typeString": "int_const 192"
                              },
                              "value": "192"
                            },
                            "src": "49252:8:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_6277101735386680763835789423207666416102355444464034512896_by_1",
                              "typeString": "int_const 6277...(50 digits omitted)...2896"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 40284,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "49263:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "49252:12:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_6277101735386680763835789423207666416102355444464034512895_by_1",
                            "typeString": "int_const 6277...(50 digits omitted)...2895"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_6277101735386680763835789423207666416102355444464034512895_by_1",
                            "typeString": "int_const 6277...(50 digits omitted)...2895"
                          }
                        ],
                        "id": 40280,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "49244:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 40279,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "49244:7:116",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 40286,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "49244:21:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "49142:123:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "49124:141:116"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 40296,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 40293,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 40291,
                                "name": "_number",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40268,
                                "src": "49291:7:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "id": 40292,
                                "name": "range",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40258,
                                "src": "49301:5:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "src": "49291:15:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 40294,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "49290:17:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313932",
                          "id": 40295,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "49311:3:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_192_by_1",
                            "typeString": "int_const 192"
                          },
                          "value": "192"
                        },
                        "src": "49290:24:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 40290,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "49283:6:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint64_$",
                        "typeString": "type(uint64)"
                      },
                      "typeName": {
                        "id": 40289,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "49283:6:116",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 40297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "49283:32:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "functionReturnParameters": 40266,
                  "id": 40298,
                  "nodeType": "Return",
                  "src": "49276:39:116"
                }
              ]
            },
            "documentation": {
              "id": 40256,
              "nodeType": "StructuredDocumentation",
              "src": "48825:154:116",
              "text": "Generates a pseudo-random uint32 number uniformly distributed within the range `[0 .. range)`, based on\n the given `nonce` and `seed` values. "
            },
            "id": 40300,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "randomUniformUint64",
            "nameLocation": "48994:19:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40263,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40258,
                  "mutability": "mutable",
                  "name": "range",
                  "nameLocation": "49021:5:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40300,
                  "src": "49014:12:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 40257,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "49014:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 40260,
                  "mutability": "mutable",
                  "name": "nonce",
                  "nameLocation": "49036:5:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40300,
                  "src": "49028:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 40259,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "49028:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 40262,
                  "mutability": "mutable",
                  "name": "seed",
                  "nameLocation": "49051:4:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40300,
                  "src": "49043:12:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 40261,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "49043:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "49013:43:116"
            },
            "returnParameters": {
              "id": 40266,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40265,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 40300,
                  "src": "49099:6:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 40264,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "49099:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "49098:8:116"
            },
            "scope": 40741,
            "src": "48985:338:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 40376,
              "nodeType": "Block",
              "src": "49550:305:116",
              "statements": [
                {
                  "assignments": [
                    40309
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 40309,
                      "mutability": "mutable",
                      "name": "b2",
                      "nameLocation": "49574:2:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 40376,
                      "src": "49561:15:116",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 40308,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "49561:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 40314,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "32",
                        "id": 40312,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "49589:1:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        }
                      ],
                      "id": 40311,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "49579:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (bytes memory)"
                      },
                      "typeName": {
                        "id": 40310,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "49583:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      }
                    },
                    "id": 40313,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "49579:12:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "49561:30:116"
                },
                {
                  "assignments": [
                    40316
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 40316,
                      "mutability": "mutable",
                      "name": "d0",
                      "nameLocation": "49608:2:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 40376,
                      "src": "49602:8:116",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 40315,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "49602:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 40325,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 40324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 40321,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 40319,
                            "name": "_u",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40303,
                            "src": "49619:2:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "hexValue": "3136",
                            "id": 40320,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "49624:2:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "49619:7:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 40318,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "49613:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint8_$",
                          "typeString": "type(uint8)"
                        },
                        "typeName": {
                          "id": 40317,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "49613:5:116",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 40322,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "49613:14:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "3438",
                      "id": 40323,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "49630:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_48_by_1",
                        "typeString": "int_const 48"
                      },
                      "value": "48"
                    },
                    "src": "49613:19:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "49602:30:116"
                },
                {
                  "assignments": [
                    40327
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 40327,
                      "mutability": "mutable",
                      "name": "d1",
                      "nameLocation": "49649:2:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 40376,
                      "src": "49643:8:116",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 40326,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "49643:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 40336,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 40335,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 40332,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 40330,
                            "name": "_u",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40303,
                            "src": "49660:2:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "%",
                          "rightExpression": {
                            "hexValue": "3136",
                            "id": 40331,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "49665:2:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "49660:7:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 40329,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "49654:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint8_$",
                          "typeString": "type(uint8)"
                        },
                        "typeName": {
                          "id": 40328,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "49654:5:116",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 40333,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "49654:14:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "3438",
                      "id": 40334,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "49671:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_48_by_1",
                        "typeString": "int_const 48"
                      },
                      "value": "48"
                    },
                    "src": "49654:19:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "49643:30:116"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 40339,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 40337,
                      "name": "d0",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40316,
                      "src": "49688:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "3537",
                      "id": 40338,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "49693:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_57_by_1",
                        "typeString": "int_const 57"
                      },
                      "value": "57"
                    },
                    "src": "49688:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 40344,
                  "nodeType": "IfStatement",
                  "src": "49684:33:116",
                  "trueBody": {
                    "expression": {
                      "id": 40342,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 40340,
                        "name": "d0",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40316,
                        "src": "49710:2:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "+=",
                      "rightHandSide": {
                        "hexValue": "37",
                        "id": 40341,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "49716:1:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_7_by_1",
                          "typeString": "int_const 7"
                        },
                        "value": "7"
                      },
                      "src": "49710:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 40343,
                    "nodeType": "ExpressionStatement",
                    "src": "49710:7:116"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 40347,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 40345,
                      "name": "d1",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40327,
                      "src": "49732:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "3537",
                      "id": 40346,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "49737:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_57_by_1",
                        "typeString": "int_const 57"
                      },
                      "value": "57"
                    },
                    "src": "49732:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 40352,
                  "nodeType": "IfStatement",
                  "src": "49728:33:116",
                  "trueBody": {
                    "expression": {
                      "id": 40350,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 40348,
                        "name": "d1",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40327,
                        "src": "49754:2:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "+=",
                      "rightHandSide": {
                        "hexValue": "37",
                        "id": 40349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "49760:1:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_7_by_1",
                          "typeString": "int_const 7"
                        },
                        "value": "7"
                      },
                      "src": "49754:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 40351,
                    "nodeType": "ExpressionStatement",
                    "src": "49754:7:116"
                  }
                },
                {
                  "expression": {
                    "id": 40360,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 40353,
                        "name": "b2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40309,
                        "src": "49772:2:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 40355,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 40354,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "49775:1:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "49772:5:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes1",
                        "typeString": "bytes1"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 40358,
                          "name": "d0",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40316,
                          "src": "49787:2:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 40357,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "49780:6:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes1_$",
                          "typeString": "type(bytes1)"
                        },
                        "typeName": {
                          "id": 40356,
                          "name": "bytes1",
                          "nodeType": "ElementaryTypeName",
                          "src": "49780:6:116",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 40359,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "49780:10:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes1",
                        "typeString": "bytes1"
                      }
                    },
                    "src": "49772:18:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes1",
                      "typeString": "bytes1"
                    }
                  },
                  "id": 40361,
                  "nodeType": "ExpressionStatement",
                  "src": "49772:18:116"
                },
                {
                  "expression": {
                    "id": 40369,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 40362,
                        "name": "b2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40309,
                        "src": "49801:2:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 40364,
                      "indexExpression": {
                        "hexValue": "31",
                        "id": 40363,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "49804:1:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "49801:5:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes1",
                        "typeString": "bytes1"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 40367,
                          "name": "d1",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40327,
                          "src": "49816:2:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 40366,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "49809:6:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes1_$",
                          "typeString": "type(bytes1)"
                        },
                        "typeName": {
                          "id": 40365,
                          "name": "bytes1",
                          "nodeType": "ElementaryTypeName",
                          "src": "49809:6:116",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 40368,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "49809:10:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes1",
                        "typeString": "bytes1"
                      }
                    },
                    "src": "49801:18:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes1",
                      "typeString": "bytes1"
                    }
                  },
                  "id": 40370,
                  "nodeType": "ExpressionStatement",
                  "src": "49801:18:116"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 40373,
                        "name": "b2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40309,
                        "src": "49844:2:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 40372,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "49837:6:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": {
                        "id": 40371,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "49837:6:116",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 40374,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "49837:10:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 40307,
                  "id": 40375,
                  "nodeType": "Return",
                  "src": "49830:17:116"
                }
              ]
            },
            "documentation": {
              "id": 40301,
              "nodeType": "StructuredDocumentation",
              "src": "49331:121:116",
              "text": "@notice Convert a `uint8` into a 2 characters long `string` representing its two less significant hexadecimal values."
            },
            "id": 40377,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toHexString",
            "nameLocation": "49467:11:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40304,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40303,
                  "mutability": "mutable",
                  "name": "_u",
                  "nameLocation": "49485:2:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40377,
                  "src": "49479:8:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 40302,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "49479:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "49478:10:116"
            },
            "returnParameters": {
              "id": 40307,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40306,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 40377,
                  "src": "49530:13:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 40305,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "49530:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "49529:15:116"
            },
            "scope": 40741,
            "src": "49458:397:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 40528,
              "nodeType": "Block",
              "src": "50095:626:116",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 40387,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 40385,
                      "name": "_u",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40380,
                      "src": "50110:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "3130",
                      "id": 40386,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "50115:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10_by_1",
                        "typeString": "int_const 10"
                      },
                      "value": "10"
                    },
                    "src": "50110:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 40417,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 40415,
                        "name": "_u",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40380,
                        "src": "50263:2:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "hexValue": "313030",
                        "id": 40416,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "50268:3:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        "value": "100"
                      },
                      "src": "50263:8:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 40525,
                      "nodeType": "Block",
                      "src": "50468:246:116",
                      "statements": [
                        {
                          "assignments": [
                            40464
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 40464,
                              "mutability": "mutable",
                              "name": "b3",
                              "nameLocation": "50496:2:116",
                              "nodeType": "VariableDeclaration",
                              "scope": 40525,
                              "src": "50483:15:116",
                              "stateVariable": false,
                              "storageLocation": "memory",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes"
                              },
                              "typeName": {
                                "id": 40463,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "50483:5:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_storage_ptr",
                                  "typeString": "bytes"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 40469,
                          "initialValue": {
                            "arguments": [
                              {
                                "hexValue": "33",
                                "id": 40467,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "50511:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_3_by_1",
                                  "typeString": "int_const 3"
                                },
                                "value": "3"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_3_by_1",
                                  "typeString": "int_const 3"
                                }
                              ],
                              "id": 40466,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "50501:9:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (bytes memory)"
                              },
                              "typeName": {
                                "id": 40465,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "50505:5:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_storage_ptr",
                                  "typeString": "bytes"
                                }
                              }
                            },
                            "id": 40468,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "50501:12:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "50483:30:116"
                        },
                        {
                          "expression": {
                            "id": 40484,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "baseExpression": {
                                "id": 40470,
                                "name": "b3",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40464,
                                "src": "50528:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 40472,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 40471,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "50531:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "50528:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 40482,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 40479,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 40477,
                                          "name": "_u",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 40380,
                                          "src": "50549:2:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "/",
                                        "rightExpression": {
                                          "hexValue": "313030",
                                          "id": 40478,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "50554:3:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_100_by_1",
                                            "typeString": "int_const 100"
                                          },
                                          "value": "100"
                                        },
                                        "src": "50549:8:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 40476,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "50543:5:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 40475,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "50543:5:116",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 40480,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "50543:15:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "hexValue": "3438",
                                    "id": 40481,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "50561:2:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_48_by_1",
                                      "typeString": "int_const 48"
                                    },
                                    "value": "48"
                                  },
                                  "src": "50543:20:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 40474,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "50536:6:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes1_$",
                                  "typeString": "type(bytes1)"
                                },
                                "typeName": {
                                  "id": 40473,
                                  "name": "bytes1",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "50536:6:116",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 40483,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "50536:28:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "src": "50528:36:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "id": 40485,
                          "nodeType": "ExpressionStatement",
                          "src": "50528:36:116"
                        },
                        {
                          "expression": {
                            "id": 40502,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "baseExpression": {
                                "id": 40486,
                                "name": "b3",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40464,
                                "src": "50579:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 40488,
                              "indexExpression": {
                                "hexValue": "31",
                                "id": 40487,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "50582:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "50579:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 40500,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 40497,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          },
                                          "id": 40495,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "id": 40493,
                                            "name": "_u",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 40380,
                                            "src": "50600:2:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "%",
                                          "rightExpression": {
                                            "hexValue": "313030",
                                            "id": 40494,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "50605:3:116",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_100_by_1",
                                              "typeString": "int_const 100"
                                            },
                                            "value": "100"
                                          },
                                          "src": "50600:8:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "/",
                                        "rightExpression": {
                                          "hexValue": "3130",
                                          "id": 40496,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "50611:2:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_10_by_1",
                                            "typeString": "int_const 10"
                                          },
                                          "value": "10"
                                        },
                                        "src": "50600:13:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 40492,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "50594:5:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 40491,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "50594:5:116",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 40498,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "50594:20:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "hexValue": "3438",
                                    "id": 40499,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "50617:2:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_48_by_1",
                                      "typeString": "int_const 48"
                                    },
                                    "value": "48"
                                  },
                                  "src": "50594:25:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 40490,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "50587:6:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes1_$",
                                  "typeString": "type(bytes1)"
                                },
                                "typeName": {
                                  "id": 40489,
                                  "name": "bytes1",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "50587:6:116",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 40501,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "50587:33:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "src": "50579:41:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "id": 40503,
                          "nodeType": "ExpressionStatement",
                          "src": "50579:41:116"
                        },
                        {
                          "expression": {
                            "id": 40518,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "baseExpression": {
                                "id": 40504,
                                "name": "b3",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40464,
                                "src": "50635:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 40506,
                              "indexExpression": {
                                "hexValue": "32",
                                "id": 40505,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "50638:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "50635:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 40516,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 40513,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 40511,
                                          "name": "_u",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 40380,
                                          "src": "50656:2:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "%",
                                        "rightExpression": {
                                          "hexValue": "3130",
                                          "id": 40512,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "50661:2:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_10_by_1",
                                            "typeString": "int_const 10"
                                          },
                                          "value": "10"
                                        },
                                        "src": "50656:7:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 40510,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "50650:5:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 40509,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "50650:5:116",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 40514,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "50650:14:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "hexValue": "3438",
                                    "id": 40515,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "50667:2:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_48_by_1",
                                      "typeString": "int_const 48"
                                    },
                                    "value": "48"
                                  },
                                  "src": "50650:19:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 40508,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "50643:6:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes1_$",
                                  "typeString": "type(bytes1)"
                                },
                                "typeName": {
                                  "id": 40507,
                                  "name": "bytes1",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "50643:6:116",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 40517,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "50643:27:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "src": "50635:35:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "id": 40519,
                          "nodeType": "ExpressionStatement",
                          "src": "50635:35:116"
                        },
                        {
                          "expression": {
                            "arguments": [
                              {
                                "id": 40522,
                                "name": "b3",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40464,
                                "src": "50699:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 40521,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "50692:6:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                "typeString": "type(string storage pointer)"
                              },
                              "typeName": {
                                "id": 40520,
                                "name": "string",
                                "nodeType": "ElementaryTypeName",
                                "src": "50692:6:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 40523,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "50692:10:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "functionReturnParameters": 40384,
                          "id": 40524,
                          "nodeType": "Return",
                          "src": "50685:17:116"
                        }
                      ]
                    },
                    "id": 40526,
                    "nodeType": "IfStatement",
                    "src": "50259:455:116",
                    "trueBody": {
                      "id": 40462,
                      "nodeType": "Block",
                      "src": "50273:189:116",
                      "statements": [
                        {
                          "assignments": [
                            40419
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 40419,
                              "mutability": "mutable",
                              "name": "b2",
                              "nameLocation": "50301:2:116",
                              "nodeType": "VariableDeclaration",
                              "scope": 40462,
                              "src": "50288:15:116",
                              "stateVariable": false,
                              "storageLocation": "memory",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes"
                              },
                              "typeName": {
                                "id": 40418,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "50288:5:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_storage_ptr",
                                  "typeString": "bytes"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 40424,
                          "initialValue": {
                            "arguments": [
                              {
                                "hexValue": "32",
                                "id": 40422,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "50316:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                }
                              ],
                              "id": 40421,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "50306:9:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (bytes memory)"
                              },
                              "typeName": {
                                "id": 40420,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "50310:5:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_storage_ptr",
                                  "typeString": "bytes"
                                }
                              }
                            },
                            "id": 40423,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "50306:12:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "50288:30:116"
                        },
                        {
                          "expression": {
                            "id": 40439,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "baseExpression": {
                                "id": 40425,
                                "name": "b2",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40419,
                                "src": "50333:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 40427,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 40426,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "50336:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "50333:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 40437,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 40434,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 40432,
                                          "name": "_u",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 40380,
                                          "src": "50354:2:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "/",
                                        "rightExpression": {
                                          "hexValue": "3130",
                                          "id": 40433,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "50359:2:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_10_by_1",
                                            "typeString": "int_const 10"
                                          },
                                          "value": "10"
                                        },
                                        "src": "50354:7:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 40431,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "50348:5:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 40430,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "50348:5:116",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 40435,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "50348:14:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "hexValue": "3438",
                                    "id": 40436,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "50365:2:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_48_by_1",
                                      "typeString": "int_const 48"
                                    },
                                    "value": "48"
                                  },
                                  "src": "50348:19:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 40429,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "50341:6:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes1_$",
                                  "typeString": "type(bytes1)"
                                },
                                "typeName": {
                                  "id": 40428,
                                  "name": "bytes1",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "50341:6:116",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 40438,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "50341:27:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "src": "50333:35:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "id": 40440,
                          "nodeType": "ExpressionStatement",
                          "src": "50333:35:116"
                        },
                        {
                          "expression": {
                            "id": 40455,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "baseExpression": {
                                "id": 40441,
                                "name": "b2",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40419,
                                "src": "50383:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 40443,
                              "indexExpression": {
                                "hexValue": "31",
                                "id": 40442,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "50386:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "50383:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 40453,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 40450,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 40448,
                                          "name": "_u",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 40380,
                                          "src": "50404:2:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "%",
                                        "rightExpression": {
                                          "hexValue": "3130",
                                          "id": 40449,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "50409:2:116",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_10_by_1",
                                            "typeString": "int_const 10"
                                          },
                                          "value": "10"
                                        },
                                        "src": "50404:7:116",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 40447,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "50398:5:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 40446,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "50398:5:116",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 40451,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "50398:14:116",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "hexValue": "3438",
                                    "id": 40452,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "50415:2:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_48_by_1",
                                      "typeString": "int_const 48"
                                    },
                                    "value": "48"
                                  },
                                  "src": "50398:19:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 40445,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "50391:6:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes1_$",
                                  "typeString": "type(bytes1)"
                                },
                                "typeName": {
                                  "id": 40444,
                                  "name": "bytes1",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "50391:6:116",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 40454,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "50391:27:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "src": "50383:35:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "id": 40456,
                          "nodeType": "ExpressionStatement",
                          "src": "50383:35:116"
                        },
                        {
                          "expression": {
                            "arguments": [
                              {
                                "id": 40459,
                                "name": "b2",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40419,
                                "src": "50447:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 40458,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "50440:6:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                "typeString": "type(string storage pointer)"
                              },
                              "typeName": {
                                "id": 40457,
                                "name": "string",
                                "nodeType": "ElementaryTypeName",
                                "src": "50440:6:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 40460,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "50440:10:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "functionReturnParameters": 40384,
                          "id": 40461,
                          "nodeType": "Return",
                          "src": "50433:17:116"
                        }
                      ]
                    }
                  },
                  "id": 40527,
                  "nodeType": "IfStatement",
                  "src": "50106:608:116",
                  "trueBody": {
                    "id": 40414,
                    "nodeType": "Block",
                    "src": "50119:134:116",
                    "statements": [
                      {
                        "assignments": [
                          40389
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 40389,
                            "mutability": "mutable",
                            "name": "b1",
                            "nameLocation": "50147:2:116",
                            "nodeType": "VariableDeclaration",
                            "scope": 40414,
                            "src": "50134:15:116",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 40388,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "50134:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 40394,
                        "initialValue": {
                          "arguments": [
                            {
                              "hexValue": "31",
                              "id": 40392,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "50162:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 40391,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "50152:9:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function (uint256) pure returns (bytes memory)"
                            },
                            "typeName": {
                              "id": 40390,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "50156:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            }
                          },
                          "id": 40393,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "50152:12:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "50134:30:116"
                      },
                      {
                        "expression": {
                          "id": 40407,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 40395,
                              "name": "b1",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40389,
                              "src": "50179:2:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 40397,
                            "indexExpression": {
                              "hexValue": "30",
                              "id": 40396,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "50182:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "50179:5:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 40405,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "arguments": [
                                    {
                                      "id": 40402,
                                      "name": "_u",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 40380,
                                      "src": "50200:2:116",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "id": 40401,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "50194:5:116",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 40400,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "50194:5:116",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 40403,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "50194:9:116",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "hexValue": "3438",
                                  "id": 40404,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "50206:2:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_48_by_1",
                                    "typeString": "int_const 48"
                                  },
                                  "value": "48"
                                },
                                "src": "50194:14:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 40399,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "50187:6:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 40398,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "50187:6:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 40406,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "50187:22:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "src": "50179:30:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "id": 40408,
                        "nodeType": "ExpressionStatement",
                        "src": "50179:30:116"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 40411,
                              "name": "b1",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40389,
                              "src": "50238:2:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 40410,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "50231:6:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                              "typeString": "type(string storage pointer)"
                            },
                            "typeName": {
                              "id": 40409,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "50231:6:116",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 40412,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "50231:10:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "functionReturnParameters": 40384,
                        "id": 40413,
                        "nodeType": "Return",
                        "src": "50224:17:116"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 40378,
              "nodeType": "StructuredDocumentation",
              "src": "49863:137:116",
              "text": "@notice Convert a `uint8` into a 1, 2 or 3 characters long `string` representing its.\n three less significant decimal values."
            },
            "id": 40529,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toString",
            "nameLocation": "50015:8:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40381,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40380,
                  "mutability": "mutable",
                  "name": "_u",
                  "nameLocation": "50030:2:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40529,
                  "src": "50024:8:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 40379,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "50024:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "50023:10:116"
            },
            "returnParameters": {
              "id": 40384,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40383,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 40529,
                  "src": "50075:13:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 40382,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "50075:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "50074:15:116"
            },
            "scope": 40741,
            "src": "50006:715:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 40620,
              "nodeType": "Block",
              "src": "50890:448:116",
              "statements": [
                {
                  "assignments": [
                    40538
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 40538,
                      "mutability": "mutable",
                      "name": "maxlength",
                      "nameLocation": "50906:9:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 40620,
                      "src": "50901:14:116",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 40537,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "50901:4:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 40540,
                  "initialValue": {
                    "hexValue": "313030",
                    "id": 40539,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "50918:3:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_100_by_1",
                      "typeString": "int_const 100"
                    },
                    "value": "100"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "50901:20:116"
                },
                {
                  "assignments": [
                    40542
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 40542,
                      "mutability": "mutable",
                      "name": "reversed",
                      "nameLocation": "50945:8:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 40620,
                      "src": "50932:21:116",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 40541,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "50932:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 40547,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 40545,
                        "name": "maxlength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40538,
                        "src": "50966:9:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 40544,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "50956:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (bytes memory)"
                      },
                      "typeName": {
                        "id": 40543,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "50960:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      }
                    },
                    "id": 40546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "50956:20:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "50932:44:116"
                },
                {
                  "assignments": [
                    40549
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 40549,
                      "mutability": "mutable",
                      "name": "i",
                      "nameLocation": "50992:1:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 40620,
                      "src": "50987:6:116",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 40548,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "50987:4:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 40551,
                  "initialValue": {
                    "hexValue": "30",
                    "id": 40550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "50996:1:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "50987:10:116"
                },
                {
                  "body": {
                    "id": 40579,
                    "nodeType": "Block",
                    "src": "51011:137:116",
                    "statements": [
                      {
                        "assignments": [
                          40553
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 40553,
                            "mutability": "mutable",
                            "name": "remainder",
                            "nameLocation": "51032:9:116",
                            "nodeType": "VariableDeclaration",
                            "scope": 40579,
                            "src": "51026:15:116",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 40552,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "51026:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 40560,
                        "initialValue": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 40558,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 40556,
                                "name": "v",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40532,
                                "src": "51050:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "%",
                              "rightExpression": {
                                "hexValue": "3130",
                                "id": 40557,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "51054:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_10_by_1",
                                  "typeString": "int_const 10"
                                },
                                "value": "10"
                              },
                              "src": "51050:6:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 40555,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "51044:5:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint8_$",
                              "typeString": "type(uint8)"
                            },
                            "typeName": {
                              "id": 40554,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "51044:5:116",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 40559,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "51044:13:116",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "51026:31:116"
                      },
                      {
                        "expression": {
                          "id": 40565,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 40561,
                            "name": "v",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40532,
                            "src": "51072:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 40564,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 40562,
                              "name": "v",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40532,
                              "src": "51076:1:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "/",
                            "rightExpression": {
                              "hexValue": "3130",
                              "id": 40563,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "51080:2:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_10_by_1",
                                "typeString": "int_const 10"
                              },
                              "value": "10"
                            },
                            "src": "51076:6:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "51072:10:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 40566,
                        "nodeType": "ExpressionStatement",
                        "src": "51072:10:116"
                      },
                      {
                        "expression": {
                          "id": 40577,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 40567,
                              "name": "reversed",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40542,
                              "src": "51097:8:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 40570,
                            "indexExpression": {
                              "id": 40569,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": false,
                              "src": "51106:4:116",
                              "subExpression": {
                                "id": 40568,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40549,
                                "src": "51106:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "51097:14:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 40575,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "hexValue": "3438",
                                  "id": 40573,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "51121:2:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_48_by_1",
                                    "typeString": "int_const 48"
                                  },
                                  "value": "48"
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 40574,
                                  "name": "remainder",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 40553,
                                  "src": "51126:9:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "src": "51121:14:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 40572,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "51114:6:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 40571,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "51114:6:116",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 40576,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "51114:22:116",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "src": "51097:39:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "id": 40578,
                        "nodeType": "ExpressionStatement",
                        "src": "51097:39:116"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 40582,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 40580,
                      "name": "v",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40532,
                      "src": "51156:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 40581,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "51161:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "51156:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 40583,
                  "nodeType": "DoWhileStatement",
                  "src": "51008:156:116"
                },
                {
                  "assignments": [
                    40585
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 40585,
                      "mutability": "mutable",
                      "name": "buf",
                      "nameLocation": "51187:3:116",
                      "nodeType": "VariableDeclaration",
                      "scope": 40620,
                      "src": "51174:16:116",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 40584,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "51174:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 40590,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 40588,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40549,
                        "src": "51203:1:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 40587,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "51193:9:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (bytes memory)"
                      },
                      "typeName": {
                        "id": 40586,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "51197:5:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      }
                    },
                    "id": 40589,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "51193:12:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "51174:31:116"
                },
                {
                  "body": {
                    "id": 40613,
                    "nodeType": "Block",
                    "src": "51247:55:116",
                    "statements": [
                      {
                        "expression": {
                          "id": 40611,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 40601,
                              "name": "buf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40585,
                              "src": "51262:3:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 40605,
                            "indexExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 40604,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 40602,
                                "name": "j",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40592,
                                "src": "51266:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "hexValue": "31",
                                "id": 40603,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "51270:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "51266:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "51262:10:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "baseExpression": {
                              "id": 40606,
                              "name": "reversed",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40542,
                              "src": "51275:8:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 40610,
                            "indexExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 40609,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 40607,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40549,
                                "src": "51284:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "id": 40608,
                                "name": "j",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40592,
                                "src": "51288:1:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "51284:5:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "51275:15:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "src": "51262:28:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "id": 40612,
                        "nodeType": "ExpressionStatement",
                        "src": "51262:28:116"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 40597,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 40595,
                      "name": "j",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40592,
                      "src": "51233:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<=",
                    "rightExpression": {
                      "id": 40596,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40549,
                      "src": "51238:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "51233:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 40614,
                  "initializationExpression": {
                    "assignments": [
                      40592
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 40592,
                        "mutability": "mutable",
                        "name": "j",
                        "nameLocation": "51226:1:116",
                        "nodeType": "VariableDeclaration",
                        "scope": 40614,
                        "src": "51221:6:116",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 40591,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "51221:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 40594,
                    "initialValue": {
                      "hexValue": "31",
                      "id": 40593,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "51230:1:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "51221:10:116"
                  },
                  "isSimpleCounterLoop": false,
                  "loopExpression": {
                    "expression": {
                      "id": 40599,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "51241:4:116",
                      "subExpression": {
                        "id": 40598,
                        "name": "j",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40592,
                        "src": "51241:1:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 40600,
                    "nodeType": "ExpressionStatement",
                    "src": "51241:4:116"
                  },
                  "nodeType": "ForStatement",
                  "src": "51216:86:116"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 40617,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40585,
                        "src": "51326:3:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 40616,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "51319:6:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": {
                        "id": 40615,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "51319:6:116",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 40618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "51319:11:116",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 40536,
                  "id": 40619,
                  "nodeType": "Return",
                  "src": "51312:18:116"
                }
              ]
            },
            "documentation": {
              "id": 40530,
              "nodeType": "StructuredDocumentation",
              "src": "50729:67:116",
              "text": "@notice Convert a `uint` into a string` representing its value."
            },
            "id": 40621,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toString",
            "nameLocation": "50811:8:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40533,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40532,
                  "mutability": "mutable",
                  "name": "v",
                  "nameLocation": "50825:1:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40621,
                  "src": "50820:6:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 40531,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "50820:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "50819:8:116"
            },
            "returnParameters": {
              "id": 40536,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40535,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 40621,
                  "src": "50870:13:116",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 40534,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "50870:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "50869:15:116"
            },
            "scope": 40741,
            "src": "50802:536:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 40677,
              "nodeType": "Block",
              "src": "51660:426:116",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 40635,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 40631,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 40629,
                        "name": "hexChar",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40624,
                        "src": "51675:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">=",
                      "rightExpression": {
                        "hexValue": "30783330",
                        "id": 40630,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "51686:4:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_48_by_1",
                          "typeString": "int_const 48"
                        },
                        "value": "0x30"
                      },
                      "src": "51675:15:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 40634,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 40632,
                        "name": "hexChar",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40624,
                        "src": "51694:7:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<=",
                      "rightExpression": {
                        "hexValue": "30783339",
                        "id": 40633,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "51705:4:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_57_by_1",
                          "typeString": "int_const 57"
                        },
                        "value": "0x39"
                      },
                      "src": "51694:15:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "51675:34:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 40647,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 40643,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 40641,
                          "name": "hexChar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40624,
                          "src": "51787:7:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "hexValue": "30783431",
                          "id": 40642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "51798:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_65_by_1",
                            "typeString": "int_const 65"
                          },
                          "value": "0x41"
                        },
                        "src": "51787:15:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&&",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 40646,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 40644,
                          "name": "hexChar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40624,
                          "src": "51806:7:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "hexValue": "30783436",
                          "id": 40645,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "51817:4:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_70_by_1",
                            "typeString": "int_const 70"
                          },
                          "value": "0x46"
                        },
                        "src": "51806:15:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "51787:34:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 40661,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 40657,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 40655,
                            "name": "hexChar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40624,
                            "src": "51906:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "30783631",
                            "id": 40656,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "51917:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_97_by_1",
                              "typeString": "int_const 97"
                            },
                            "value": "0x61"
                          },
                          "src": "51906:15:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 40660,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 40658,
                            "name": "hexChar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40624,
                            "src": "51925:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "hexValue": "30783636",
                            "id": 40659,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "51936:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_102_by_1",
                              "typeString": "int_const 102"
                            },
                            "value": "0x66"
                          },
                          "src": "51925:15:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "51906:34:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 40673,
                        "nodeType": "Block",
                        "src": "52021:58:116",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "hexValue": "496e76616c69642068657820636861726163746572",
                                  "id": 40670,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "52043:23:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_3f6add0457b55e0d28d0df6cb630dd22967d6dac9673bb47e06495bccd4ca35c",
                                    "typeString": "literal_string \"Invalid hex character\""
                                  },
                                  "value": "Invalid hex character"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_3f6add0457b55e0d28d0df6cb630dd22967d6dac9673bb47e06495bccd4ca35c",
                                    "typeString": "literal_string \"Invalid hex character\""
                                  }
                                ],
                                "id": 40669,
                                "name": "revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  4294967277,
                                  4294967277
                                ],
                                "referencedDeclaration": 4294967277,
                                "src": "52036:6:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) pure"
                                }
                              },
                              "id": 40671,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "52036:31:116",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 40672,
                            "nodeType": "ExpressionStatement",
                            "src": "52036:31:116"
                          }
                        ]
                      },
                      "id": 40674,
                      "nodeType": "IfStatement",
                      "src": "51902:177:116",
                      "trueBody": {
                        "id": 40668,
                        "nodeType": "Block",
                        "src": "51942:73:116",
                        "statements": [
                          {
                            "expression": {
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 40666,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 40664,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 40662,
                                  "name": "hexChar",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 40624,
                                  "src": "51964:7:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "hexValue": "30783631",
                                  "id": 40663,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "51974:4:116",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_97_by_1",
                                    "typeString": "int_const 97"
                                  },
                                  "value": "0x61"
                                },
                                "src": "51964:14:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "hexValue": "3130",
                                "id": 40665,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "51981:2:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_10_by_1",
                                  "typeString": "int_const 10"
                                },
                                "value": "10"
                              },
                              "src": "51964:19:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "functionReturnParameters": 40628,
                            "id": 40667,
                            "nodeType": "Return",
                            "src": "51957:26:116"
                          }
                        ]
                      }
                    },
                    "id": 40675,
                    "nodeType": "IfStatement",
                    "src": "51783:296:116",
                    "trueBody": {
                      "id": 40654,
                      "nodeType": "Block",
                      "src": "51823:73:116",
                      "statements": [
                        {
                          "expression": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 40652,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 40650,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 40648,
                                "name": "hexChar",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40624,
                                "src": "51845:7:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "hexValue": "30783431",
                                "id": 40649,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "51855:4:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_65_by_1",
                                  "typeString": "int_const 65"
                                },
                                "value": "0x41"
                              },
                              "src": "51845:14:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "hexValue": "3130",
                              "id": 40651,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "51862:2:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_10_by_1",
                                "typeString": "int_const 10"
                              },
                              "value": "10"
                            },
                            "src": "51845:19:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "functionReturnParameters": 40628,
                          "id": 40653,
                          "nodeType": "Return",
                          "src": "51838:26:116"
                        }
                      ]
                    }
                  },
                  "id": 40676,
                  "nodeType": "IfStatement",
                  "src": "51671:408:116",
                  "trueBody": {
                    "id": 40640,
                    "nodeType": "Block",
                    "src": "51711:66:116",
                    "statements": [
                      {
                        "expression": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 40638,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 40636,
                            "name": "hexChar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40624,
                            "src": "51733:7:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "hexValue": "30783330",
                            "id": 40637,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "51743:4:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_48_by_1",
                              "typeString": "int_const 48"
                            },
                            "value": "0x30"
                          },
                          "src": "51733:14:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "functionReturnParameters": 40628,
                        "id": 40639,
                        "nodeType": "Return",
                        "src": "51726:21:116"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 40622,
              "nodeType": "StructuredDocumentation",
              "src": "51348:238:116",
              "text": "===============================================================================================================\n --- Witnet library private methods ----------------------------------------------------------------------------"
            },
            "id": 40678,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_hexCharToByte",
            "nameLocation": "51601:14:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40625,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40624,
                  "mutability": "mutable",
                  "name": "hexChar",
                  "nameLocation": "51622:7:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40678,
                  "src": "51616:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 40623,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "51616:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "51615:15:116"
            },
            "returnParameters": {
              "id": 40628,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40627,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 40678,
                  "src": "51653:5:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 40626,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "51653:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "51652:7:116"
            },
            "scope": 40741,
            "src": "51592:494:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 40688,
              "nodeType": "Block",
              "src": "52176:141:116",
              "statements": [
                {
                  "AST": {
                    "nativeSrc": "52196:114:116",
                    "nodeType": "YulBlock",
                    "src": "52196:114:116",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "52218:3:116",
                              "nodeType": "YulLiteral",
                              "src": "52218:3:116",
                              "type": "",
                              "value": "0x0"
                            },
                            {
                              "name": "_a",
                              "nativeSrc": "52223:2:116",
                              "nodeType": "YulIdentifier",
                              "src": "52223:2:116"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "52211:6:116",
                            "nodeType": "YulIdentifier",
                            "src": "52211:6:116"
                          },
                          "nativeSrc": "52211:15:116",
                          "nodeType": "YulFunctionCall",
                          "src": "52211:15:116"
                        },
                        "nativeSrc": "52211:15:116",
                        "nodeType": "YulExpressionStatement",
                        "src": "52211:15:116"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "52247:4:116",
                              "nodeType": "YulLiteral",
                              "src": "52247:4:116",
                              "type": "",
                              "value": "0x20"
                            },
                            {
                              "name": "_b",
                              "nativeSrc": "52253:2:116",
                              "nodeType": "YulIdentifier",
                              "src": "52253:2:116"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "52240:6:116",
                            "nodeType": "YulIdentifier",
                            "src": "52240:6:116"
                          },
                          "nativeSrc": "52240:16:116",
                          "nodeType": "YulFunctionCall",
                          "src": "52240:16:116"
                        },
                        "nativeSrc": "52240:16:116",
                        "nodeType": "YulExpressionStatement",
                        "src": "52240:16:116"
                      },
                      {
                        "nativeSrc": "52270:29:116",
                        "nodeType": "YulAssignment",
                        "src": "52270:29:116",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "52289:3:116",
                              "nodeType": "YulLiteral",
                              "src": "52289:3:116",
                              "type": "",
                              "value": "0x0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "52294:4:116",
                              "nodeType": "YulLiteral",
                              "src": "52294:4:116",
                              "type": "",
                              "value": "0x40"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nativeSrc": "52279:9:116",
                            "nodeType": "YulIdentifier",
                            "src": "52279:9:116"
                          },
                          "nativeSrc": "52279:20:116",
                          "nodeType": "YulFunctionCall",
                          "src": "52279:20:116"
                        },
                        "variableNames": [
                          {
                            "name": "_hash",
                            "nativeSrc": "52270:5:116",
                            "nodeType": "YulIdentifier",
                            "src": "52270:5:116"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "prague",
                  "externalReferences": [
                    {
                      "declaration": 40680,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "52223:2:116",
                      "valueSize": 1
                    },
                    {
                      "declaration": 40682,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "52253:2:116",
                      "valueSize": 1
                    },
                    {
                      "declaration": 40685,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "52270:5:116",
                      "valueSize": 1
                    }
                  ],
                  "id": 40687,
                  "nodeType": "InlineAssembly",
                  "src": "52187:123:116"
                }
              ]
            },
            "id": 40689,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_merkleHash",
            "nameLocation": "52103:11:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40683,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40680,
                  "mutability": "mutable",
                  "name": "_a",
                  "nameLocation": "52123:2:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40689,
                  "src": "52115:10:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 40679,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "52115:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 40682,
                  "mutability": "mutable",
                  "name": "_b",
                  "nameLocation": "52135:2:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40689,
                  "src": "52127:10:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 40681,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "52127:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "52114:24:116"
            },
            "returnParameters": {
              "id": 40686,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40685,
                  "mutability": "mutable",
                  "name": "_hash",
                  "nameLocation": "52169:5:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40689,
                  "src": "52161:13:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 40684,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "52161:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "52160:15:116"
            },
            "scope": 40741,
            "src": "52094:223:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 40713,
              "nodeType": "Block",
              "src": "52389:81:116",
              "statements": [
                {
                  "expression": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 40698,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 40696,
                        "name": "_uint8",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40691,
                        "src": "52407:6:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "hexValue": "3130",
                        "id": 40697,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "52416:2:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_10_by_1",
                          "typeString": "int_const 10"
                        },
                        "value": "10"
                      },
                      "src": "52407:11:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 40709,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 40707,
                            "name": "_uint8",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40691,
                            "src": "52450:6:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "hexValue": "3837",
                            "id": 40708,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "52459:2:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_87_by_1",
                              "typeString": "int_const 87"
                            },
                            "value": "87"
                          },
                          "src": "52450:11:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 40706,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "52443:6:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes1_$",
                          "typeString": "type(bytes1)"
                        },
                        "typeName": {
                          "id": 40705,
                          "name": "bytes1",
                          "nodeType": "ElementaryTypeName",
                          "src": "52443:6:116",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 40710,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "52443:19:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes1",
                        "typeString": "bytes1"
                      }
                    },
                    "id": 40711,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "52407:55:116",
                    "trueExpression": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 40703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 40701,
                            "name": "_uint8",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40691,
                            "src": "52428:6:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "hexValue": "3438",
                            "id": 40702,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "52437:2:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_48_by_1",
                              "typeString": "int_const 48"
                            },
                            "value": "48"
                          },
                          "src": "52428:11:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 40700,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "52421:6:116",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes1_$",
                          "typeString": "type(bytes1)"
                        },
                        "typeName": {
                          "id": 40699,
                          "name": "bytes1",
                          "nodeType": "ElementaryTypeName",
                          "src": "52421:6:116",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 40704,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "52421:19:116",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes1",
                        "typeString": "bytes1"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes1",
                      "typeString": "bytes1"
                    }
                  },
                  "functionReturnParameters": 40695,
                  "id": 40712,
                  "nodeType": "Return",
                  "src": "52400:62:116"
                }
              ]
            },
            "id": 40714,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_toHexChar",
            "nameLocation": "52334:10:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40692,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40691,
                  "mutability": "mutable",
                  "name": "_uint8",
                  "nameLocation": "52351:6:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40714,
                  "src": "52345:12:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 40690,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "52345:5:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "52344:14:116"
            },
            "returnParameters": {
              "id": 40695,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40694,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 40714,
                  "src": "52381:6:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes1",
                    "typeString": "bytes1"
                  },
                  "typeName": {
                    "id": 40693,
                    "name": "bytes1",
                    "nodeType": "ElementaryTypeName",
                    "src": "52381:6:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes1",
                      "typeString": "bytes1"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "52380:8:116"
            },
            "scope": 40741,
            "src": "52325:145:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 40739,
              "nodeType": "Block",
              "src": "52650:204:116",
              "statements": [
                {
                  "body": {
                    "id": 40737,
                    "nodeType": "Block",
                    "src": "52684:163:116",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          },
                          "id": 40729,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "baseExpression": {
                              "id": 40725,
                              "name": "_bytes32",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40717,
                              "src": "52703:8:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "id": 40727,
                            "indexExpression": {
                              "id": 40726,
                              "name": "_length",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40720,
                              "src": "52712:7:116",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "52703:17:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 40728,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "52724:1:116",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "52703:22:116",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 40732,
                        "nodeType": "IfStatement",
                        "src": "52699:68:116",
                        "trueBody": {
                          "id": 40731,
                          "nodeType": "Block",
                          "src": "52727:40:116",
                          "statements": [
                            {
                              "id": 40730,
                              "nodeType": "Break",
                              "src": "52746:5:116"
                            }
                          ]
                        }
                      },
                      {
                        "id": 40736,
                        "nodeType": "UncheckedBlock",
                        "src": "52781:55:116",
                        "statements": [
                          {
                            "expression": {
                              "id": 40734,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": false,
                              "src": "52810:10:116",
                              "subExpression": {
                                "id": 40733,
                                "name": "_length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40720,
                                "src": "52810:7:116",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 40735,
                            "nodeType": "ExpressionStatement",
                            "src": "52810:10:116"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 40724,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 40722,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40720,
                      "src": "52668:7:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "3332",
                      "id": 40723,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "52678:2:116",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_32_by_1",
                        "typeString": "int_const 32"
                      },
                      "value": "32"
                    },
                    "src": "52668:12:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 40738,
                  "isSimpleCounterLoop": false,
                  "nodeType": "ForStatement",
                  "src": "52661:186:116"
                }
              ]
            },
            "documentation": {
              "id": 40715,
              "nodeType": "StructuredDocumentation",
              "src": "52478:64:116",
              "text": "@dev Calculate length of string-equivalent to given bytes32."
            },
            "id": 40740,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_toStringLength",
            "nameLocation": "52557:15:116",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 40718,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40717,
                  "mutability": "mutable",
                  "name": "_bytes32",
                  "nameLocation": "52581:8:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40740,
                  "src": "52573:16:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 40716,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "52573:7:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "52572:18:116"
            },
            "returnParameters": {
              "id": 40721,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40720,
                  "mutability": "mutable",
                  "name": "_length",
                  "nameLocation": "52636:7:116",
                  "nodeType": "VariableDeclaration",
                  "scope": 40740,
                  "src": "52631:12:116",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 40719,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "52631:4:116",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "52630:14:116"
            },
            "scope": 40741,
            "src": "52548:306:116",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          }
        ],
        "scope": 40742,
        "src": "151:52706:116",
        "usedErrors": [],
        "usedEvents": []
      }
    ],
    "src": "35:52824:116"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.30+commit.73712a01.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-10-15T14:34:45.999Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}