{
  "contractName": "BytesIteratorInteractive",
  "abi": [],
  "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058204c28198dcf178683d57869ac8a5ac838fe70a09ec7ce3cbb35fadabd0183117d0029",
  "deployedBytecode": "0x6080604052600080fd00a165627a7a723058204c28198dcf178683d57869ac8a5ac838fe70a09ec7ce3cbb35fadabd0183117d0029",
  "sourceMap": "98:8560:76:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;98:8560:76;;;;;;;",
  "deployedSourceMap": "98:8560:76:-;;;;;",
  "source": "pragma solidity ^0.4.19;\n/**\n  @title Bytes Iterator Interactive\n  @author DigixGlobal Pte Ltd\n*/\ncontract BytesIteratorInteractive {\n\n  /**\n    @notice Lists a Bytes collection from start or end\n    @param _count Total number of Bytes items to return\n    @param _function_first Function that returns the First Bytes item in the list\n    @param _function_last Function that returns the last Bytes item in the list\n    @param _function_next Function that returns the Next Bytes item in the list\n    @param _function_previous Function that returns previous Bytes item in the list\n    @param _from_start whether to read from start (or end) of the list\n    @return {\"_bytes_items\" : \"Collection of reversed Bytes list\"}\n  */\n  function list_bytesarray(uint256 _count,\n                                 function () external constant returns (bytes32) _function_first,\n                                 function () external constant returns (bytes32) _function_last,\n                                 function (bytes32) external constant returns (bytes32) _function_next,\n                                 function (bytes32) external constant returns (bytes32) _function_previous,\n                                 bool _from_start)\n           internal\n           constant\n           returns (bytes32[] _bytes_items)\n  {\n    if (_from_start) {\n      _bytes_items = private_list_bytes_from_bytes(_function_first(), _count, true, _function_last, _function_next);\n    } else {\n      _bytes_items = private_list_bytes_from_bytes(_function_last(), _count, true, _function_first, _function_previous);\n    }\n  }\n\n  /**\n    @notice Lists a Bytes collection from some `_current_item`, going forwards or backwards depending on `_from_start`\n    @param _current_item The current Item\n    @param _count Total number of Bytes items to return\n    @param _function_first Function that returns the First Bytes item in the list\n    @param _function_last Function that returns the last Bytes item in the list\n    @param _function_next Function that returns the Next Bytes item in the list\n    @param _function_previous Function that returns previous Bytes item in the list\n    @param _from_start whether to read in the forwards ( or backwards) direction\n    @return {\"_bytes_items\" :\"Collection/list of Bytes\"}\n  */\n  function list_bytesarray_from(bytes32 _current_item, uint256 _count,\n                                function () external constant returns (bytes32) _function_first,\n                                function () external constant returns (bytes32) _function_last,\n                                function (bytes32) external constant returns (bytes32) _function_next,\n                                function (bytes32) external constant returns (bytes32) _function_previous,\n                                bool _from_start)\n           internal\n           constant\n           returns (bytes32[] _bytes_items)\n  {\n    if (_from_start) {\n      _bytes_items = private_list_bytes_from_bytes(_current_item, _count, false, _function_last, _function_next);\n    } else {\n      _bytes_items = private_list_bytes_from_bytes(_current_item, _count, false, _function_first, _function_previous);\n    }\n  }\n\n  /**\n    @notice A private function to lists a Bytes collection starting from some `_current_item` (which could be included or excluded), in the forwards or backwards direction\n    @param _current_item The current Item\n    @param _count Total number of Bytes items to return\n    @param _including_current Whether the `_current_item` should be included in the result\n    @param _function_last Function that returns the bytes where we stop reading more bytes\n    @param _function_next Function that returns the next bytes to read after some bytes (could be backwards or forwards in the physical collection)\n    @return {\"_address_items\" :\"Collection/list of Bytes\"}\n  */\n  function private_list_bytes_from_bytes(bytes32 _current_item, uint256 _count, bool _including_current,\n                                 function () external constant returns (bytes32) _function_last,\n                                 function (bytes32) external constant returns (bytes32) _function_next)\n           private\n           constant\n           returns (bytes32[] _bytes32_items)\n  {\n    uint256 _i;\n    uint256 _real_count = 0;\n    bytes32 _last_item;\n\n    _last_item = _function_last();\n    if (_count == 0 || _last_item == bytes32(0x0)) {\n      _bytes32_items = new bytes32[](0);\n    } else {\n      bytes32[] memory _items_temp = new bytes32[](_count);\n      bytes32 _this_item;\n      if (_including_current == true) {\n        _items_temp[0] = _current_item;\n        _real_count = 1;\n      }\n      _this_item = _current_item;\n      for (_i = _real_count; (_i < _count) && (_this_item != _last_item);_i++) {\n        _this_item = _function_next(_this_item);\n        if (_this_item != bytes32(0x0)) {\n          _real_count++;\n          _items_temp[_i] = _this_item;\n        }\n      }\n\n      _bytes32_items = new bytes32[](_real_count);\n      for(_i = 0;_i < _real_count;_i++) {\n        _bytes32_items[_i] = _items_temp[_i];\n      }\n    }\n  }\n\n\n\n\n  ////// DEPRECATED FUNCTIONS (old versions)\n\n  /**\n    @notice a private function to lists a Bytes collection starting from some `_current_item`, could be forwards or backwards\n    @param _current_item The current Item\n    @param _count Total number of Bytes items to return\n    @param _function_last Function that returns the bytes where we stop reading more bytes\n    @param _function_next Function that returns the next bytes to read after some bytes (could be backwards or forwards in the physical collection)\n    @return {\"_bytes_items\" :\"Collection/list of Bytes\"}\n  */\n  /*function list_bytes_from_bytes(bytes32 _current_item, uint256 _count,\n                                 function () external constant returns (bytes32) _function_last,\n                                 function (bytes32) external constant returns (bytes32) _function_next)\n           private\n           constant\n           returns (bytes32[] _bytes_items)\n  {\n    uint256 _i;\n    uint256 _real_count = 0;\n\n    if (_count == 0) {\n      _bytes_items = new bytes32[](0);\n    } else {\n      bytes32[] memory _items_temp = new bytes32[](_count);\n\n      bytes32 _start_item;\n      bytes32 _last_item;\n\n      _last_item = _function_last();\n\n      if (_last_item != _current_item) {\n        _start_item = _function_next(_current_item);\n        if (_start_item != bytes32(0x0)) {\n          _items_temp[0] = _start_item;\n          _real_count = 1;\n          for(_i = 1;(_i <= (_count - 1)) && (_start_item != _last_item);_i++) {\n            _start_item = _function_next(_start_item);\n            if (_start_item != bytes32(0x0)) {\n              _real_count++;\n              _items_temp[_i] = _start_item;\n            }\n          }\n          _bytes_items = new bytes32[](_real_count);\n          for(_i = 0;_i <= (_real_count - 1);_i++) {\n            _bytes_items[_i] = _items_temp[_i];\n          }\n        } else {\n          _bytes_items = new bytes32[](0);\n        }\n      } else {\n        _bytes_items = new bytes32[](0);\n      }\n    }\n  }*/\n\n  /**\n    @notice private function to list a Bytes collection starting from the start or end of the list\n    @param _count Total number of Bytes item to return\n    @param _function_total Function that returns the Total number of Bytes item in the list\n    @param _function_first Function that returns the First Bytes item in the list\n    @param _function_next Function that returns the Next Bytes item in the list\n    @return {\"_bytes_items\" :\"Collection/list of Bytes\"}\n  */\n  /*function list_bytes_from_start_or_end(uint256 _count,\n                                 function () external constant returns (uint256) _function_total,\n                                 function () external constant returns (bytes32) _function_first,\n                                 function (bytes32) external constant returns (bytes32) _function_next)\n\n           private\n           constant\n           returns (bytes32[] _bytes_items)\n  {\n    uint256 _i;\n    bytes32 _current_item;\n    uint256 _real_count = _function_total();\n\n    if (_count > _real_count) {\n      _count = _real_count;\n    }\n\n    bytes32[] memory _items_tmp = new bytes32[](_count);\n\n    if (_count > 0) {\n      _current_item = _function_first();\n      _items_tmp[0] = _current_item;\n\n      for(_i = 1;_i <= (_count - 1);_i++) {\n        _current_item = _function_next(_current_item);\n        if (_current_item != bytes32(0x0)) {\n          _items_tmp[_i] = _current_item;\n        }\n      }\n      _bytes_items = _items_tmp;\n    } else {\n      _bytes_items = new bytes32[](0);\n    }\n  }*/\n}\n",
  "sourcePath": "@digix/solidity-collections/contracts/abstract/BytesIteratorInteractive.sol",
  "ast": {
    "absolutePath": "@digix/solidity-collections/contracts/abstract/BytesIteratorInteractive.sol",
    "exportedSymbols": {
      "BytesIteratorInteractive": [
        21966
      ]
    },
    "id": 21967,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 21673,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:76"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Bytes Iterator Interactive\n@author DigixGlobal Pte Ltd",
        "fullyImplemented": true,
        "id": 21966,
        "linearizedBaseContracts": [
          21966
        ],
        "name": "BytesIteratorInteractive",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 21737,
              "nodeType": "Block",
              "src": "1308:285:76",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 21711,
                    "name": "_from_start",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 21705,
                    "src": "1318:11:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 21735,
                    "nodeType": "Block",
                    "src": "1461:128:76",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21733,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21724,
                            "name": "_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21709,
                            "src": "1469:12:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 21726,
                                  "name": "_function_last",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21687,
                                  "src": "1514:14:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                    "typeString": "function () view external returns (bytes32)"
                                  }
                                },
                                "id": 21727,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1514:16:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21728,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21675,
                                "src": "1532:6:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 21729,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1540:4:76",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 21730,
                                "name": "_function_first",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21681,
                                "src": "1546:15:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21731,
                                "name": "_function_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21703,
                                "src": "1563:18:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 21725,
                              "name": "private_list_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21965,
                              "src": "1484:29:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,uint256,bool,function () view external returns (bytes32),function (bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 21732,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1484:98:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "1469:113:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 21734,
                        "nodeType": "ExpressionStatement",
                        "src": "1469:113:76"
                      }
                    ]
                  },
                  "id": 21736,
                  "nodeType": "IfStatement",
                  "src": "1314:275:76",
                  "trueBody": {
                    "id": 21723,
                    "nodeType": "Block",
                    "src": "1331:124:76",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21721,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21712,
                            "name": "_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21709,
                            "src": "1339:12:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 21714,
                                  "name": "_function_first",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21681,
                                  "src": "1384:15:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                    "typeString": "function () view external returns (bytes32)"
                                  }
                                },
                                "id": 21715,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1384:17:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21716,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21675,
                                "src": "1403:6:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 21717,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1411:4:76",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 21718,
                                "name": "_function_last",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21687,
                                "src": "1417:14:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21719,
                                "name": "_function_next",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21695,
                                "src": "1433:14:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 21713,
                              "name": "private_list_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21965,
                              "src": "1354:29:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,uint256,bool,function () view external returns (bytes32),function (bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 21720,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1354:94:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "1339:109:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 21722,
                        "nodeType": "ExpressionStatement",
                        "src": "1339:109:76"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Lists a Bytes collection from start or end\n@param _count Total number of Bytes items to return\n@param _function_first Function that returns the First Bytes item in the list\n@param _function_last Function that returns the last Bytes item in the list\n@param _function_next Function that returns the Next Bytes item in the list\n@param _function_previous Function that returns previous Bytes item in the list\n@param _from_start whether to read from start (or end) of the list\n@return {\"_bytes_items\" : \"Collection of reversed Bytes list\"}",
            "id": 21738,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "list_bytesarray",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 21706,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21675,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "748:14:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21674,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "748:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21681,
                  "name": "_function_first",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "797:63:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                    "typeString": "function () view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21680,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21676,
                      "nodeType": "ParameterList",
                      "parameters": [],
                      "src": "806:2:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21679,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21678,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21738,
                          "src": "836:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21677,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "836:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "835:9:76"
                    },
                    "src": "797:63:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                      "typeString": "function () view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21687,
                  "name": "_function_last",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "895:62:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                    "typeString": "function () view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21686,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21682,
                      "nodeType": "ParameterList",
                      "parameters": [],
                      "src": "904:2:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21685,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21684,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21738,
                          "src": "934:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21683,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "934:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "933:9:76"
                    },
                    "src": "895:62:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                      "typeString": "function () view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21695,
                  "name": "_function_next",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "992:69:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21694,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21690,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21689,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21738,
                          "src": "1002:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21688,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1002:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1001:9:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21693,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21692,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21738,
                          "src": "1038:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21691,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1038:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1037:9:76"
                    },
                    "src": "992:69:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21703,
                  "name": "_function_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "1096:73:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21702,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21698,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21697,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21738,
                          "src": "1106:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21696,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1106:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1105:9:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21701,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21700,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21738,
                          "src": "1142:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21699,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1142:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1141:9:76"
                    },
                    "src": "1096:73:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21705,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "1204:16:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21704,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1204:4:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "747:474:76"
            },
            "payable": false,
            "returnParameters": {
              "id": 21710,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21709,
                  "name": "_bytes_items",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "1282:22:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 21707,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1282:7:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 21708,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1282:9:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1281:24:76"
            },
            "scope": 21966,
            "src": "723:870:76",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 21802,
              "nodeType": "Block",
              "src": "2897:280:76",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 21778,
                    "name": "_from_start",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 21772,
                    "src": "2907:11:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 21800,
                    "nodeType": "Block",
                    "src": "3047:126:76",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21798,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21790,
                            "name": "_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21776,
                            "src": "3055:12:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 21792,
                                "name": "_current_item",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21740,
                                "src": "3100:13:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21793,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21742,
                                "src": "3115:6:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 21794,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3123:5:76",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              {
                                "argumentTypes": null,
                                "id": 21795,
                                "name": "_function_first",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21748,
                                "src": "3130:15:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21796,
                                "name": "_function_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21770,
                                "src": "3147:18:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 21791,
                              "name": "private_list_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21965,
                              "src": "3070:29:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,uint256,bool,function () view external returns (bytes32),function (bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 21797,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3070:96:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "3055:111:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 21799,
                        "nodeType": "ExpressionStatement",
                        "src": "3055:111:76"
                      }
                    ]
                  },
                  "id": 21801,
                  "nodeType": "IfStatement",
                  "src": "2903:270:76",
                  "trueBody": {
                    "id": 21789,
                    "nodeType": "Block",
                    "src": "2920:121:76",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21787,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21779,
                            "name": "_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21776,
                            "src": "2928:12:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 21781,
                                "name": "_current_item",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21740,
                                "src": "2973:13:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21782,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21742,
                                "src": "2988:6:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 21783,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2996:5:76",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              {
                                "argumentTypes": null,
                                "id": 21784,
                                "name": "_function_last",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21754,
                                "src": "3003:14:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21785,
                                "name": "_function_next",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21762,
                                "src": "3019:14:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 21780,
                              "name": "private_list_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21965,
                              "src": "2943:29:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,uint256,bool,function () view external returns (bytes32),function (bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 21786,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2943:91:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "2928:106:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 21788,
                        "nodeType": "ExpressionStatement",
                        "src": "2928:106:76"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Lists a Bytes collection from some `_current_item`, going forwards or backwards depending on `_from_start`\n@param _current_item The current Item\n@param _count Total number of Bytes items to return\n@param _function_first Function that returns the First Bytes item in the list\n@param _function_last Function that returns the last Bytes item in the list\n@param _function_next Function that returns the Next Bytes item in the list\n@param _function_previous Function that returns previous Bytes item in the list\n@param _from_start whether to read in the forwards ( or backwards) direction\n@return {\"_bytes_items\" :\"Collection/list of Bytes\"}",
            "id": 21803,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "list_bytesarray_from",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 21773,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21740,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2319:21:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 21739,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2319:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21742,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2342:14:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21741,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2342:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21748,
                  "name": "_function_first",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2390:63:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                    "typeString": "function () view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21747,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21743,
                      "nodeType": "ParameterList",
                      "parameters": [],
                      "src": "2399:2:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21746,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21745,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21803,
                          "src": "2429:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21744,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2429:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2428:9:76"
                    },
                    "src": "2390:63:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                      "typeString": "function () view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21754,
                  "name": "_function_last",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2487:62:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                    "typeString": "function () view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21753,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21749,
                      "nodeType": "ParameterList",
                      "parameters": [],
                      "src": "2496:2:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21752,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21751,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21803,
                          "src": "2526:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21750,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2526:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2525:9:76"
                    },
                    "src": "2487:62:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                      "typeString": "function () view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21762,
                  "name": "_function_next",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2583:69:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21761,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21757,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21756,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21803,
                          "src": "2593:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21755,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2593:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2592:9:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21760,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21759,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21803,
                          "src": "2629:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21758,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2629:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2628:9:76"
                    },
                    "src": "2583:69:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21770,
                  "name": "_function_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2686:73:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21769,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21765,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21764,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21803,
                          "src": "2696:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21763,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2696:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2695:9:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21768,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21767,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21803,
                          "src": "2732:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21766,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2732:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2731:9:76"
                    },
                    "src": "2686:73:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21772,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2793:16:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21771,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2793:4:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2318:492:76"
            },
            "payable": false,
            "returnParameters": {
              "id": 21777,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21776,
                  "name": "_bytes_items",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2871:22:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 21774,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2871:7:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 21775,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2871:9:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2870:24:76"
            },
            "scope": 21966,
            "src": "2289:888:76",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 21964,
              "nodeType": "Block",
              "src": "4242:859:76",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 21830,
                      "name": "_i",
                      "nodeType": "VariableDeclaration",
                      "scope": 21965,
                      "src": "4248:10:76",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 21829,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4248:7:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 21831,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4248:10:76"
                },
                {
                  "assignments": [
                    21833
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 21833,
                      "name": "_real_count",
                      "nodeType": "VariableDeclaration",
                      "scope": 21965,
                      "src": "4264:19:76",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 21832,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4264:7:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 21835,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 21834,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4286:1:76",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4264:23:76"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 21837,
                      "name": "_last_item",
                      "nodeType": "VariableDeclaration",
                      "scope": 21965,
                      "src": "4293:18:76",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 21836,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4293:7:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 21838,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4293:18:76"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 21842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 21839,
                      "name": "_last_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 21837,
                      "src": "4318:10:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 21840,
                        "name": "_function_last",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21815,
                        "src": "4331:14:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                          "typeString": "function () view external returns (bytes32)"
                        }
                      },
                      "id": 21841,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4331:16:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "4318:29:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 21843,
                  "nodeType": "ExpressionStatement",
                  "src": "4318:29:76"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 21852,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 21846,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 21844,
                        "name": "_count",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21807,
                        "src": "4357:6:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 21845,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4367:1:76",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "4357:11:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 21851,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 21847,
                        "name": "_last_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21837,
                        "src": "4372:10:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 21849,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4394:3:76",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 21848,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4386:7:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": "bytes32"
                        },
                        "id": 21850,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4386:12:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "4372:26:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4357:41:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 21962,
                    "nodeType": "Block",
                    "src": "4454:643:76",
                    "statements": [
                      {
                        "assignments": [
                          21865
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 21865,
                            "name": "_items_temp",
                            "nodeType": "VariableDeclaration",
                            "scope": 21965,
                            "src": "4462:28:76",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 21863,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "4462:7:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 21864,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "4462:9:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 21871,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 21869,
                              "name": "_count",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21807,
                              "src": "4507:6:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 21868,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "4493:13:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 21866,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "4497:7:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 21867,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "4497:9:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 21870,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4493:21:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "4462:52:76"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 21873,
                            "name": "_this_item",
                            "nodeType": "VariableDeclaration",
                            "scope": 21965,
                            "src": "4522:18:76",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 21872,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "4522:7:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 21874,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "4522:18:76"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 21877,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 21875,
                            "name": "_including_current",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21809,
                            "src": "4552:18:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 21876,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4574:4:76",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "4552:26:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 21889,
                        "nodeType": "IfStatement",
                        "src": "4548:106:76",
                        "trueBody": {
                          "id": 21888,
                          "nodeType": "Block",
                          "src": "4580:74:76",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 21882,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 21878,
                                    "name": "_items_temp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 21865,
                                    "src": "4590:11:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 21880,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 21879,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4602:1:76",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "4590:14:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 21881,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21805,
                                  "src": "4607:13:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "4590:30:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 21883,
                              "nodeType": "ExpressionStatement",
                              "src": "4590:30:76"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 21886,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 21884,
                                  "name": "_real_count",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21833,
                                  "src": "4630:11:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 21885,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4644:1:76",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "4630:15:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 21887,
                              "nodeType": "ExpressionStatement",
                              "src": "4630:15:76"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21892,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21890,
                            "name": "_this_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21873,
                            "src": "4661:10:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 21891,
                            "name": "_current_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21805,
                            "src": "4674:13:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4661:26:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 21893,
                        "nodeType": "ExpressionStatement",
                        "src": "4661:26:76"
                      },
                      {
                        "body": {
                          "id": 21932,
                          "nodeType": "Block",
                          "src": "4768:175:76",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 21914,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 21910,
                                  "name": "_this_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21873,
                                  "src": "4778:10:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 21912,
                                      "name": "_this_item",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 21873,
                                      "src": "4806:10:76",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 21911,
                                    "name": "_function_next",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 21823,
                                    "src": "4791:14:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes32) view external returns (bytes32)"
                                    }
                                  },
                                  "id": 21913,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4791:26:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "4778:39:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 21915,
                              "nodeType": "ExpressionStatement",
                              "src": "4778:39:76"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 21920,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 21916,
                                  "name": "_this_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21873,
                                  "src": "4831:10:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "307830",
                                      "id": 21918,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "4853:3:76",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0x0"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      }
                                    ],
                                    "id": 21917,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "4845:7:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": "bytes32"
                                  },
                                  "id": 21919,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4845:12:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "4831:26:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 21931,
                              "nodeType": "IfStatement",
                              "src": "4827:108:76",
                              "trueBody": {
                                "id": 21930,
                                "nodeType": "Block",
                                "src": "4859:76:76",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 21922,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "4871:13:76",
                                      "subExpression": {
                                        "argumentTypes": null,
                                        "id": 21921,
                                        "name": "_real_count",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 21833,
                                        "src": "4871:11:76",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 21923,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4871:13:76"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 21928,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 21924,
                                          "name": "_items_temp",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 21865,
                                          "src": "4896:11:76",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                            "typeString": "bytes32[] memory"
                                          }
                                        },
                                        "id": 21926,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 21925,
                                          "name": "_i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 21830,
                                          "src": "4908:2:76",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "4896:15:76",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 21927,
                                        "name": "_this_item",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 21873,
                                        "src": "4914:10:76",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "src": "4896:28:76",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "id": 21929,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4896:28:76"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 21906,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 21900,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 21898,
                                  "name": "_i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21830,
                                  "src": "4719:2:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 21899,
                                  "name": "_count",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21807,
                                  "src": "4724:6:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "4719:11:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 21901,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "4718:13:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 21904,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 21902,
                                  "name": "_this_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21873,
                                  "src": "4736:10:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 21903,
                                  "name": "_last_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21837,
                                  "src": "4750:10:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "4736:24:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 21905,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "4735:26:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "4718:43:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 21933,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 21896,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 21894,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21830,
                              "src": "4700:2:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "id": 21895,
                              "name": "_real_count",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21833,
                              "src": "4705:11:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "4700:16:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 21897,
                          "nodeType": "ExpressionStatement",
                          "src": "4700:16:76"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 21908,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "4762:4:76",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 21907,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21830,
                              "src": "4762:2:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 21909,
                          "nodeType": "ExpressionStatement",
                          "src": "4762:4:76"
                        },
                        "nodeType": "ForStatement",
                        "src": "4695:248:76"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21934,
                            "name": "_bytes32_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21827,
                            "src": "4951:14:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 21938,
                                "name": "_real_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21833,
                                "src": "4982:11:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 21937,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "4968:13:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                                "typeString": "function (uint256) pure returns (bytes32[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 21935,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4972:7:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "id": 21936,
                                "length": null,
                                "nodeType": "ArrayTypeName",
                                "src": "4972:9:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                  "typeString": "bytes32[]"
                                }
                              }
                            },
                            "id": 21939,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4968:26:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "4951:43:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 21941,
                        "nodeType": "ExpressionStatement",
                        "src": "4951:43:76"
                      },
                      {
                        "body": {
                          "id": 21960,
                          "nodeType": "Block",
                          "src": "5036:55:76",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 21958,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 21952,
                                    "name": "_bytes32_items",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 21827,
                                    "src": "5046:14:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 21954,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 21953,
                                    "name": "_i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 21830,
                                    "src": "5061:2:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "5046:18:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 21955,
                                    "name": "_items_temp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 21865,
                                    "src": "5067:11:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 21957,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 21956,
                                    "name": "_i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 21830,
                                    "src": "5079:2:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "5067:15:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5046:36:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 21959,
                              "nodeType": "ExpressionStatement",
                              "src": "5046:36:76"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 21948,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 21946,
                            "name": "_i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21830,
                            "src": "5013:2:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 21947,
                            "name": "_real_count",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21833,
                            "src": "5018:11:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5013:16:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 21961,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 21944,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 21942,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21830,
                              "src": "5006:2:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 21943,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5011:1:76",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "5006:6:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 21945,
                          "nodeType": "ExpressionStatement",
                          "src": "5006:6:76"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 21950,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "5030:4:76",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 21949,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21830,
                              "src": "5030:2:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 21951,
                          "nodeType": "ExpressionStatement",
                          "src": "5030:4:76"
                        },
                        "nodeType": "ForStatement",
                        "src": "5002:89:76"
                      }
                    ]
                  },
                  "id": 21963,
                  "nodeType": "IfStatement",
                  "src": "4353:744:76",
                  "trueBody": {
                    "id": 21861,
                    "nodeType": "Block",
                    "src": "4400:48:76",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21859,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21853,
                            "name": "_bytes32_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21827,
                            "src": "4408:14:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 21857,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4439:1:76",
                                "subdenomination": null,
                                "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": 21856,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "4425:13:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                                "typeString": "function (uint256) pure returns (bytes32[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 21854,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4429:7:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "id": 21855,
                                "length": null,
                                "nodeType": "ArrayTypeName",
                                "src": "4429:9:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                  "typeString": "bytes32[]"
                                }
                              }
                            },
                            "id": 21858,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4425:16:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "4408:33:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 21860,
                        "nodeType": "ExpressionStatement",
                        "src": "4408:33:76"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice A private function to lists a Bytes collection starting from some `_current_item` (which could be included or excluded), in the forwards or backwards direction\n@param _current_item The current Item\n@param _count Total number of Bytes items to return\n@param _including_current Whether the `_current_item` should be included in the result\n@param _function_last Function that returns the bytes where we stop reading more bytes\n@param _function_next Function that returns the next bytes to read after some bytes (could be backwards or forwards in the physical collection)\n@return {\"_address_items\" :\"Collection/list of Bytes\"}",
            "id": 21965,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "private_list_bytes_from_bytes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 21824,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21805,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 21965,
                  "src": "3890:21:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 21804,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3890:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21807,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 21965,
                  "src": "3913:14:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21806,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3913:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21809,
                  "name": "_including_current",
                  "nodeType": "VariableDeclaration",
                  "scope": 21965,
                  "src": "3929:23:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21808,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3929:4:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21815,
                  "name": "_function_last",
                  "nodeType": "VariableDeclaration",
                  "scope": 21965,
                  "src": "3987:62:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                    "typeString": "function () view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21814,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21810,
                      "nodeType": "ParameterList",
                      "parameters": [],
                      "src": "3996:2:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21813,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21812,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21965,
                          "src": "4026:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21811,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4026:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4025:9:76"
                    },
                    "src": "3987:62:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                      "typeString": "function () view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21823,
                  "name": "_function_next",
                  "nodeType": "VariableDeclaration",
                  "scope": 21965,
                  "src": "4084:69:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21822,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21818,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21817,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21965,
                          "src": "4094:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21816,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4094:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4093:9:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21821,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21820,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21965,
                          "src": "4130:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21819,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4130:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4129:9:76"
                    },
                    "src": "4084:69:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3889:265:76"
            },
            "payable": false,
            "returnParameters": {
              "id": 21828,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21827,
                  "name": "_bytes32_items",
                  "nodeType": "VariableDeclaration",
                  "scope": 21965,
                  "src": "4214:24:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 21825,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "4214:7:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 21826,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4214:9:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4213:26:76"
            },
            "scope": 21966,
            "src": "3851:1250:76",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "private"
          }
        ],
        "scope": 21967,
        "src": "98:8560:76"
      }
    ],
    "src": "0:8659:76"
  },
  "legacyAST": {
    "absolutePath": "@digix/solidity-collections/contracts/abstract/BytesIteratorInteractive.sol",
    "exportedSymbols": {
      "BytesIteratorInteractive": [
        21966
      ]
    },
    "id": 21967,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 21673,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:76"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Bytes Iterator Interactive\n@author DigixGlobal Pte Ltd",
        "fullyImplemented": true,
        "id": 21966,
        "linearizedBaseContracts": [
          21966
        ],
        "name": "BytesIteratorInteractive",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 21737,
              "nodeType": "Block",
              "src": "1308:285:76",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 21711,
                    "name": "_from_start",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 21705,
                    "src": "1318:11:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 21735,
                    "nodeType": "Block",
                    "src": "1461:128:76",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21733,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21724,
                            "name": "_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21709,
                            "src": "1469:12:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 21726,
                                  "name": "_function_last",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21687,
                                  "src": "1514:14:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                    "typeString": "function () view external returns (bytes32)"
                                  }
                                },
                                "id": 21727,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1514:16:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21728,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21675,
                                "src": "1532:6:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 21729,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1540:4:76",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 21730,
                                "name": "_function_first",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21681,
                                "src": "1546:15:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21731,
                                "name": "_function_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21703,
                                "src": "1563:18:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 21725,
                              "name": "private_list_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21965,
                              "src": "1484:29:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,uint256,bool,function () view external returns (bytes32),function (bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 21732,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1484:98:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "1469:113:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 21734,
                        "nodeType": "ExpressionStatement",
                        "src": "1469:113:76"
                      }
                    ]
                  },
                  "id": 21736,
                  "nodeType": "IfStatement",
                  "src": "1314:275:76",
                  "trueBody": {
                    "id": 21723,
                    "nodeType": "Block",
                    "src": "1331:124:76",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21721,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21712,
                            "name": "_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21709,
                            "src": "1339:12:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 21714,
                                  "name": "_function_first",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21681,
                                  "src": "1384:15:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                    "typeString": "function () view external returns (bytes32)"
                                  }
                                },
                                "id": 21715,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1384:17:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21716,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21675,
                                "src": "1403:6:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 21717,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1411:4:76",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 21718,
                                "name": "_function_last",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21687,
                                "src": "1417:14:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21719,
                                "name": "_function_next",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21695,
                                "src": "1433:14:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 21713,
                              "name": "private_list_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21965,
                              "src": "1354:29:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,uint256,bool,function () view external returns (bytes32),function (bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 21720,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1354:94:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "1339:109:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 21722,
                        "nodeType": "ExpressionStatement",
                        "src": "1339:109:76"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Lists a Bytes collection from start or end\n@param _count Total number of Bytes items to return\n@param _function_first Function that returns the First Bytes item in the list\n@param _function_last Function that returns the last Bytes item in the list\n@param _function_next Function that returns the Next Bytes item in the list\n@param _function_previous Function that returns previous Bytes item in the list\n@param _from_start whether to read from start (or end) of the list\n@return {\"_bytes_items\" : \"Collection of reversed Bytes list\"}",
            "id": 21738,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "list_bytesarray",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 21706,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21675,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "748:14:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21674,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "748:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21681,
                  "name": "_function_first",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "797:63:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                    "typeString": "function () view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21680,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21676,
                      "nodeType": "ParameterList",
                      "parameters": [],
                      "src": "806:2:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21679,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21678,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21738,
                          "src": "836:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21677,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "836:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "835:9:76"
                    },
                    "src": "797:63:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                      "typeString": "function () view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21687,
                  "name": "_function_last",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "895:62:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                    "typeString": "function () view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21686,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21682,
                      "nodeType": "ParameterList",
                      "parameters": [],
                      "src": "904:2:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21685,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21684,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21738,
                          "src": "934:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21683,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "934:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "933:9:76"
                    },
                    "src": "895:62:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                      "typeString": "function () view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21695,
                  "name": "_function_next",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "992:69:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21694,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21690,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21689,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21738,
                          "src": "1002:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21688,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1002:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1001:9:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21693,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21692,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21738,
                          "src": "1038:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21691,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1038:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1037:9:76"
                    },
                    "src": "992:69:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21703,
                  "name": "_function_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "1096:73:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21702,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21698,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21697,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21738,
                          "src": "1106:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21696,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1106:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1105:9:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21701,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21700,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21738,
                          "src": "1142:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21699,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1142:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1141:9:76"
                    },
                    "src": "1096:73:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21705,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "1204:16:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21704,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1204:4:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "747:474:76"
            },
            "payable": false,
            "returnParameters": {
              "id": 21710,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21709,
                  "name": "_bytes_items",
                  "nodeType": "VariableDeclaration",
                  "scope": 21738,
                  "src": "1282:22:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 21707,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1282:7:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 21708,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1282:9:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1281:24:76"
            },
            "scope": 21966,
            "src": "723:870:76",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 21802,
              "nodeType": "Block",
              "src": "2897:280:76",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 21778,
                    "name": "_from_start",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 21772,
                    "src": "2907:11:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 21800,
                    "nodeType": "Block",
                    "src": "3047:126:76",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21798,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21790,
                            "name": "_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21776,
                            "src": "3055:12:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 21792,
                                "name": "_current_item",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21740,
                                "src": "3100:13:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21793,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21742,
                                "src": "3115:6:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 21794,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3123:5:76",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              {
                                "argumentTypes": null,
                                "id": 21795,
                                "name": "_function_first",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21748,
                                "src": "3130:15:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21796,
                                "name": "_function_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21770,
                                "src": "3147:18:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 21791,
                              "name": "private_list_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21965,
                              "src": "3070:29:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,uint256,bool,function () view external returns (bytes32),function (bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 21797,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3070:96:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "3055:111:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 21799,
                        "nodeType": "ExpressionStatement",
                        "src": "3055:111:76"
                      }
                    ]
                  },
                  "id": 21801,
                  "nodeType": "IfStatement",
                  "src": "2903:270:76",
                  "trueBody": {
                    "id": 21789,
                    "nodeType": "Block",
                    "src": "2920:121:76",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21787,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21779,
                            "name": "_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21776,
                            "src": "2928:12:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 21781,
                                "name": "_current_item",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21740,
                                "src": "2973:13:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21782,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21742,
                                "src": "2988:6:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 21783,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2996:5:76",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              {
                                "argumentTypes": null,
                                "id": 21784,
                                "name": "_function_last",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21754,
                                "src": "3003:14:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 21785,
                                "name": "_function_next",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21762,
                                "src": "3019:14:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                  "typeString": "function () view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 21780,
                              "name": "private_list_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21965,
                              "src": "2943:29:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,uint256,bool,function () view external returns (bytes32),function (bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 21786,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2943:91:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "2928:106:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 21788,
                        "nodeType": "ExpressionStatement",
                        "src": "2928:106:76"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Lists a Bytes collection from some `_current_item`, going forwards or backwards depending on `_from_start`\n@param _current_item The current Item\n@param _count Total number of Bytes items to return\n@param _function_first Function that returns the First Bytes item in the list\n@param _function_last Function that returns the last Bytes item in the list\n@param _function_next Function that returns the Next Bytes item in the list\n@param _function_previous Function that returns previous Bytes item in the list\n@param _from_start whether to read in the forwards ( or backwards) direction\n@return {\"_bytes_items\" :\"Collection/list of Bytes\"}",
            "id": 21803,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "list_bytesarray_from",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 21773,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21740,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2319:21:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 21739,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2319:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21742,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2342:14:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21741,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2342:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21748,
                  "name": "_function_first",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2390:63:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                    "typeString": "function () view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21747,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21743,
                      "nodeType": "ParameterList",
                      "parameters": [],
                      "src": "2399:2:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21746,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21745,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21803,
                          "src": "2429:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21744,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2429:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2428:9:76"
                    },
                    "src": "2390:63:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                      "typeString": "function () view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21754,
                  "name": "_function_last",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2487:62:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                    "typeString": "function () view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21753,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21749,
                      "nodeType": "ParameterList",
                      "parameters": [],
                      "src": "2496:2:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21752,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21751,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21803,
                          "src": "2526:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21750,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2526:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2525:9:76"
                    },
                    "src": "2487:62:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                      "typeString": "function () view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21762,
                  "name": "_function_next",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2583:69:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21761,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21757,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21756,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21803,
                          "src": "2593:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21755,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2593:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2592:9:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21760,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21759,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21803,
                          "src": "2629:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21758,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2629:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2628:9:76"
                    },
                    "src": "2583:69:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21770,
                  "name": "_function_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2686:73:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21769,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21765,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21764,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21803,
                          "src": "2696:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21763,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2696:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2695:9:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21768,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21767,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21803,
                          "src": "2732:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21766,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2732:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2731:9:76"
                    },
                    "src": "2686:73:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21772,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2793:16:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21771,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2793:4:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2318:492:76"
            },
            "payable": false,
            "returnParameters": {
              "id": 21777,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21776,
                  "name": "_bytes_items",
                  "nodeType": "VariableDeclaration",
                  "scope": 21803,
                  "src": "2871:22:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 21774,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2871:7:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 21775,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2871:9:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2870:24:76"
            },
            "scope": 21966,
            "src": "2289:888:76",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 21964,
              "nodeType": "Block",
              "src": "4242:859:76",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 21830,
                      "name": "_i",
                      "nodeType": "VariableDeclaration",
                      "scope": 21965,
                      "src": "4248:10:76",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 21829,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4248:7:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 21831,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4248:10:76"
                },
                {
                  "assignments": [
                    21833
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 21833,
                      "name": "_real_count",
                      "nodeType": "VariableDeclaration",
                      "scope": 21965,
                      "src": "4264:19:76",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 21832,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4264:7:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 21835,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 21834,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4286:1:76",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4264:23:76"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 21837,
                      "name": "_last_item",
                      "nodeType": "VariableDeclaration",
                      "scope": 21965,
                      "src": "4293:18:76",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 21836,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4293:7:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 21838,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4293:18:76"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 21842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 21839,
                      "name": "_last_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 21837,
                      "src": "4318:10:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 21840,
                        "name": "_function_last",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21815,
                        "src": "4331:14:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                          "typeString": "function () view external returns (bytes32)"
                        }
                      },
                      "id": 21841,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4331:16:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "4318:29:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 21843,
                  "nodeType": "ExpressionStatement",
                  "src": "4318:29:76"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 21852,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 21846,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 21844,
                        "name": "_count",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21807,
                        "src": "4357:6:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 21845,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4367:1:76",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "4357:11:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 21851,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 21847,
                        "name": "_last_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21837,
                        "src": "4372:10:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 21849,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4394:3:76",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 21848,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4386:7:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": "bytes32"
                        },
                        "id": 21850,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4386:12:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "4372:26:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4357:41:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 21962,
                    "nodeType": "Block",
                    "src": "4454:643:76",
                    "statements": [
                      {
                        "assignments": [
                          21865
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 21865,
                            "name": "_items_temp",
                            "nodeType": "VariableDeclaration",
                            "scope": 21965,
                            "src": "4462:28:76",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 21863,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "4462:7:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 21864,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "4462:9:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 21871,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 21869,
                              "name": "_count",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21807,
                              "src": "4507:6:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 21868,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "4493:13:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 21866,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "4497:7:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 21867,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "4497:9:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 21870,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4493:21:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "4462:52:76"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 21873,
                            "name": "_this_item",
                            "nodeType": "VariableDeclaration",
                            "scope": 21965,
                            "src": "4522:18:76",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 21872,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "4522:7:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 21874,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "4522:18:76"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 21877,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 21875,
                            "name": "_including_current",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21809,
                            "src": "4552:18:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 21876,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4574:4:76",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "4552:26:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 21889,
                        "nodeType": "IfStatement",
                        "src": "4548:106:76",
                        "trueBody": {
                          "id": 21888,
                          "nodeType": "Block",
                          "src": "4580:74:76",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 21882,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 21878,
                                    "name": "_items_temp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 21865,
                                    "src": "4590:11:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 21880,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 21879,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4602:1:76",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "4590:14:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 21881,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21805,
                                  "src": "4607:13:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "4590:30:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 21883,
                              "nodeType": "ExpressionStatement",
                              "src": "4590:30:76"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 21886,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 21884,
                                  "name": "_real_count",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21833,
                                  "src": "4630:11:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 21885,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4644:1:76",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "4630:15:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 21887,
                              "nodeType": "ExpressionStatement",
                              "src": "4630:15:76"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21892,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21890,
                            "name": "_this_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21873,
                            "src": "4661:10:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 21891,
                            "name": "_current_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21805,
                            "src": "4674:13:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4661:26:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 21893,
                        "nodeType": "ExpressionStatement",
                        "src": "4661:26:76"
                      },
                      {
                        "body": {
                          "id": 21932,
                          "nodeType": "Block",
                          "src": "4768:175:76",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 21914,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 21910,
                                  "name": "_this_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21873,
                                  "src": "4778:10:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 21912,
                                      "name": "_this_item",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 21873,
                                      "src": "4806:10:76",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 21911,
                                    "name": "_function_next",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 21823,
                                    "src": "4791:14:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes32) view external returns (bytes32)"
                                    }
                                  },
                                  "id": 21913,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4791:26:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "4778:39:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 21915,
                              "nodeType": "ExpressionStatement",
                              "src": "4778:39:76"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 21920,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 21916,
                                  "name": "_this_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21873,
                                  "src": "4831:10:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "307830",
                                      "id": 21918,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "4853:3:76",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0x0"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      }
                                    ],
                                    "id": 21917,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "4845:7:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": "bytes32"
                                  },
                                  "id": 21919,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4845:12:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "4831:26:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 21931,
                              "nodeType": "IfStatement",
                              "src": "4827:108:76",
                              "trueBody": {
                                "id": 21930,
                                "nodeType": "Block",
                                "src": "4859:76:76",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 21922,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "4871:13:76",
                                      "subExpression": {
                                        "argumentTypes": null,
                                        "id": 21921,
                                        "name": "_real_count",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 21833,
                                        "src": "4871:11:76",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 21923,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4871:13:76"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 21928,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 21924,
                                          "name": "_items_temp",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 21865,
                                          "src": "4896:11:76",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                            "typeString": "bytes32[] memory"
                                          }
                                        },
                                        "id": 21926,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 21925,
                                          "name": "_i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 21830,
                                          "src": "4908:2:76",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "4896:15:76",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 21927,
                                        "name": "_this_item",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 21873,
                                        "src": "4914:10:76",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "src": "4896:28:76",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "id": 21929,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4896:28:76"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 21906,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 21900,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 21898,
                                  "name": "_i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21830,
                                  "src": "4719:2:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 21899,
                                  "name": "_count",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21807,
                                  "src": "4724:6:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "4719:11:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 21901,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "4718:13:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 21904,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 21902,
                                  "name": "_this_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21873,
                                  "src": "4736:10:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 21903,
                                  "name": "_last_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 21837,
                                  "src": "4750:10:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "4736:24:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 21905,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "4735:26:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "4718:43:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 21933,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 21896,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 21894,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21830,
                              "src": "4700:2:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "id": 21895,
                              "name": "_real_count",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21833,
                              "src": "4705:11:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "4700:16:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 21897,
                          "nodeType": "ExpressionStatement",
                          "src": "4700:16:76"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 21908,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "4762:4:76",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 21907,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21830,
                              "src": "4762:2:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 21909,
                          "nodeType": "ExpressionStatement",
                          "src": "4762:4:76"
                        },
                        "nodeType": "ForStatement",
                        "src": "4695:248:76"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21934,
                            "name": "_bytes32_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21827,
                            "src": "4951:14:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 21938,
                                "name": "_real_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 21833,
                                "src": "4982:11:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 21937,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "4968:13:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                                "typeString": "function (uint256) pure returns (bytes32[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 21935,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4972:7:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "id": 21936,
                                "length": null,
                                "nodeType": "ArrayTypeName",
                                "src": "4972:9:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                  "typeString": "bytes32[]"
                                }
                              }
                            },
                            "id": 21939,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4968:26:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "4951:43:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 21941,
                        "nodeType": "ExpressionStatement",
                        "src": "4951:43:76"
                      },
                      {
                        "body": {
                          "id": 21960,
                          "nodeType": "Block",
                          "src": "5036:55:76",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 21958,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 21952,
                                    "name": "_bytes32_items",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 21827,
                                    "src": "5046:14:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 21954,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 21953,
                                    "name": "_i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 21830,
                                    "src": "5061:2:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "5046:18:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 21955,
                                    "name": "_items_temp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 21865,
                                    "src": "5067:11:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 21957,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 21956,
                                    "name": "_i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 21830,
                                    "src": "5079:2:76",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "5067:15:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5046:36:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 21959,
                              "nodeType": "ExpressionStatement",
                              "src": "5046:36:76"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 21948,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 21946,
                            "name": "_i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21830,
                            "src": "5013:2:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 21947,
                            "name": "_real_count",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21833,
                            "src": "5018:11:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5013:16:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 21961,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 21944,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 21942,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21830,
                              "src": "5006:2:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 21943,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5011:1:76",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "5006:6:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 21945,
                          "nodeType": "ExpressionStatement",
                          "src": "5006:6:76"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 21950,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "5030:4:76",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 21949,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21830,
                              "src": "5030:2:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 21951,
                          "nodeType": "ExpressionStatement",
                          "src": "5030:4:76"
                        },
                        "nodeType": "ForStatement",
                        "src": "5002:89:76"
                      }
                    ]
                  },
                  "id": 21963,
                  "nodeType": "IfStatement",
                  "src": "4353:744:76",
                  "trueBody": {
                    "id": 21861,
                    "nodeType": "Block",
                    "src": "4400:48:76",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21859,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 21853,
                            "name": "_bytes32_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 21827,
                            "src": "4408:14:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 21857,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4439:1:76",
                                "subdenomination": null,
                                "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": 21856,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "4425:13:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                                "typeString": "function (uint256) pure returns (bytes32[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 21854,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4429:7:76",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "id": 21855,
                                "length": null,
                                "nodeType": "ArrayTypeName",
                                "src": "4429:9:76",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                  "typeString": "bytes32[]"
                                }
                              }
                            },
                            "id": 21858,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4425:16:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "4408:33:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 21860,
                        "nodeType": "ExpressionStatement",
                        "src": "4408:33:76"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice A private function to lists a Bytes collection starting from some `_current_item` (which could be included or excluded), in the forwards or backwards direction\n@param _current_item The current Item\n@param _count Total number of Bytes items to return\n@param _including_current Whether the `_current_item` should be included in the result\n@param _function_last Function that returns the bytes where we stop reading more bytes\n@param _function_next Function that returns the next bytes to read after some bytes (could be backwards or forwards in the physical collection)\n@return {\"_address_items\" :\"Collection/list of Bytes\"}",
            "id": 21965,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "private_list_bytes_from_bytes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 21824,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21805,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 21965,
                  "src": "3890:21:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 21804,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3890:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21807,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 21965,
                  "src": "3913:14:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21806,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3913:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21809,
                  "name": "_including_current",
                  "nodeType": "VariableDeclaration",
                  "scope": 21965,
                  "src": "3929:23:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21808,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3929:4:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21815,
                  "name": "_function_last",
                  "nodeType": "VariableDeclaration",
                  "scope": 21965,
                  "src": "3987:62:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                    "typeString": "function () view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21814,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21810,
                      "nodeType": "ParameterList",
                      "parameters": [],
                      "src": "3996:2:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21813,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21812,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21965,
                          "src": "4026:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21811,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4026:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4025:9:76"
                    },
                    "src": "3987:62:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                      "typeString": "function () view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21823,
                  "name": "_function_next",
                  "nodeType": "VariableDeclaration",
                  "scope": 21965,
                  "src": "4084:69:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 21822,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 21818,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21817,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21965,
                          "src": "4094:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21816,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4094:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4093:9:76"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 21821,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 21820,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 21965,
                          "src": "4130:7:76",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 21819,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4130:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4129:9:76"
                    },
                    "src": "4084:69:76",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3889:265:76"
            },
            "payable": false,
            "returnParameters": {
              "id": 21828,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21827,
                  "name": "_bytes32_items",
                  "nodeType": "VariableDeclaration",
                  "scope": 21965,
                  "src": "4214:24:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 21825,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "4214:7:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 21826,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4214:9:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4213:26:76"
            },
            "scope": 21966,
            "src": "3851:1250:76",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "private"
          }
        ],
        "scope": 21967,
        "src": "98:8560:76"
      }
    ],
    "src": "0:8659:76"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-13T02:38:46.138Z"
}