code: def decompile(self, data, ttFont):
      # Save the original data because offsets are from the start of the table.
      origData = data
      i = 0
  
      dummy = sstruct.unpack(eblcHeaderFormat, data[:8], self)
      i += 8
  
      self.strikes = []
      for curStrikeIndex in range(self.numSizes):
          curStrike = Strike()
          self.strikes.append(curStrike)
          curTable = curStrike.bitmapSizeTable
          dummy = sstruct.unpack2(
              bitmapSizeTableFormatPart1, data[i : i + 16], curTable
          )
          i += 16
          for metric in ("hori", "vert"):
              metricObj = SbitLineMetrics()
              vars(curTable)[metric] = metricObj
              dummy = sstruct.unpack2(
                  sbitLineMetricsFormat, data[i : i + 12], metricObj
              )
              i += 12
          dummy = sstruct.unpack(
              bitmapSizeTableFormatPart2, data[i : i + 8], curTable
          )
          i += 8
  
      for curStrike in self.strikes:
          curTable = curStrike.bitmapSizeTable
          for subtableIndex in range(curTable.numberOfIndexSubTables):
              i = (
                  curTable.indexSubTableArrayOffset
                  + subtableIndex * indexSubTableArraySize
              )
  
              tup = struct.unpack(
                  indexSubTableArrayFormat,
                  data[i : i + indexSubTableArraySize],
              )
              (
                  firstGlyphIndex,
                  lastGlyphIndex,
                  additionalOffsetToIndexSubtable,
              ) = tup
              i = (
                  curTable.indexSubTableArrayOffset
                  + additionalOffsetToIndexSubtable
              )
  
              tup = struct.unpack(
                  indexSubHeaderFormat, data[i : i + indexSubHeaderSize]
              )
              (indexFormat, imageFormat, imageDataOffset) = tup
  
              indexFormatClass = self.getIndexFormatClass(indexFormat)
              indexSubTable = indexFormatClass(
                  data[i + indexSubHeaderSize :], ttFont
              )
              indexSubTable.firstGlyphIndex = firstGlyphIndex
              indexSubTable.lastGlyphIndex = lastGlyphIndex
              indexSubTable.additionalOffsetToIndexSubtable = (
                  additionalOffsetToIndexSubtable
              )
              indexSubTable.indexFormat = indexFormat
              indexSubTable.imageFormat = imageFormat
              indexSubTable.imageDataOffset = imageDataOffset
              indexSubTable.decompile()  # https://github.com/fonttools/fonttools/issues/317
              curStrike.indexSubTables.append(indexSubTable)
  
imports: from fontTools.misc import sstruct
  from .None import DefaultTable
  from fontTools.misc.textTools import bytesjoin, safeEval
  from .BitmapGlyphMetrics import BigGlyphMetrics, bigGlyphMetricsFormat, SmallGlyphMetrics, smallGlyphMetricsFormat
  import struct
  import itertools
  from collections import deque
  import logging
label_desc: Use image node_id 2 for calling the table_E_B_L_C_ obj's underlying member method code with example usage: obj.decompile(data, ttFont) without return types