code: def array_to_bytes(
      self, in_bytes, array, object_queue, parent_addr, descriptor
  ):
      length = len(array)
      in_bytes += self.pack(length, self.get_pack_type())
      offset = len(in_bytes)
      in_bytes += self.pack(offset, self.get_pack_type())
      if length > 0:
          array_length = len(array)
          for i in range(array_length):
              # other units needn't write offset to their parent
              array_parent_addr = parent_addr
              if i > 0:
                  array_parent_addr = -1
              des_type = descriptor.type
              if des_type is FieldDescriptor.TYPE_STRING:
                  des_type = TYPE_STRING_EX
              elif des_type is FieldDescriptor.TYPE_BYTES:
                  des_type = TYPE_BYTES_EX
              object_queue.put(
                  ObjInfo(array[i], array_parent_addr, offset, des_type)
              )
      return in_bytes
  
imports: from google.protobuf.descriptor import FieldDescriptor
  from utils.util import mace_check
  import sys
  import struct
  import tempfile
label_desc: Use image node_id 9 for calling the ProtoConverter obj's underlying member method code with example usage: obj.array_to_bytes(in_bytes, array, object_queue, parent_addr, descriptor) and returns: in_bytes