docs: List<MessageOrOmemoMessage> decryptMamQueryResult(OmemoManager.LoggedInOmemoManager managerGuard,
                                                        MamManager.MamQuery mamQuery) {
          List<MessageOrOmemoMessage> result = new ArrayList<>();
          for (Message message : mamQuery.getMessages()) {
              if (OmemoManager.stanzaContainsOmemoElement(message)) {
                  OmemoElement element =
                          message.getExtension(OmemoElement.NAME_ENCRYPTED, OmemoConstants.OMEMO_NAMESPACE_V_AXOLOTL);
                  // Decrypt OMEMO messages
                  try {
                      OmemoMessage.Received omemoMessage = decryptMessage(managerGuard, message.getFrom().asBareJid(), element);
                      result.add(new MessageOrOmemoMessage(omemoMessage));
                  } catch (NoRawSessionException | CorruptedOmemoKeyException | CryptoFailedException e) {
                      LOGGER.log(Level.WARNING, "decryptMamQueryResult failed to decrypt message from "
                              + message.getFrom() + " due to corrupted session/key: " + e.getMessage());
                      result.add(new MessageOrOmemoMessage(message));
                  }
              } else {
                  // Wrap cleartext messages
                  result.add(new MessageOrOmemoMessage(message));
              }
          }
  
          return result;
      }