<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def search_mailbox(self, selected: SelectedMailbox, keys: FrozenSet[SearchKey]) \ -> Tuple[Iterable[Tuple[int, MessageInterface]], SelectedMailbox]: """Get the messages in the current mailbox that meet all of the given search criteria. See Also: `RFC 3501 7.2.5. <https://tools.ietf.org/html/rfc3501#section-7.2.5>`_ Args: selected: The selected mailbox session. keys: Search keys specifying the message criteria. Raises: :class:`~pymap.exceptions.MailboxNotFound` """

        ...