code: def fromXML(self, name, attrs, content, ttFont):
      # Read all the attributes. Even though the glyph indices are
      # recalculated, they are still read in case there needs to
      # be an immediate export of the data.
      self.imageFormat = safeEval(attrs["imageFormat"])
      self.firstGlyphIndex = safeEval(attrs["firstGlyphIndex"])
      self.lastGlyphIndex = safeEval(attrs["lastGlyphIndex"])
  
      self.readMetrics(name, attrs, content, ttFont)
  
      self.names = []
      for element in content:
          if not isinstance(element, tuple):
              continue
          name, attrs, content = element
          if name == "glyphLoc":
              self.names.append(attrs["name"])
  
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 6 for calling the EblcIndexSubTable obj's underlying member method code with example usage: obj.fromXML(name, attrs, content, ttFont) without return types