code: def compile(self, ttFont):
      offsetOK = 0
      self.nMetaRecs = len(self.glyphRecords)
      count = 0
      while offsetOK != 1:
          count = count + 1
          if count > 4:
              pdb.set_trace()
          metaData = sstruct.pack(METAHeaderFormat, self)
          stringRecsOffset = len(metaData) + self.nMetaRecs * (
              6 + 2 * (self.metaFlags & 1)
          )
          stringRecSize = 6 + 2 * (self.metaFlags & 1)
          for glyphRec in self.glyphRecords:
              glyphRec.offset = stringRecsOffset
              if (glyphRec.offset > 65535) and (
                  (self.metaFlags & 1) == 0
              ):
                  self.metaFlags = self.metaFlags + 1
                  offsetOK = -1
                  break
              metaData = metaData + glyphRec.compile(self)
              stringRecsOffset = stringRecsOffset + (
                  glyphRec.nMetaEntry * stringRecSize
              )
              # this will be the String Record offset for the next GlyphRecord.
          if offsetOK == -1:
              offsetOK = 0
              continue
  
          # metaData now contains the header and all of the GlyphRecords. Its length should bw
          # the offset to the first StringRecord.
          stringOffset = stringRecsOffset
          for glyphRec in self.glyphRecords:
              assert glyphRec.offset == len(metaData), (
                  "Glyph record offset did not compile correctly! for rec:"
                  + str(glyphRec)
              )
              for stringRec in glyphRec.stringRecs:
                  stringRec.offset = stringOffset
                  if (stringRec.offset > 65535) and (
                      (self.metaFlags & 1) == 0
                  ):
                      self.metaFlags = self.metaFlags + 1
                      offsetOK = -1
                      break
                  metaData = metaData + stringRec.compile(self)
                  stringOffset = stringOffset + stringRec.stringLen
          if offsetOK == -1:
              offsetOK = 0
              continue
  
          if ((self.metaFlags & 1) == 1) and (stringOffset < 65536):
              self.metaFlags = self.metaFlags - 1
              continue
          else:
              offsetOK = 1
  
          # metaData now contains the header and all of the GlyphRecords and all of the String Records.
          # Its length should be the offset to the first string datum.
          for glyphRec in self.glyphRecords:
              for stringRec in glyphRec.stringRecs:
                  assert stringRec.offset == len(metaData), (
                      "String offset did not compile correctly! for string:"
                      + str(stringRec.string)
                  )
                  metaData = metaData + stringRec.string
  
      return metaData
  
imports: from fontTools.misc import sstruct
  from fontTools.misc.textTools import byteord, safeEval
  from .None import DefaultTable
  import pdb
  import struct
label_desc: Use image node_id 2 for calling the table_M_E_T_A_ obj's underlying member method code with example usage: obj.compile(ttFont) and returns: metaData