async def container_load(self, container_type, params=None, container=None):
raw_container = container_is_raw(container_type, params)<EOL>c_len = await load_uvarint(self.iobj)<EOL>elem_ver = await load_uvarint(self.iobj) if not raw_container else <NUM_LIT:0><EOL>elem_type = x.container_elem_type(container_type, params)<EOL>res = container if container else []<EOL>for i in range(c_len):<EOL><INDENT>try:<EOL><INDENT>self.tracker.push_index(i)<EOL>fvalue = await self._load_field(elem_type,<EOL>params[<NUM_LIT:1>:] if params else None,<EOL>x.eref(res, i) if container else None)<EOL>self.tracker.pop()<EOL><DEDENT>except Exception as e:<EOL><INDENT>raise helpers.ArchiveException(e, tracker=self.tracker) from e<EOL><DEDENT>if not container:<EOL><INDENT>res.append(fvalue)<EOL><DEDENT><DEDENT>return res<EOL>
Loads container of elements from the reader. Supports the container ref.
Returns loaded container.

:param container_type:
:param params:
:param container:
:param field_archiver:
:return: