code: async def _load_container(
              self, reader, container_type, params=None, container=None
      ):
          
  
          c_len = (
              container_type.SIZE
              if container_type.FIX_SIZE
              else await load_uvarint(reader)
          )
          if container and get_elem(container) and c_len != len(container):
              raise ValueError("Size mismatch")
  
          elem_type = container_elem_type(container_type, params)
          res = container if container else []
          for i in range(c_len):
              try:
                  self.tracker.push_index(i)
                  fvalue = await self.load_field(
                      reader,
                      elem_type,
                      params[1:] if params else None,
                      eref(res, i) if container else None,
                  )
                  self.tracker.pop()
              except Exception as e:
                  raise helpers.ArchiveException(e, tracker=self.tracker) from e
  
              if not container:
                  res.append(fvalue)
          return res
docs: Loads container of elements from the reader. Supports the container ref.
          Returns loaded container.
  
          :param reader:
          :param container_type:
          :param params:
          :param container:
          :return: