async def container_load(self, container_type, params=None, container=None, obj=None):
elem_type = x.container_elem_type(container_type, params)<EOL>elem_size = await self.get_element_size(elem_type=elem_type, params=params)<EOL>data_left = len(self.iobj.buffer)<EOL>c_len = container_type.SIZE<EOL>if not container_type.FIX_SIZE:<EOL><INDENT>if data_left == <NUM_LIT:0>:<EOL><INDENT>return None<EOL><DEDENT>if data_left % elem_size != <NUM_LIT:0>:<EOL><INDENT>raise helpers.ArchiveException('<STR_LIT>')<EOL><DEDENT>c_len = data_left // elem_size<EOL><DEDENT>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.
Blob array writer as in XMRRPC is serialized without size serialization.

:param container_type:
:param params:
:param container:
:param obj:
:return: