code: def writeOffsetTable(self, output):
          
          all_positions = []
          writtenReferences = list(self.writtenReferences.items())
          writtenReferences.sort(key=lambda x: x[1])
          for obj,order in writtenReferences:
              # Porting note: Elsewhere we deliberately replace empty unicdoe strings
              # with empty binary strings, but the empty unicode string
              # goes into writtenReferences.  This isn't an issue in Py2
              # because u'' and b'' have the same hash; but it is in
              # Py3, where they don't.
              if bytes != str and obj == unicodeEmpty:
                  obj = b''
              position = self.referencePositions.get(obj)
              if position is None:
                  raise InvalidPlistException("Error while writing offsets table. Object not found. %s" % obj)
              output += self.binaryInt(position, self.trailer.offsetSize)
              all_positions.append(position)
          return output
docs: Writes all of the object reference offsets.