{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.oA2IKSlN/b1/slidge_0.2.2-1_i386.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.oA2IKSlN/b2/slidge_0.2.2-1_i386.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,3 +1,3 @@\n \n- a54fa64ffb0ae76a99bf8a9c94945066 2042952 python optional python-slidge-doc_0.2.2-1_all.deb\n+ 02ca8bbf7732955b0dae3b2f39378f23 2040420 python optional python-slidge-doc_0.2.2-1_all.deb\n 4218e78f64cd10cf616c7245dff62182 130024 python optional python3-slidge_0.2.2-1_all.deb\n"}, {"source1": "python-slidge-doc_0.2.2-1_all.deb", "source2": "python-slidge-doc_0.2.2-1_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2024-11-09 23:44:49.000000 debian-binary\n--rw-r--r-- 0 0 0 4100 2024-11-09 23:44:49.000000 control.tar.xz\n--rw-r--r-- 0 0 0 2038660 2024-11-09 23:44:49.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 4104 2024-11-09 23:44:49.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 2036124 2024-11-09 23:44:49.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./control", "source2": "./control", "unified_diff": "@@ -1,13 +1,13 @@\n Package: python-slidge-doc\n Source: slidge\n Version: 0.2.2-1\n Architecture: all\n Maintainer: Debian XMPP Maintainers \n-Installed-Size: 4540\n+Installed-Size: 4393\n Depends: libjs-sphinxdoc (>= 7.4)\n Section: python\n Priority: optional\n Multi-Arch: foreign\n Homepage: https://slidge.im/\n Description: XMPP puppeteer gateway library in Python (documentation)\n Slidge makes writing gateways to other chat networks (legacy modules)\n"}, {"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -62,17 +62,17 @@\n -rw-r--r-- 0 root (0) root (0) 328 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/e91195719c2c_store_users_avatars_persistently/index.rst.txt\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/\n -rw-r--r-- 0 root (0) root (0) 6513 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/index.rst.txt\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/register/\n -rw-r--r-- 0 root (0) root (0) 1502 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/register/index.rst.txt\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/\n--rw-r--r-- 0 root (0) root (0) 19367 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/index.rst.txt\n+-rw-r--r-- 0 root (0) root (0) 9564 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/index.rst.txt\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/\n--rw-r--r-- 0 root (0) root (0) 23123 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/index.rst.txt\n+-rw-r--r-- 0 root (0) root (0) 13320 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/index.rst.txt\n -rw-r--r-- 0 root (0) root (0) 27204 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/index.rst.txt\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/main/\n -rw-r--r-- 0 root (0) root (0) 882 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/main/index.rst.txt\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/superduper/\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/superduper/gateway/\n -rw-r--r-- 0 root (0) root (0) 15819 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/superduper/gateway/index.rst.txt\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/superduper/group/\n@@ -160,40 +160,40 @@\n -rw-r--r-- 0 root (0) root (0) 18612 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/e91195719c2c_store_users_avatars_persistently/index.html\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/\n -rw-r--r-- 0 root (0) root (0) 64921 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/index.html\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/register/\n -rw-r--r-- 0 root (0) root (0) 28341 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/register/index.html\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/\n--rw-r--r-- 0 root (0) root (0) 104405 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/index.html\n+-rw-r--r-- 0 root (0) root (0) 51508 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/index.html\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/\n--rw-r--r-- 0 root (0) root (0) 132874 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/index.html\n--rw-r--r-- 0 root (0) root (0) 154652 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/index.html\n+-rw-r--r-- 0 root (0) root (0) 80058 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/index.html\n+-rw-r--r-- 0 root (0) root (0) 154378 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/index.html\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/main/\n -rw-r--r-- 0 root (0) root (0) 22430 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/main/index.html\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/gateway/\n -rw-r--r-- 0 root (0) root (0) 91815 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/gateway/index.html\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/\n--rw-r--r-- 0 root (0) root (0) 128322 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/index.html\n+-rw-r--r-- 0 root (0) root (0) 127861 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/index.html\n -rw-r--r-- 0 root (0) root (0) 20200 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/index.html\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/\n--rw-r--r-- 0 root (0) root (0) 102168 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/index.html\n+-rw-r--r-- 0 root (0) root (0) 101848 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/index.html\n -rw-r--r-- 0 root (0) root (0) 24640 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/contributing.html\n -rw-r--r-- 0 root (0) root (0) 27557 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/design.html\n -rw-r--r-- 0 root (0) root (0) 19020 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/howto.html\n -rw-r--r-- 0 root (0) root (0) 21548 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/index.html\n -rw-r--r-- 0 root (0) root (0) 35710 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/dev/tutorial.html\n--rw-r--r-- 0 root (0) root (0) 87343 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/genindex.html\n+-rw-r--r-- 0 root (0) root (0) 80575 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/genindex.html\n -rw-r--r-- 0 root (0) root (0) 23527 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/glossary.html\n--rw-r--r-- 0 root (0) root (0) 110748 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/index.html\n--rw-r--r-- 0 root (0) root (0) 5578 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/objects.inv\n+-rw-r--r-- 0 root (0) root (0) 99682 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/index.html\n+-rw-r--r-- 0 root (0) root (0) 5288 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/objects.inv\n -rw-r--r-- 0 root (0) root (0) 27013 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/py-modindex.html\n -rw-r--r-- 0 root (0) root (0) 17903 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/search.html\n--rw-r--r-- 0 root (0) root (0) 106335 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/searchindex.js\n+-rw-r--r-- 0 root (0) root (0) 98755 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/searchindex.js\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/user/\n -rw-r--r-- 0 root (0) root (0) 22996 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/user/commands.html\n -rw-r--r-- 0 root (0) root (0) 20840 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/user/contacts.html\n -rw-r--r-- 0 root (0) root (0) 23045 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/user/index.html\n -rw-r--r-- 0 root (0) root (0) 20170 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/user/low_profile.html\n -rw-r--r-- 0 root (0) root (0) 19043 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/user/note.html\n -rw-r--r-- 0 root (0) root (0) 23236 2024-11-09 23:44:49.000000 ./usr/share/doc/python-slidge-doc/html/user/register.html\n"}, {"source1": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/index.rst.txt", "source2": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/index.rst.txt", "unified_diff": "@@ -220,284 +220,14 @@\n It the legacy network doesn't like that you fetch too many profiles on startup,\n it's also possible to fetch it here, which will be called when XMPP clients\n of the user request the vcard, if it hasn't been fetched before\n :return:\n \n \n \n- .. py:property:: avatar_id\n- :type: Optional[slidge.util.types.AvatarIdType]\n-\n-\n- The unique ID of this entity's avatar.\n-\n-\n-\n- .. py:property:: avatar\n- :type: Optional[slidge.util.types.AvatarIdType]\n-\n-\n- This property can be used to set the avatar, but\n- :py:meth:`~.AvatarMixin.set_avatar()` should be preferred because you can\n- provide a unique ID for the avatar for efficient caching.\n- Setting this is OKish in case the avatar type is a URL or a local path\n- that can act as a legacy ID.\n-\n- Python's ``property`` is abused here to maintain backwards\n- compatibility, but when getting it you actually get the avatar legacy\n- ID.\n-\n-\n-\n- .. py:method:: set_avatar(a, avatar_unique_id = None, delete = False, blocking=False, cancel=True)\n- :async:\n-\n-\n- Set an avatar for this entity\n-\n- :param a: The avatar, in one of the types slidge supports\n- :param avatar_unique_id: A globally unique ID for the avatar on the\n- legacy network\n- :param delete: If the avatar is provided as a Path, whether to delete\n- it once used or not.\n- :param blocking: Internal use by slidge for tests, do not use!\n- :param cancel: Internal use by slidge, do not use!\n-\n-\n-\n- .. py:method:: invite_to(muc, reason = None, password = None, **send_kwargs)\n-\n- Send an invitation to join a group (:xep:`0249`) from this :term:`XMPP Entity`.\n-\n- :param muc: the muc the user is invited to\n- :param reason: a text explaining why the user should join this muc\n- :param password: maybe this will make sense later? not sure\n- :param send_kwargs: additional kwargs to be passed to _send()\n- (internal use by slidge)\n-\n-\n-\n- .. py:method:: active(**kwargs)\n-\n- Send an \"active\" chat state (:xep:`0085`) from this\n- :term:`XMPP Entity`.\n-\n-\n-\n- .. py:method:: composing(**kwargs)\n-\n- Send a \"composing\" (ie \"typing notification\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n-\n- .. py:method:: paused(**kwargs)\n-\n- Send a \"paused\" (ie \"typing paused notification\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n-\n- .. py:method:: inactive(**kwargs)\n-\n- Send an \"inactive\" (ie \"contact has not interacted with the chat session\n- interface for an intermediate period of time\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n-\n- .. py:method:: gone(**kwargs)\n-\n- Send a \"gone\" (ie \"contact has not interacted with the chat session interface,\n- system, or device for a relatively long period of time\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n-\n- .. py:method:: send_file(file_path = None, legacy_msg_id = None, *, async_data_stream = None, data_stream = None, data = None, file_url = None, file_name = None, content_type = None, reply_to = None, when = None, caption = None, legacy_file_id = None, thread = None, **kwargs)\n- :async:\n-\n-\n- Send a single file from this :term:`XMPP Entity`.\n-\n- :param file_path: Path to the attachment\n- :param async_data_stream: Alternatively (and ideally) an AsyncIterator yielding bytes\n- :param data_stream: Alternatively, a stream of bytes (such as a File object)\n- :param data: Alternatively, a bytes object\n- :param file_url: Alternatively, a URL\n- :param file_name: How the file should be named.\n- :param content_type: MIME type, inferred from filename if not given\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param when: when the file was sent, for a \"delay\" tag (:xep:`0203`)\n- :param caption: an optional text that is linked to the file\n- :param legacy_file_id: A unique identifier for the file on the legacy network.\n- Plugins should try their best to provide it, to avoid duplicates.\n- :param thread:\n-\n-\n-\n- .. py:method:: send_text(body, legacy_msg_id = None, *, when = None, reply_to = None, thread = None, hints = None, carbon=False, archive_only=False, correction=False, correction_event_id = None, link_previews = None, **send_kwargs)\n-\n- Send a text message from this :term:`XMPP Entity`.\n-\n- :param body: Content of the message\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only used if called on a :class:`LegacyContact`)\n- Set this to ``True`` if this is actually a message sent **to** the\n- :class:`LegacyContact` by the :term:`User`.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param correction: whether this message is a correction or not\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n-\n-\n-\n- .. py:method:: correct(legacy_msg_id, new_text, *, when = None, reply_to = None, thread = None, hints = None, carbon=False, archive_only=False, correction_event_id = None, link_previews = None, **send_kwargs)\n-\n- Modify a message that was previously sent by this :term:`XMPP Entity`.\n-\n- Uses last message correction (:xep:`0308`)\n-\n- :param new_text: New content of the message\n- :param legacy_msg_id: The legacy message ID of the message to correct\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only in 1:1) Reflect a message sent to this ``Contact`` by the user.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n-\n-\n-\n- .. py:method:: react(legacy_msg_id, emojis = (), thread = None, **kwargs)\n-\n- Send a reaction (:xep:`0444`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message which the reaction refers to.\n- :param emojis: An iterable of emojis used as reactions\n- :param thread:\n-\n-\n-\n- .. py:method:: retract(legacy_msg_id, thread = None, **kwargs)\n-\n- Send a message retraction (:XEP:`0424`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: Legacy ID of the message to delete\n- :param thread:\n-\n-\n-\n- .. py:method:: ack(legacy_msg_id, **kwargs)\n-\n- Send an \"acknowledged\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n-\n- .. py:method:: received(legacy_msg_id, **kwargs)\n-\n- Send a \"received\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n- If called on a :class:`LegacyContact`, also send a delivery receipt\n- marker (:xep:`0184`).\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n-\n- .. py:method:: displayed(legacy_msg_id, **kwargs)\n-\n- Send a \"displayed\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n-\n- .. py:method:: online(status = None, last_seen = None)\n-\n- Send an \"online\" presence from this contact to the user.\n-\n- :param status: Arbitrary text, details of the status, eg: \"Listening to Britney Spears\"\n- :param last_seen: For :xep:`0319`\n-\n-\n-\n- .. py:method:: away(status = None, last_seen = None)\n-\n- Send an \"away\" presence from this contact to the user.\n-\n- This is a global status, as opposed to :meth:`.LegacyContact.inactive`\n- which concerns a specific conversation, ie a specific \"chat window\"\n-\n- :param status: Arbitrary text, details of the status, eg: \"Gone to fight capitalism\"\n- :param last_seen: For :xep:`0319`\n-\n-\n-\n- .. py:method:: extended_away(status = None, last_seen = None)\n-\n- Send an \"extended away\" presence from this contact to the user.\n-\n- This is a global status, as opposed to :meth:`.LegacyContact.inactive`\n- which concerns a specific conversation, ie a specific \"chat window\"\n-\n- :param status: Arbitrary text, details of the status, eg: \"Gone to fight capitalism\"\n- :param last_seen: For :xep:`0319`\n-\n-\n-\n- .. py:method:: busy(status = None, last_seen = None)\n-\n- Send a \"busy\" (ie, \"dnd\") presence from this contact to the user,\n-\n- :param status: eg: \"Trying to make sense of XEP-0100\"\n- :param last_seen: For :xep:`0319`\n-\n-\n-\n- .. py:method:: offline(status = None, last_seen = None)\n-\n- Send an \"offline\" presence from this contact to the user.\n-\n- :param status: eg: \"Trying to make sense of XEP-0100\"\n- :param last_seen: For :xep:`0319`\n-\n-\n-\n- .. py:method:: available_emojis(legacy_msg_id = None)\n- :async:\n-\n-\n- Override this to restrict the subset of reactions this recipient\n- can handle.\n-\n- :return: A set of emojis or None if any emoji is allowed\n-\n-\n-\n .. py:class:: LegacyRoster(session)\n \n \n \n Virtual roster of a gateway user, that allows to represent all\n of their contacts as singleton instances (if used properly and not too bugged).\n \n"}, {"source1": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/index.rst.txt", "source2": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/index.rst.txt", "unified_diff": "@@ -153,233 +153,14 @@\n \n .. py:method:: ban(reason = None)\n \n Call this when the participant is banned from the room\n \n \n \n- .. py:method:: online(status = None, last_seen = None)\n-\n- Send an \"online\" presence from this contact to the user.\n-\n- :param status: Arbitrary text, details of the status, eg: \"Listening to Britney Spears\"\n- :param last_seen: For :xep:`0319`\n-\n-\n-\n- .. py:method:: away(status = None, last_seen = None)\n-\n- Send an \"away\" presence from this contact to the user.\n-\n- This is a global status, as opposed to :meth:`.LegacyContact.inactive`\n- which concerns a specific conversation, ie a specific \"chat window\"\n-\n- :param status: Arbitrary text, details of the status, eg: \"Gone to fight capitalism\"\n- :param last_seen: For :xep:`0319`\n-\n-\n-\n- .. py:method:: extended_away(status = None, last_seen = None)\n-\n- Send an \"extended away\" presence from this contact to the user.\n-\n- This is a global status, as opposed to :meth:`.LegacyContact.inactive`\n- which concerns a specific conversation, ie a specific \"chat window\"\n-\n- :param status: Arbitrary text, details of the status, eg: \"Gone to fight capitalism\"\n- :param last_seen: For :xep:`0319`\n-\n-\n-\n- .. py:method:: busy(status = None, last_seen = None)\n-\n- Send a \"busy\" (ie, \"dnd\") presence from this contact to the user,\n-\n- :param status: eg: \"Trying to make sense of XEP-0100\"\n- :param last_seen: For :xep:`0319`\n-\n-\n-\n- .. py:method:: offline(status = None, last_seen = None)\n-\n- Send an \"offline\" presence from this contact to the user.\n-\n- :param status: eg: \"Trying to make sense of XEP-0100\"\n- :param last_seen: For :xep:`0319`\n-\n-\n-\n- .. py:method:: invite_to(muc, reason = None, password = None, **send_kwargs)\n-\n- Send an invitation to join a group (:xep:`0249`) from this :term:`XMPP Entity`.\n-\n- :param muc: the muc the user is invited to\n- :param reason: a text explaining why the user should join this muc\n- :param password: maybe this will make sense later? not sure\n- :param send_kwargs: additional kwargs to be passed to _send()\n- (internal use by slidge)\n-\n-\n-\n- .. py:method:: active(**kwargs)\n-\n- Send an \"active\" chat state (:xep:`0085`) from this\n- :term:`XMPP Entity`.\n-\n-\n-\n- .. py:method:: composing(**kwargs)\n-\n- Send a \"composing\" (ie \"typing notification\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n-\n- .. py:method:: paused(**kwargs)\n-\n- Send a \"paused\" (ie \"typing paused notification\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n-\n- .. py:method:: inactive(**kwargs)\n-\n- Send an \"inactive\" (ie \"contact has not interacted with the chat session\n- interface for an intermediate period of time\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n-\n- .. py:method:: gone(**kwargs)\n-\n- Send a \"gone\" (ie \"contact has not interacted with the chat session interface,\n- system, or device for a relatively long period of time\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n-\n- .. py:method:: ack(legacy_msg_id, **kwargs)\n-\n- Send an \"acknowledged\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n-\n- .. py:method:: received(legacy_msg_id, **kwargs)\n-\n- Send a \"received\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n- If called on a :class:`LegacyContact`, also send a delivery receipt\n- marker (:xep:`0184`).\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n-\n- .. py:method:: displayed(legacy_msg_id, **kwargs)\n-\n- Send a \"displayed\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n-\n- .. py:method:: send_file(file_path = None, legacy_msg_id = None, *, async_data_stream = None, data_stream = None, data = None, file_url = None, file_name = None, content_type = None, reply_to = None, when = None, caption = None, legacy_file_id = None, thread = None, **kwargs)\n- :async:\n-\n-\n- Send a single file from this :term:`XMPP Entity`.\n-\n- :param file_path: Path to the attachment\n- :param async_data_stream: Alternatively (and ideally) an AsyncIterator yielding bytes\n- :param data_stream: Alternatively, a stream of bytes (such as a File object)\n- :param data: Alternatively, a bytes object\n- :param file_url: Alternatively, a URL\n- :param file_name: How the file should be named.\n- :param content_type: MIME type, inferred from filename if not given\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param when: when the file was sent, for a \"delay\" tag (:xep:`0203`)\n- :param caption: an optional text that is linked to the file\n- :param legacy_file_id: A unique identifier for the file on the legacy network.\n- Plugins should try their best to provide it, to avoid duplicates.\n- :param thread:\n-\n-\n-\n- .. py:method:: send_text(body, legacy_msg_id = None, *, when = None, reply_to = None, thread = None, hints = None, carbon=False, archive_only=False, correction=False, correction_event_id = None, link_previews = None, **send_kwargs)\n-\n- Send a text message from this :term:`XMPP Entity`.\n-\n- :param body: Content of the message\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only used if called on a :class:`LegacyContact`)\n- Set this to ``True`` if this is actually a message sent **to** the\n- :class:`LegacyContact` by the :term:`User`.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param correction: whether this message is a correction or not\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n-\n-\n-\n- .. py:method:: correct(legacy_msg_id, new_text, *, when = None, reply_to = None, thread = None, hints = None, carbon=False, archive_only=False, correction_event_id = None, link_previews = None, **send_kwargs)\n-\n- Modify a message that was previously sent by this :term:`XMPP Entity`.\n-\n- Uses last message correction (:xep:`0308`)\n-\n- :param new_text: New content of the message\n- :param legacy_msg_id: The legacy message ID of the message to correct\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only in 1:1) Reflect a message sent to this ``Contact`` by the user.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n-\n-\n-\n- .. py:method:: react(legacy_msg_id, emojis = (), thread = None, **kwargs)\n-\n- Send a reaction (:xep:`0444`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message which the reaction refers to.\n- :param emojis: An iterable of emojis used as reactions\n- :param thread:\n-\n-\n-\n- .. py:method:: retract(legacy_msg_id, thread = None, **kwargs)\n-\n- Send a message retraction (:XEP:`0424`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: Legacy ID of the message to delete\n- :param thread:\n-\n-\n-\n .. py:class:: LegacyMUC(session, legacy_id, jid)\n \n \n \n A room, a.k.a. a Multi-User Chat.\n \n MUC instances are obtained by calling :py:meth:`slidge.group.bookmarks.LegacyBookmarks`\n@@ -699,58 +480,7 @@\n The legacy module is responsible for updating :attr:`.subject` of this\n instance.\n \n :param subject: The new subject for this room.\n \n \n \n- .. py:property:: avatar_id\n- :type: Optional[slidge.util.types.AvatarIdType]\n-\n-\n- The unique ID of this entity's avatar.\n-\n-\n-\n- .. py:property:: avatar\n- :type: Optional[slidge.util.types.AvatarIdType]\n-\n-\n- This property can be used to set the avatar, but\n- :py:meth:`~.AvatarMixin.set_avatar()` should be preferred because you can\n- provide a unique ID for the avatar for efficient caching.\n- Setting this is OKish in case the avatar type is a URL or a local path\n- that can act as a legacy ID.\n-\n- Python's ``property`` is abused here to maintain backwards\n- compatibility, but when getting it you actually get the avatar legacy\n- ID.\n-\n-\n-\n- .. py:method:: set_avatar(a, avatar_unique_id = None, delete = False, blocking=False, cancel=True)\n- :async:\n-\n-\n- Set an avatar for this entity\n-\n- :param a: The avatar, in one of the types slidge supports\n- :param avatar_unique_id: A globally unique ID for the avatar on the\n- legacy network\n- :param delete: If the avatar is provided as a Path, whether to delete\n- it once used or not.\n- :param blocking: Internal use by slidge for tests, do not use!\n- :param cancel: Internal use by slidge, do not use!\n-\n-\n-\n- .. py:method:: available_emojis(legacy_msg_id = None)\n- :async:\n-\n-\n- Override this to restrict the subset of reactions this recipient\n- can handle.\n-\n- :return: A set of emojis or None if any emoji is allowed\n-\n-\n-\n"}, {"source1": "./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/index.html", "source2": "./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/index.html", "unified_diff": "@@ -479,364 +479,14 @@\n async fetch_vcard()\u00b6\n

It the legacy network doesn\u2019t like that you fetch too many profiles on startup,\n it\u2019s also possible to fetch it here, which will be called when XMPP clients\n of the user request the vcard, if it hasn\u2019t been fetched before\n :return:

\n
\n \n-
\n-
\n-property avatar_id: slidge.util.types.AvatarIdType | None\u00b6
\n-

The unique ID of this entity\u2019s avatar.

\n-
\n-
Return type:
\n-

Optional[slidge.util.types.AvatarIdType]

\n-
\n-
\n-
\n-\n-
\n-
\n-property avatar: slidge.util.types.AvatarIdType | None\u00b6
\n-

This property can be used to set the avatar, but\n-set_avatar() should be preferred because you can\n-provide a unique ID for the avatar for efficient caching.\n-Setting this is OKish in case the avatar type is a URL or a local path\n-that can act as a legacy ID.

\n-

Python\u2019s property is abused here to maintain backwards\n-compatibility, but when getting it you actually get the avatar legacy\n-ID.

\n-
\n-
Return type:
\n-

Optional[slidge.util.types.AvatarIdType]

\n-
\n-
\n-
\n-\n-
\n-
\n-async set_avatar(a, avatar_unique_id=None, delete=False, blocking=False, cancel=True)\u00b6
\n-

Set an avatar for this entity

\n-
\n-
Parameters:
\n-
    \n-
  • a (Optional[slidge.util.types.AvatarType]) \u2013 The avatar, in one of the types slidge supports

  • \n-
  • avatar_unique_id (Optional[slidge.util.types.LegacyFileIdType]) \u2013 A globally unique ID for the avatar on the\n-legacy network

  • \n-
  • delete (bool) \u2013 If the avatar is provided as a Path, whether to delete\n-it once used or not.

  • \n-
  • blocking \u2013 Internal use by slidge for tests, do not use!

  • \n-
  • cancel \u2013 Internal use by slidge, do not use!

  • \n-
\n-
\n-
Return type:
\n-

None

\n-
\n-
\n-
\n-\n-
\n-
\n-invite_to(muc, reason=None, password=None, **send_kwargs)\u00b6
\n-

Send an invitation to join a group (XEP-0249) from this XMPP Entity.

\n-
\n-
Parameters:
\n-
    \n-
  • muc (slidge.group.LegacyMUC) \u2013 the muc the user is invited to

  • \n-
  • reason (Optional[str]) \u2013 a text explaining why the user should join this muc

  • \n-
  • password (Optional[str]) \u2013 maybe this will make sense later? not sure

  • \n-
  • send_kwargs \u2013 additional kwargs to be passed to _send()\n-(internal use by slidge)

  • \n-
\n-
\n-
\n-
\n-\n-
\n-
\n-active(**kwargs)\u00b6
\n-

Send an \u201cactive\u201d chat state (XEP-0085) from this\n-XMPP Entity.

\n-
\n-\n-
\n-
\n-composing(**kwargs)\u00b6
\n-

Send a \u201ccomposing\u201d (ie \u201ctyping notification\u201d) chat state (XEP-0085)\n-from this XMPP Entity.

\n-
\n-\n-
\n-
\n-paused(**kwargs)\u00b6
\n-

Send a \u201cpaused\u201d (ie \u201ctyping paused notification\u201d) chat state\n-(XEP-0085) from this XMPP Entity.

\n-
\n-\n-
\n-
\n-inactive(**kwargs)\u00b6
\n-

Send an \u201cinactive\u201d (ie \u201ccontact has not interacted with the chat session\n-interface for an intermediate period of time\u201d) chat state (XEP-0085)\n-from this XMPP Entity.

\n-
\n-\n-
\n-
\n-gone(**kwargs)\u00b6
\n-

Send a \u201cgone\u201d (ie \u201ccontact has not interacted with the chat session interface,\n-system, or device for a relatively long period of time\u201d) chat state\n-(XEP-0085) from this XMPP Entity.

\n-
\n-\n-
\n-
\n-async send_file(file_path=None, legacy_msg_id=None, *, async_data_stream=None, data_stream=None, data=None, file_url=None, file_name=None, content_type=None, reply_to=None, when=None, caption=None, legacy_file_id=None, thread=None, **kwargs)\u00b6
\n-

Send a single file from this XMPP Entity.

\n-
\n-
Parameters:
\n-
    \n-
  • file_path (Optional[Union[pathlib.Path, str]]) \u2013 Path to the attachment

  • \n-
  • async_data_stream (Optional[AsyncIterator[bytes]]) \u2013 Alternatively (and ideally) an AsyncIterator yielding bytes

  • \n-
  • data_stream (Optional[IO[bytes]]) \u2013 Alternatively, a stream of bytes (such as a File object)

  • \n-
  • data (Optional[bytes]) \u2013 Alternatively, a bytes object

  • \n-
  • file_url (Optional[str]) \u2013 Alternatively, a URL

  • \n-
  • file_name (Optional[str]) \u2013 How the file should be named.

  • \n-
  • content_type (Optional[str]) \u2013 MIME type, inferred from filename if not given

  • \n-
  • legacy_msg_id (Optional[slidge.util.types.LegacyMessageType]) \u2013 If you want to be able to transport read markers from the gateway\n-user to the legacy network, specify this

  • \n-
  • reply_to (Optional[slidge.util.types.MessageReference]) \u2013 Quote another message (XEP-0461)

  • \n-
  • when (Optional[datetime.datetime]) \u2013 when the file was sent, for a \u201cdelay\u201d tag (XEP-0203)

  • \n-
  • caption (Optional[str]) \u2013 an optional text that is linked to the file

  • \n-
  • legacy_file_id (Optional[Union[str, int]]) \u2013 A unique identifier for the file on the legacy network.\n-Plugins should try their best to provide it, to avoid duplicates.

  • \n-
  • thread (Optional[slidge.util.types.LegacyThreadType])

  • \n-
\n-
\n-
Return type:
\n-

tuple[Optional[str], list[slixmpp.Message]]

\n-
\n-
\n-
\n-\n-
\n-
\n-send_text(body, legacy_msg_id=None, *, when=None, reply_to=None, thread=None, hints=None, carbon=False, archive_only=False, correction=False, correction_event_id=None, link_previews=None, **send_kwargs)\u00b6
\n-

Send a text message from this XMPP Entity.

\n-
\n-
Parameters:
\n-
    \n-
  • body (str) \u2013 Content of the message

  • \n-
  • legacy_msg_id (Optional[slidge.util.types.LegacyMessageType]) \u2013 If you want to be able to transport read markers from the gateway\n-user to the legacy network, specify this

  • \n-
  • when (Optional[datetime.datetime]) \u2013 when the message was sent, for a \u201cdelay\u201d tag (XEP-0203)

  • \n-
  • reply_to (Optional[slidge.util.types.MessageReference]) \u2013 Quote another message (XEP-0461)

  • \n-
  • hints (Optional[Iterable[slidge.util.types.ProcessingHint]])

  • \n-
  • thread (Optional[slidge.util.types.LegacyThreadType])

  • \n-
  • carbon \u2013 (only used if called on a LegacyContact)\n-Set this to True if this is actually a message sent to the\n-LegacyContact by the User.\n-Use this to synchronize outgoing history for legacy official apps.

  • \n-
  • correction \u2013 whether this message is a correction or not

  • \n-
  • correction_event_id (Optional[slidge.util.types.LegacyMessageType]) \u2013 in the case where an ID is associated with the legacy\n-\u2018correction event\u2019, specify it here to use it on the XMPP side. If not specified,\n-a random ID will be used.

  • \n-
  • link_previews (Optional[list[slidge.util.types.LinkPreview]]) \u2013 A little of sender (or server, or gateway)-generated\n-previews of URLs linked in the body.

  • \n-
  • archive_only \u2013 (only in groups) Do not send this message to user,\n-but store it in the archive. Meant to be used during MUC.backfill()

  • \n-
\n-
\n-
\n-
\n-\n-
\n-
\n-correct(legacy_msg_id, new_text, *, when=None, reply_to=None, thread=None, hints=None, carbon=False, archive_only=False, correction_event_id=None, link_previews=None, **send_kwargs)\u00b6
\n-

Modify a message that was previously sent by this XMPP Entity.

\n-

Uses last message correction (XEP-0308)

\n-
\n-
Parameters:
\n-
    \n-
  • new_text (str) \u2013 New content of the message

  • \n-
  • legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 The legacy message ID of the message to correct

  • \n-
  • when (Optional[datetime.datetime]) \u2013 when the message was sent, for a \u201cdelay\u201d tag (XEP-0203)

  • \n-
  • reply_to (Optional[slidge.util.types.MessageReference]) \u2013 Quote another message (XEP-0461)

  • \n-
  • hints (Optional[Iterable[slidge.util.types.ProcessingHint]])

  • \n-
  • thread (Optional[slidge.util.types.LegacyThreadType])

  • \n-
  • carbon \u2013 (only in 1:1) Reflect a message sent to this Contact by the user.\n-Use this to synchronize outgoing history for legacy official apps.

  • \n-
  • archive_only \u2013 (only in groups) Do not send this message to user,\n-but store it in the archive. Meant to be used during MUC.backfill()

  • \n-
  • correction_event_id (Optional[slidge.util.types.LegacyMessageType]) \u2013 in the case where an ID is associated with the legacy\n-\u2018correction event\u2019, specify it here to use it on the XMPP side. If not specified,\n-a random ID will be used.

  • \n-
  • link_previews (Optional[list[slidge.util.types.LinkPreview]]) \u2013 A little of sender (or server, or gateway)-generated\n-previews of URLs linked in the body.

  • \n-
\n-
\n-
\n-
\n-\n-
\n-
\n-react(legacy_msg_id, emojis=(), thread=None, **kwargs)\u00b6
\n-

Send a reaction (XEP-0444) from this XMPP Entity.

\n-
\n-
Parameters:
\n-
    \n-
  • legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 The message which the reaction refers to.

  • \n-
  • emojis (Iterable[str]) \u2013 An iterable of emojis used as reactions

  • \n-
  • thread (Optional[slidge.util.types.LegacyThreadType])

  • \n-
\n-
\n-
\n-
\n-\n-
\n-
\n-retract(legacy_msg_id, thread=None, **kwargs)\u00b6
\n-

Send a message retraction (XEP-0424) from this XMPP Entity.

\n-
\n-
Parameters:
\n-
    \n-
  • legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 Legacy ID of the message to delete

  • \n-
  • thread (Optional[slidge.util.types.LegacyThreadType])

  • \n-
\n-
\n-
\n-
\n-\n-
\n-
\n-ack(legacy_msg_id, **kwargs)\u00b6
\n-

Send an \u201cacknowledged\u201d message marker (XEP-0333) from this XMPP Entity.

\n-
\n-
Parameters:
\n-

legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 The message this marker refers to

\n-
\n-
\n-
\n-\n-
\n-
\n-received(legacy_msg_id, **kwargs)\u00b6
\n-

Send a \u201creceived\u201d message marker (XEP-0333) from this XMPP Entity.\n-If called on a LegacyContact, also send a delivery receipt\n-marker (XEP-0184).

\n-
\n-
Parameters:
\n-

legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 The message this marker refers to

\n-
\n-
\n-
\n-\n-
\n-
\n-displayed(legacy_msg_id, **kwargs)\u00b6
\n-

Send a \u201cdisplayed\u201d message marker (XEP-0333) from this XMPP Entity.

\n-
\n-
Parameters:
\n-

legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 The message this marker refers to

\n-
\n-
\n-
\n-\n-
\n-
\n-online(status=None, last_seen=None)\u00b6
\n-

Send an \u201conline\u201d presence from this contact to the user.

\n-
\n-
Parameters:
\n-
    \n-
  • status (Optional[str]) \u2013 Arbitrary text, details of the status, eg: \u201cListening to Britney Spears\u201d

  • \n-
  • last_seen (Optional[datetime.datetime]) \u2013 For XEP-0319

  • \n-
\n-
\n-
\n-
\n-\n-
\n-
\n-away(status=None, last_seen=None)\u00b6
\n-

Send an \u201caway\u201d presence from this contact to the user.

\n-

This is a global status, as opposed to LegacyContact.inactive()\n-which concerns a specific conversation, ie a specific \u201cchat window\u201d

\n-
\n-
Parameters:
\n-
    \n-
  • status (Optional[str]) \u2013 Arbitrary text, details of the status, eg: \u201cGone to fight capitalism\u201d

  • \n-
  • last_seen (Optional[datetime.datetime]) \u2013 For XEP-0319

  • \n-
\n-
\n-
\n-
\n-\n-
\n-
\n-extended_away(status=None, last_seen=None)\u00b6
\n-

Send an \u201cextended away\u201d presence from this contact to the user.

\n-

This is a global status, as opposed to LegacyContact.inactive()\n-which concerns a specific conversation, ie a specific \u201cchat window\u201d

\n-
\n-
Parameters:
\n-
    \n-
  • status (Optional[str]) \u2013 Arbitrary text, details of the status, eg: \u201cGone to fight capitalism\u201d

  • \n-
  • last_seen (Optional[datetime.datetime]) \u2013 For XEP-0319

  • \n-
\n-
\n-
\n-
\n-\n-
\n-
\n-busy(status=None, last_seen=None)\u00b6
\n-

Send a \u201cbusy\u201d (ie, \u201cdnd\u201d) presence from this contact to the user,

\n-
\n-
Parameters:
\n-
    \n-
  • status (Optional[str]) \u2013 eg: \u201cTrying to make sense of XEP-0100\u201d

  • \n-
  • last_seen (Optional[datetime.datetime]) \u2013 For XEP-0319

  • \n-
\n-
\n-
\n-
\n-\n-
\n-
\n-offline(status=None, last_seen=None)\u00b6
\n-

Send an \u201coffline\u201d presence from this contact to the user.

\n-
\n-
Parameters:
\n-
    \n-
  • status (Optional[str]) \u2013 eg: \u201cTrying to make sense of XEP-0100\u201d

  • \n-
  • last_seen (Optional[datetime.datetime]) \u2013 For XEP-0319

  • \n-
\n-
\n-
\n-
\n-\n-
\n-
\n-async available_emojis(legacy_msg_id=None)\u00b6
\n-

Override this to restrict the subset of reactions this recipient\n-can handle.

\n-
\n-
Returns:
\n-

A set of emojis or None if any emoji is allowed

\n-
\n-
Parameters:
\n-

legacy_msg_id (Optional[slidge.util.types.LegacyMessageType])

\n-
\n-
Return type:
\n-

Optional[set[str]]

\n-
\n-
\n-
\n-\n \n \n
\n
\n class slidge.contact.LegacyRoster(session)\u00b6
\n

Virtual roster of a gateway user, that allows to represent all\n of their contacts as singleton instances (if used properly and not too bugged).

\n@@ -1011,37 +661,14 @@\n
  • LegacyContact.reject_friend_request()
  • \n
  • LegacyContact.on_friend_request()
  • \n
  • LegacyContact.on_friend_delete()
  • \n
  • LegacyContact.on_friend_accept()
  • \n
  • LegacyContact.unsubscribe()
  • \n
  • LegacyContact.update_info()
  • \n
  • LegacyContact.fetch_vcard()
  • \n-
  • LegacyContact.avatar_id
  • \n-
  • LegacyContact.avatar
  • \n-
  • LegacyContact.set_avatar()
  • \n-
  • LegacyContact.invite_to()
  • \n-
  • LegacyContact.active()
  • \n-
  • LegacyContact.composing()
  • \n-
  • LegacyContact.paused()
  • \n-
  • LegacyContact.inactive()
  • \n-
  • LegacyContact.gone()
  • \n-
  • LegacyContact.send_file()
  • \n-
  • LegacyContact.send_text()
  • \n-
  • LegacyContact.correct()
  • \n-
  • LegacyContact.react()
  • \n-
  • LegacyContact.retract()
  • \n-
  • LegacyContact.ack()
  • \n-
  • LegacyContact.received()
  • \n-
  • LegacyContact.displayed()
  • \n-
  • LegacyContact.online()
  • \n-
  • LegacyContact.away()
  • \n-
  • LegacyContact.extended_away()
  • \n-
  • LegacyContact.busy()
  • \n-
  • LegacyContact.offline()
  • \n-
  • LegacyContact.available_emojis()
  • \n \n \n
  • LegacyRoster
      \n
    • LegacyRoster.by_legacy_id()
    • \n
    • LegacyRoster.legacy_id_to_jid_username()
    • \n
    • LegacyRoster.jid_username_to_legacy_id()
    • \n
    • LegacyRoster.fill()
    • \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -158,250 +158,14 @@\n slidge.core.mixins.avatar.AvatarMixin.set_avatar() or attempt to\n modify the .avatar property.\n a\bas\bsy\byn\bnc\bc fetch_vcard()_\b\u00b6\n It the legacy network doesn\u2019t like that you fetch too many profiles\n on startup, it\u2019s also possible to fetch it here, which will be\n called when XMPP clients of the user request the vcard, if it\n hasn\u2019t been fetched before :return:\n- p\bpr\bro\bop\bpe\ber\brt\bty\by avatar_id:\b: s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.A\bAv\bva\bat\bta\bar\brI\bId\bdT\bTy\byp\bpe\be |\b| _\bN\bN_\bo\bo_\bn\bn_\be\be_\b\u00b6\n- The unique ID of this entity\u2019s avatar.\n- Return type:\n- Optional[slidge.util.types.AvatarIdType]\n- p\bpr\bro\bop\bpe\ber\brt\bty\by avatar:\b: s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.A\bAv\bva\bat\bta\bar\brI\bId\bdT\bTy\byp\bpe\be |\b| _\bN\bN_\bo\bo_\bn\bn_\be\be_\b\u00b6\n- This property can be used to set the avatar, but set_avatar()\n- should be preferred because you can provide a unique ID for the\n- avatar for efficient caching. Setting this is OKish in case the\n- avatar type is a URL or a local path that can act as a legacy ID.\n- Python\u2019s property is abused here to maintain backwards\n- compatibility, but when getting it you actually get the avatar\n- legacy ID.\n- Return type:\n- Optional[slidge.util.types.AvatarIdType]\n- a\bas\bsy\byn\bnc\bc set_avatar(a\ba, a\bav\bva\bat\bta\bar\br_\b_u\bun\bni\biq\bqu\bue\be_\b_i\bid\bd=\b=N\bNo\bon\bne\be, d\bde\bel\ble\bet\bte\be=\b=F\bFa\bal\bls\bse\be,\n- b\bbl\blo\boc\bck\bki\bin\bng\bg=\b=F\bFa\bal\bls\bse\be, c\bca\ban\bnc\bce\bel\bl=\b=T\bTr\bru\bue\be)_\b\u00b6\n- Set an avatar for this entity\n- Parameters:\n- * a\ba (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.A\bAv\bva\bat\bta\bar\brT\bTy\byp\bpe\be]\b]) \u2013 The\n- avatar, in one of the types slidge supports\n- * a\bav\bva\bat\bta\bar\br_\b_u\bun\bni\biq\bqu\bue\be_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byF\bFi\bil\ble\beI\bId\bdT\bTy\byp\bpe\be]\b]) \u2013 A globally\n- unique ID for the avatar on the legacy network\n- * d\bde\bel\ble\bet\bte\be (_\bb\bb_\bo\bo_\bo\bo_\bl\bl) \u2013 If the avatar is provided as a Path,\n- whether to delete it once used or not.\n- * b\bbl\blo\boc\bck\bki\bin\bng\bg \u2013 Internal use by slidge for tests, do not\n- use!\n- * c\bca\ban\bnc\bce\bel\bl \u2013 Internal use by slidge, do not use!\n- Return type:\n- None\n- invite_to(m\bmu\buc\bc, r\bre\bea\bas\bso\bon\bn=\b=N\bNo\bon\bne\be, p\bpa\bas\bss\bsw\bwo\bor\brd\bd=\b=N\bNo\bon\bne\be, *\b**\b*s\bse\ben\bnd\bd_\b_k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send an invitation to join a group (_\bX_\bE_\bP_\b-_\b0_\b2_\b4_\b9) from this _\bX_\bM_\bP_\bP\n- _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- * m\bmu\buc\bc (_\bs\bs_\bl\bl_\bi\bi_\bd\bd_\bg\bg_\be\be_\b.\b._\bg\bg_\br\br_\bo\bo_\bu\bu_\bp\bp_\b.\b._\bL\bL_\be\be_\bg\bg_\ba\ba_\bc\bc_\by\by_\bM\bM_\bU\bU_\bC\bC) \u2013 the muc the user is\n- invited to\n- * r\bre\bea\bas\bso\bon\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 a text explaining why the user\n- should join this muc\n- * p\bpa\bas\bss\bsw\bwo\bor\brd\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 maybe this will make sense\n- later? not sure\n- * s\bse\ben\bnd\bd_\b_k\bkw\bwa\bar\brg\bgs\bs \u2013 additional kwargs to be passed to _send()\n- (internal use by slidge)\n- active(*\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send an \u201cactive\u201d chat state (_\bX_\bE_\bP_\b-_\b0_\b0_\b8_\b5) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- composing(*\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a \u201ccomposing\u201d (ie \u201ctyping notification\u201d) chat state (_\bX_\bE_\bP_\b-_\b0_\b0_\b8_\b5)\n- from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- paused(*\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a \u201cpaused\u201d (ie \u201ctyping paused notification\u201d) chat state (_\bX_\bE_\bP_\b-\n- _\b0_\b0_\b8_\b5) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- inactive(*\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send an \u201cinactive\u201d (ie \u201ccontact has not interacted with the chat\n- session interface for an intermediate period of time\u201d) chat state\n- (_\bX_\bE_\bP_\b-_\b0_\b0_\b8_\b5) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- gone(*\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a \u201cgone\u201d (ie \u201ccontact has not interacted with the chat session\n- interface, system, or device for a relatively long period of time\u201d)\n- chat state (_\bX_\bE_\bP_\b-_\b0_\b0_\b8_\b5) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- a\bas\bsy\byn\bnc\bc send_file(f\bfi\bil\ble\be_\b_p\bpa\bat\bth\bh=\b=N\bNo\bon\bne\be, l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd=\b=N\bNo\bon\bne\be, *\b*,\n- a\bas\bsy\byn\bnc\bc_\b_d\bda\bat\bta\ba_\b_s\bst\btr\bre\bea\bam\bm=\b=N\bNo\bon\bne\be, d\bda\bat\bta\ba_\b_s\bst\btr\bre\bea\bam\bm=\b=N\bNo\bon\bne\be, d\bda\bat\bta\ba=\b=N\bNo\bon\bne\be, f\bfi\bil\ble\be_\b_u\bur\brl\bl=\b=N\bNo\bon\bne\be,\n- f\bfi\bil\ble\be_\b_n\bna\bam\bme\be=\b=N\bNo\bon\bne\be, c\bco\bon\bnt\bte\ben\bnt\bt_\b_t\bty\byp\bpe\be=\b=N\bNo\bon\bne\be, r\bre\bep\bpl\bly\by_\b_t\bto\bo=\b=N\bNo\bon\bne\be, w\bwh\bhe\ben\bn=\b=N\bNo\bon\bne\be,\n- c\bca\bap\bpt\bti\bio\bon\bn=\b=N\bNo\bon\bne\be, l\ble\beg\bga\bac\bcy\by_\b_f\bfi\bil\ble\be_\b_i\bid\bd=\b=N\bNo\bon\bne\be, t\bth\bhr\bre\bea\bad\bd=\b=N\bNo\bon\bne\be, *\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a single file from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- * f\bfi\bil\ble\be_\b_p\bpa\bat\bth\bh (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[U\bUn\bni\bio\bon\bn[\b[_\bp\bp_\ba\ba_\bt\bt_\bh\bh_\bl\bl_\bi\bi_\bb\bb_\b.\b._\bP\bP_\ba\ba_\bt\bt_\bh\bh,\b, _\bs\bs_\bt\bt_\br\br]\b]]\b]) \u2013 Path\n- to the attachment\n- * a\bas\bsy\byn\bnc\bc_\b_d\bda\bat\bta\ba_\b_s\bst\btr\bre\bea\bam\bm (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[A\bAs\bsy\byn\bnc\bcI\bIt\bte\ber\bra\bat\bto\bor\br[\b[_\bb\bb_\by\by_\bt\bt_\be\be_\bs\bs]\b]]\b]) \u2013\n- Alternatively (and ideally) an AsyncIterator yielding\n- bytes\n- * d\bda\bat\bta\ba_\b_s\bst\btr\bre\bea\bam\bm (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[I\bIO\bO[\b[_\bb\bb_\by\by_\bt\bt_\be\be_\bs\bs]\b]]\b]) \u2013 Alternatively, a\n- stream of bytes (such as a File object)\n- * d\bda\bat\bta\ba (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bb\bb_\by\by_\bt\bt_\be\be_\bs\bs]\b]) \u2013 Alternatively, a bytes object\n- * f\bfi\bil\ble\be_\b_u\bur\brl\bl (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 Alternatively, a URL\n- * f\bfi\bil\ble\be_\b_n\bna\bam\bme\be (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 How the file should be\n- named.\n- * c\bco\bon\bnt\bte\ben\bnt\bt_\b_t\bty\byp\bpe\be (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 MIME type, inferred from\n- filename if not given\n- * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be]\b]) \u2013 If you want to\n- be able to transport read markers from the gateway user\n- to the legacy network, specify this\n- * r\bre\bep\bpl\bly\by_\b_t\bto\bo (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.M\bMe\bes\bss\bsa\bag\bge\beR\bRe\bef\bfe\ber\bre\ben\bnc\bce\be]\b])\n- \u2013 Quote another message (_\bX_\bE_\bP_\b-_\b0_\b4_\b6_\b1)\n- * w\bwh\bhe\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 when the file was\n- sent, for a \u201cdelay\u201d tag (_\bX_\bE_\bP_\b-_\b0_\b2_\b0_\b3)\n- * c\bca\bap\bpt\bti\bio\bon\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 an optional text that is\n- linked to the file\n- * l\ble\beg\bga\bac\bcy\by_\b_f\bfi\bil\ble\be_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[U\bUn\bni\bio\bon\bn[\b[_\bs\bs_\bt\bt_\br\br,\b, _\bi\bi_\bn\bn_\bt\bt]\b]]\b]) \u2013 A unique\n- identifier for the file on the legacy network. Plugins\n- should try their best to provide it, to avoid\n- duplicates.\n- * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n- Return type:\n- _\bt_\bu_\bp_\bl_\be[Optional[_\bs_\bt_\br], _\bl_\bi_\bs_\bt[slixmpp.Message]]\n- send_text(b\bbo\bod\bdy\by, l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd=\b=N\bNo\bon\bne\be, *\b*, w\bwh\bhe\ben\bn=\b=N\bNo\bon\bne\be, r\bre\bep\bpl\bly\by_\b_t\bto\bo=\b=N\bNo\bon\bne\be,\n- t\bth\bhr\bre\bea\bad\bd=\b=N\bNo\bon\bne\be, h\bhi\bin\bnt\bts\bs=\b=N\bNo\bon\bne\be, c\bca\bar\brb\bbo\bon\bn=\b=F\bFa\bal\bls\bse\be, a\bar\brc\bch\bhi\biv\bve\be_\b_o\bon\bnl\bly\by=\b=F\bFa\bal\bls\bse\be,\n- c\bco\bor\brr\bre\bec\bct\bti\bio\bon\bn=\b=F\bFa\bal\bls\bse\be, c\bco\bor\brr\bre\bec\bct\bti\bio\bon\bn_\b_e\bev\bve\ben\bnt\bt_\b_i\bid\bd=\b=N\bNo\bon\bne\be, l\bli\bin\bnk\bk_\b_p\bpr\bre\bev\bvi\bie\bew\bws\bs=\b=N\bNo\bon\bne\be,\n- *\b**\b*s\bse\ben\bnd\bd_\b_k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a text message from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- * b\bbo\bod\bdy\by (_\bs\bs_\bt\bt_\br\br) \u2013 Content of the message\n- * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be]\b]) \u2013 If you want to\n- be able to transport read markers from the gateway user\n- to the legacy network, specify this\n- * w\bwh\bhe\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 when the message\n- was sent, for a \u201cdelay\u201d tag (_\bX_\bE_\bP_\b-_\b0_\b2_\b0_\b3)\n- * r\bre\bep\bpl\bly\by_\b_t\bto\bo (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.M\bMe\bes\bss\bsa\bag\bge\beR\bRe\bef\bfe\ber\bre\ben\bnc\bce\be]\b])\n- \u2013 Quote another message (_\bX_\bE_\bP_\b-_\b0_\b4_\b6_\b1)\n- * h\bhi\bin\bnt\bts\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[I\bIt\bte\ber\bra\bab\bbl\ble\be\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.P\bPr\bro\boc\bce\bes\bss\bsi\bin\bng\bgH\bHi\bin\bnt\bt]\b]]\b])\n- * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n- * c\bca\bar\brb\bbo\bon\bn \u2013 (only used if called on a _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt) Set\n- this to True if this is actually a message sent t\bto\bo the\n- _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt by the _\bU_\bs_\be_\br. Use this to synchronize\n- outgoing history for legacy official apps.\n- * c\bco\bor\brr\bre\bec\bct\bti\bio\bon\bn \u2013 whether this message is a correction or\n- not\n- * c\bco\bor\brr\bre\bec\bct\bti\bio\bon\bn_\b_e\bev\bve\ben\bnt\bt_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be]\b]) \u2013 in the case\n- where an ID is associated with the legacy \u2018correction\n- event\u2019, specify it here to use it on the XMPP side. If\n- not specified, a random ID will be used.\n- * l\bli\bin\bnk\bk_\b_p\bpr\bre\bev\bvi\bie\bew\bws\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bl\bl_\bi\bi_\bs\bs_\bt\bt\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLi\bin\bnk\bkP\bPr\bre\bev\bvi\bie\bew\bw]\b]]\b]) \u2013 A little of sender\n- (or server, or gateway)-generated previews of URLs\n- linked in the body.\n- * a\bar\brc\bch\bhi\biv\bve\be_\b_o\bon\bnl\bly\by \u2013 (only in groups) Do not send this\n- message to user, but store it in the archive. Meant to\n- be used during MUC.backfill()\n- correct(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, n\bne\bew\bw_\b_t\bte\bex\bxt\bt, *\b*, w\bwh\bhe\ben\bn=\b=N\bNo\bon\bne\be, r\bre\bep\bpl\bly\by_\b_t\bto\bo=\b=N\bNo\bon\bne\be,\n- t\bth\bhr\bre\bea\bad\bd=\b=N\bNo\bon\bne\be, h\bhi\bin\bnt\bts\bs=\b=N\bNo\bon\bne\be, c\bca\bar\brb\bbo\bon\bn=\b=F\bFa\bal\bls\bse\be, a\bar\brc\bch\bhi\biv\bve\be_\b_o\bon\bnl\bly\by=\b=F\bFa\bal\bls\bse\be,\n- c\bco\bor\brr\bre\bec\bct\bti\bio\bon\bn_\b_e\bev\bve\ben\bnt\bt_\b_i\bid\bd=\b=N\bNo\bon\bne\be, l\bli\bin\bnk\bk_\b_p\bpr\bre\bev\bvi\bie\bew\bws\bs=\b=N\bNo\bon\bne\be, *\b**\b*s\bse\ben\bnd\bd_\b_k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Modify a message that was previously sent by this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- Uses last message correction (_\bX_\bE_\bP_\b-_\b0_\b3_\b0_\b8)\n- Parameters:\n- * n\bne\bew\bw_\b_t\bte\bex\bxt\bt (_\bs\bs_\bt\bt_\br\br) \u2013 New content of the message\n- * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013\n- The legacy message ID of the message to correct\n- * w\bwh\bhe\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 when the message\n- was sent, for a \u201cdelay\u201d tag (_\bX_\bE_\bP_\b-_\b0_\b2_\b0_\b3)\n- * r\bre\bep\bpl\bly\by_\b_t\bto\bo (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.M\bMe\bes\bss\bsa\bag\bge\beR\bRe\bef\bfe\ber\bre\ben\bnc\bce\be]\b])\n- \u2013 Quote another message (_\bX_\bE_\bP_\b-_\b0_\b4_\b6_\b1)\n- * h\bhi\bin\bnt\bts\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[I\bIt\bte\ber\bra\bab\bbl\ble\be\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.P\bPr\bro\boc\bce\bes\bss\bsi\bin\bng\bgH\bHi\bin\bnt\bt]\b]]\b])\n- * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n- * c\bca\bar\brb\bbo\bon\bn \u2013 (only in 1:1) Reflect a message sent to this\n- Contact by the user. Use this to synchronize outgoing\n- history for legacy official apps.\n- * a\bar\brc\bch\bhi\biv\bve\be_\b_o\bon\bnl\bly\by \u2013 (only in groups) Do not send this\n- message to user, but store it in the archive. Meant to\n- be used during MUC.backfill()\n- * c\bco\bor\brr\bre\bec\bct\bti\bio\bon\bn_\b_e\bev\bve\ben\bnt\bt_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be]\b]) \u2013 in the case\n- where an ID is associated with the legacy \u2018correction\n- event\u2019, specify it here to use it on the XMPP side. If\n- not specified, a random ID will be used.\n- * l\bli\bin\bnk\bk_\b_p\bpr\bre\bev\bvi\bie\bew\bws\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bl\bl_\bi\bi_\bs\bs_\bt\bt\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLi\bin\bnk\bkP\bPr\bre\bev\bvi\bie\bew\bw]\b]]\b]) \u2013 A little of sender\n- (or server, or gateway)-generated previews of URLs\n- linked in the body.\n- react(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, e\bem\bmo\boj\bji\bis\bs=\b=(\b()\b), t\bth\bhr\bre\bea\bad\bd=\b=N\bNo\bon\bne\be, *\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a reaction (_\bX_\bE_\bP_\b-_\b0_\b4_\b4_\b4) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013\n- The message which the reaction refers to.\n- * e\bem\bmo\boj\bji\bis\bs (I\bIt\bte\ber\bra\bab\bbl\ble\be[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 An iterable of emojis used as\n- reactions\n- * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n- retract(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, t\bth\bhr\bre\bea\bad\bd=\b=N\bNo\bon\bne\be, *\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a message retraction (_\bX_\bE_\bP_\b-_\b0_\b4_\b2_\b4) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013\n- Legacy ID of the message to delete\n- * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n- ack(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, *\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send an \u201cacknowledged\u201d message marker (_\bX_\bE_\bP_\b-_\b0_\b3_\b3_\b3) from this _\bX_\bM_\bP_\bP\n- _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013 The\n- message this marker refers to\n- received(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, *\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a \u201creceived\u201d message marker (_\bX_\bE_\bP_\b-_\b0_\b3_\b3_\b3) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- If called on a _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt, also send a delivery receipt marker\n- (_\bX_\bE_\bP_\b-_\b0_\b1_\b8_\b4).\n- Parameters:\n- l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013 The\n- message this marker refers to\n- displayed(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, *\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a \u201cdisplayed\u201d message marker (_\bX_\bE_\bP_\b-_\b0_\b3_\b3_\b3) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013 The\n- message this marker refers to\n- online(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n- Send an \u201conline\u201d presence from this contact to the user.\n- Parameters:\n- * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 Arbitrary text, details of the\n- status, eg: \u201cListening to Britney Spears\u201d\n- * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n- away(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n- Send an \u201caway\u201d presence from this contact to the user.\n- This is a global status, as opposed to _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n- which concerns a specific conversation, ie a specific \u201cchat window\u201d\n- Parameters:\n- * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 Arbitrary text, details of the\n- status, eg: \u201cGone to fight capitalism\u201d\n- * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n- extended_away(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n- Send an \u201cextended away\u201d presence from this contact to the user.\n- This is a global status, as opposed to _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n- which concerns a specific conversation, ie a specific \u201cchat window\u201d\n- Parameters:\n- * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 Arbitrary text, details of the\n- status, eg: \u201cGone to fight capitalism\u201d\n- * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n- busy(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n- Send a \u201cbusy\u201d (ie, \u201cdnd\u201d) presence from this contact to the user,\n- Parameters:\n- * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 eg: \u201cTrying to make sense of\n- XEP-0100\u201d\n- * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n- offline(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n- Send an \u201coffline\u201d presence from this contact to the user.\n- Parameters:\n- * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 eg: \u201cTrying to make sense of\n- XEP-0100\u201d\n- * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n- a\bas\bsy\byn\bnc\bc available_emojis(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd=\b=N\bNo\bon\bne\be)_\b\u00b6\n- Override this to restrict the subset of reactions this recipient\n- can handle.\n- Returns:\n- A set of emojis or None if any emoji is allowed\n- Parameters:\n- l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be]\b])\n- Return type:\n- Optional[_\bs_\be_\bt[_\bs_\bt_\br]]\n c\bcl\bla\bas\bss\bs slidge.contact.LegacyRoster(s\bse\bes\bss\bsi\bio\bon\bn)_\b\u00b6\n Virtual roster of a gateway user, that allows to represent all of their\n contacts as singleton instances (if used properly and not too bugged).\n Every _\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn instance will have its own _\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br instance\n accessible via the BaseSession.contacts attribute.\n Typically, you will mostly use the _\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br_\b._\bb_\by_\b__\bl_\be_\bg_\ba_\bc_\by_\b__\bi_\bd_\b(_\b) function\n to retrieve a contact instance.\n@@ -485,35 +249,12 @@\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\br_\be_\bj_\be_\bc_\bt_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bo_\bn_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bo_\bn_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\bd_\be_\bl_\be_\bt_\be_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bo_\bn_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\ba_\bc_\bc_\be_\bp_\bt_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bu_\bn_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bb_\be_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bu_\bp_\bd_\ba_\bt_\be_\b__\bi_\bn_\bf_\bo_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bf_\be_\bt_\bc_\bh_\b__\bv_\bc_\ba_\br_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\ba_\bv_\ba_\bt_\ba_\br_\b__\bi_\bd\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\ba_\bv_\ba_\bt_\ba_\br\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bs_\be_\bt_\b__\ba_\bv_\ba_\bt_\ba_\br_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bi_\bn_\bv_\bi_\bt_\be_\b__\bt_\bo_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bc_\bo_\bm_\bp_\bo_\bs_\bi_\bn_\bg_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bp_\ba_\bu_\bs_\be_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bg_\bo_\bn_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bs_\be_\bn_\bd_\b__\bf_\bi_\bl_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bs_\be_\bn_\bd_\b__\bt_\be_\bx_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bc_\bo_\br_\br_\be_\bc_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\br_\be_\ba_\bc_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\br_\be_\bt_\br_\ba_\bc_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\ba_\bc_\bk_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\br_\be_\bc_\be_\bi_\bv_\be_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bd_\bi_\bs_\bp_\bl_\ba_\by_\be_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bo_\bn_\bl_\bi_\bn_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\ba_\bw_\ba_\by_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\be_\bx_\bt_\be_\bn_\bd_\be_\bd_\b__\ba_\bw_\ba_\by_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bb_\bu_\bs_\by_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bo_\bf_\bf_\bl_\bi_\bn_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\ba_\bv_\ba_\bi_\bl_\ba_\bb_\bl_\be_\b__\be_\bm_\bo_\bj_\bi_\bs_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br\n # _\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br_\b._\bb_\by_\b__\bl_\be_\bg_\ba_\bc_\by_\b__\bi_\bd_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br_\b._\bl_\be_\bg_\ba_\bc_\by_\b__\bi_\bd_\b__\bt_\bo_\b__\bj_\bi_\bd_\b__\bu_\bs_\be_\br_\bn_\ba_\bm_\be_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br_\b._\bj_\bi_\bd_\b__\bu_\bs_\be_\br_\bn_\ba_\bm_\be_\b__\bt_\bo_\b__\bl_\be_\bg_\ba_\bc_\by_\b__\bi_\bd_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br_\b._\bf_\bi_\bl_\bl_\b(_\b)\n"}]}, {"source1": "./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/index.html", "source2": "./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/index.html", "unified_diff": "@@ -463,295 +463,14 @@\n
      \n
      Parameters:
      \n

      reason (str | None)

      \n
      \n
      \n
  • \n \n-
    \n-
    \n-online(status=None, last_seen=None)\u00b6
    \n-

    Send an \u201conline\u201d presence from this contact to the user.

    \n-
    \n-
    Parameters:
    \n-
      \n-
    • status (Optional[str]) \u2013 Arbitrary text, details of the status, eg: \u201cListening to Britney Spears\u201d

    • \n-
    • last_seen (Optional[datetime.datetime]) \u2013 For XEP-0319

    • \n-
    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-away(status=None, last_seen=None)\u00b6
    \n-

    Send an \u201caway\u201d presence from this contact to the user.

    \n-

    This is a global status, as opposed to LegacyContact.inactive()\n-which concerns a specific conversation, ie a specific \u201cchat window\u201d

    \n-
    \n-
    Parameters:
    \n-
      \n-
    • status (Optional[str]) \u2013 Arbitrary text, details of the status, eg: \u201cGone to fight capitalism\u201d

    • \n-
    • last_seen (Optional[datetime.datetime]) \u2013 For XEP-0319

    • \n-
    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-extended_away(status=None, last_seen=None)\u00b6
    \n-

    Send an \u201cextended away\u201d presence from this contact to the user.

    \n-

    This is a global status, as opposed to LegacyContact.inactive()\n-which concerns a specific conversation, ie a specific \u201cchat window\u201d

    \n-
    \n-
    Parameters:
    \n-
      \n-
    • status (Optional[str]) \u2013 Arbitrary text, details of the status, eg: \u201cGone to fight capitalism\u201d

    • \n-
    • last_seen (Optional[datetime.datetime]) \u2013 For XEP-0319

    • \n-
    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-busy(status=None, last_seen=None)\u00b6
    \n-

    Send a \u201cbusy\u201d (ie, \u201cdnd\u201d) presence from this contact to the user,

    \n-
    \n-
    Parameters:
    \n-
      \n-
    • status (Optional[str]) \u2013 eg: \u201cTrying to make sense of XEP-0100\u201d

    • \n-
    • last_seen (Optional[datetime.datetime]) \u2013 For XEP-0319

    • \n-
    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-offline(status=None, last_seen=None)\u00b6
    \n-

    Send an \u201coffline\u201d presence from this contact to the user.

    \n-
    \n-
    Parameters:
    \n-
      \n-
    • status (Optional[str]) \u2013 eg: \u201cTrying to make sense of XEP-0100\u201d

    • \n-
    • last_seen (Optional[datetime.datetime]) \u2013 For XEP-0319

    • \n-
    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-invite_to(muc, reason=None, password=None, **send_kwargs)\u00b6
    \n-

    Send an invitation to join a group (XEP-0249) from this XMPP Entity.

    \n-
    \n-
    Parameters:
    \n-
      \n-
    • muc (slidge.group.LegacyMUC) \u2013 the muc the user is invited to

    • \n-
    • reason (Optional[str]) \u2013 a text explaining why the user should join this muc

    • \n-
    • password (Optional[str]) \u2013 maybe this will make sense later? not sure

    • \n-
    • send_kwargs \u2013 additional kwargs to be passed to _send()\n-(internal use by slidge)

    • \n-
    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-active(**kwargs)\u00b6
    \n-

    Send an \u201cactive\u201d chat state (XEP-0085) from this\n-XMPP Entity.

    \n-
    \n-\n-
    \n-
    \n-composing(**kwargs)\u00b6
    \n-

    Send a \u201ccomposing\u201d (ie \u201ctyping notification\u201d) chat state (XEP-0085)\n-from this XMPP Entity.

    \n-
    \n-\n-
    \n-
    \n-paused(**kwargs)\u00b6
    \n-

    Send a \u201cpaused\u201d (ie \u201ctyping paused notification\u201d) chat state\n-(XEP-0085) from this XMPP Entity.

    \n-
    \n-\n-
    \n-
    \n-inactive(**kwargs)\u00b6
    \n-

    Send an \u201cinactive\u201d (ie \u201ccontact has not interacted with the chat session\n-interface for an intermediate period of time\u201d) chat state (XEP-0085)\n-from this XMPP Entity.

    \n-
    \n-\n-
    \n-
    \n-gone(**kwargs)\u00b6
    \n-

    Send a \u201cgone\u201d (ie \u201ccontact has not interacted with the chat session interface,\n-system, or device for a relatively long period of time\u201d) chat state\n-(XEP-0085) from this XMPP Entity.

    \n-
    \n-\n-
    \n-
    \n-ack(legacy_msg_id, **kwargs)\u00b6
    \n-

    Send an \u201cacknowledged\u201d message marker (XEP-0333) from this XMPP Entity.

    \n-
    \n-
    Parameters:
    \n-

    legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 The message this marker refers to

    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-received(legacy_msg_id, **kwargs)\u00b6
    \n-

    Send a \u201creceived\u201d message marker (XEP-0333) from this XMPP Entity.\n-If called on a LegacyContact, also send a delivery receipt\n-marker (XEP-0184).

    \n-
    \n-
    Parameters:
    \n-

    legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 The message this marker refers to

    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-displayed(legacy_msg_id, **kwargs)\u00b6
    \n-

    Send a \u201cdisplayed\u201d message marker (XEP-0333) from this XMPP Entity.

    \n-
    \n-
    Parameters:
    \n-

    legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 The message this marker refers to

    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-async send_file(file_path=None, legacy_msg_id=None, *, async_data_stream=None, data_stream=None, data=None, file_url=None, file_name=None, content_type=None, reply_to=None, when=None, caption=None, legacy_file_id=None, thread=None, **kwargs)\u00b6
    \n-

    Send a single file from this XMPP Entity.

    \n-
    \n-
    Parameters:
    \n-
      \n-
    • file_path (Optional[Union[pathlib.Path, str]]) \u2013 Path to the attachment

    • \n-
    • async_data_stream (Optional[AsyncIterator[bytes]]) \u2013 Alternatively (and ideally) an AsyncIterator yielding bytes

    • \n-
    • data_stream (Optional[IO[bytes]]) \u2013 Alternatively, a stream of bytes (such as a File object)

    • \n-
    • data (Optional[bytes]) \u2013 Alternatively, a bytes object

    • \n-
    • file_url (Optional[str]) \u2013 Alternatively, a URL

    • \n-
    • file_name (Optional[str]) \u2013 How the file should be named.

    • \n-
    • content_type (Optional[str]) \u2013 MIME type, inferred from filename if not given

    • \n-
    • legacy_msg_id (Optional[slidge.util.types.LegacyMessageType]) \u2013 If you want to be able to transport read markers from the gateway\n-user to the legacy network, specify this

    • \n-
    • reply_to (Optional[slidge.util.types.MessageReference]) \u2013 Quote another message (XEP-0461)

    • \n-
    • when (Optional[datetime.datetime]) \u2013 when the file was sent, for a \u201cdelay\u201d tag (XEP-0203)

    • \n-
    • caption (Optional[str]) \u2013 an optional text that is linked to the file

    • \n-
    • legacy_file_id (Optional[Union[str, int]]) \u2013 A unique identifier for the file on the legacy network.\n-Plugins should try their best to provide it, to avoid duplicates.

    • \n-
    • thread (Optional[slidge.util.types.LegacyThreadType])

    • \n-
    \n-
    \n-
    Return type:
    \n-

    tuple[Optional[str], list[slixmpp.Message]]

    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-send_text(body, legacy_msg_id=None, *, when=None, reply_to=None, thread=None, hints=None, carbon=False, archive_only=False, correction=False, correction_event_id=None, link_previews=None, **send_kwargs)\u00b6
    \n-

    Send a text message from this XMPP Entity.

    \n-
    \n-
    Parameters:
    \n-
      \n-
    • body (str) \u2013 Content of the message

    • \n-
    • legacy_msg_id (Optional[slidge.util.types.LegacyMessageType]) \u2013 If you want to be able to transport read markers from the gateway\n-user to the legacy network, specify this

    • \n-
    • when (Optional[datetime.datetime]) \u2013 when the message was sent, for a \u201cdelay\u201d tag (XEP-0203)

    • \n-
    • reply_to (Optional[slidge.util.types.MessageReference]) \u2013 Quote another message (XEP-0461)

    • \n-
    • hints (Optional[Iterable[slidge.util.types.ProcessingHint]])

    • \n-
    • thread (Optional[slidge.util.types.LegacyThreadType])

    • \n-
    • carbon \u2013 (only used if called on a LegacyContact)\n-Set this to True if this is actually a message sent to the\n-LegacyContact by the User.\n-Use this to synchronize outgoing history for legacy official apps.

    • \n-
    • correction \u2013 whether this message is a correction or not

    • \n-
    • correction_event_id (Optional[slidge.util.types.LegacyMessageType]) \u2013 in the case where an ID is associated with the legacy\n-\u2018correction event\u2019, specify it here to use it on the XMPP side. If not specified,\n-a random ID will be used.

    • \n-
    • link_previews (Optional[list[slidge.util.types.LinkPreview]]) \u2013 A little of sender (or server, or gateway)-generated\n-previews of URLs linked in the body.

    • \n-
    • archive_only \u2013 (only in groups) Do not send this message to user,\n-but store it in the archive. Meant to be used during MUC.backfill()

    • \n-
    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-correct(legacy_msg_id, new_text, *, when=None, reply_to=None, thread=None, hints=None, carbon=False, archive_only=False, correction_event_id=None, link_previews=None, **send_kwargs)\u00b6
    \n-

    Modify a message that was previously sent by this XMPP Entity.

    \n-

    Uses last message correction (XEP-0308)

    \n-
    \n-
    Parameters:
    \n-
      \n-
    • new_text (str) \u2013 New content of the message

    • \n-
    • legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 The legacy message ID of the message to correct

    • \n-
    • when (Optional[datetime.datetime]) \u2013 when the message was sent, for a \u201cdelay\u201d tag (XEP-0203)

    • \n-
    • reply_to (Optional[slidge.util.types.MessageReference]) \u2013 Quote another message (XEP-0461)

    • \n-
    • hints (Optional[Iterable[slidge.util.types.ProcessingHint]])

    • \n-
    • thread (Optional[slidge.util.types.LegacyThreadType])

    • \n-
    • carbon \u2013 (only in 1:1) Reflect a message sent to this Contact by the user.\n-Use this to synchronize outgoing history for legacy official apps.

    • \n-
    • archive_only \u2013 (only in groups) Do not send this message to user,\n-but store it in the archive. Meant to be used during MUC.backfill()

    • \n-
    • correction_event_id (Optional[slidge.util.types.LegacyMessageType]) \u2013 in the case where an ID is associated with the legacy\n-\u2018correction event\u2019, specify it here to use it on the XMPP side. If not specified,\n-a random ID will be used.

    • \n-
    • link_previews (Optional[list[slidge.util.types.LinkPreview]]) \u2013 A little of sender (or server, or gateway)-generated\n-previews of URLs linked in the body.

    • \n-
    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-react(legacy_msg_id, emojis=(), thread=None, **kwargs)\u00b6
    \n-

    Send a reaction (XEP-0444) from this XMPP Entity.

    \n-
    \n-
    Parameters:
    \n-
      \n-
    • legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 The message which the reaction refers to.

    • \n-
    • emojis (Iterable[str]) \u2013 An iterable of emojis used as reactions

    • \n-
    • thread (Optional[slidge.util.types.LegacyThreadType])

    • \n-
    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-retract(legacy_msg_id, thread=None, **kwargs)\u00b6
    \n-

    Send a message retraction (XEP-0424) from this XMPP Entity.

    \n-
    \n-
    Parameters:
    \n-
      \n-
    • legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 Legacy ID of the message to delete

    • \n-
    • thread (Optional[slidge.util.types.LegacyThreadType])

    • \n-
    \n-
    \n-
    \n-
    \n-\n \n \n
    \n
    \n class slidge.group.LegacyMUC(session, legacy_id, jid)\u00b6
    \n

    A room, a.k.a. a Multi-User Chat.

    \n

    MUC instances are obtained by calling slidge.group.bookmarks.LegacyBookmarks()\n@@ -1040,15 +759,15 @@\n the XMPP client, there is no guarantee that this is valid or\n correct.

    \n \n
    \n
    Returns:
    \n

    A unique avatar identifier, which will trigger\n slidge.group.room.LegacyMUC.set_avatar(). Alternatively, None, if\n-LegacyMUC.set_avatar() is meant to be awaited somewhere else.

    \n+LegacyMUC.set_avatar() is meant to be awaited somewhere else.

    \n
    \n
    Return type:
    \n

    Optional[Union[int, str]]

    \n
    \n
    \n \n \n@@ -1176,83 +895,14 @@\n \n
    Return type:
    \n

    None

    \n
    \n \n \n \n-
    \n-
    \n-property avatar_id: slidge.util.types.AvatarIdType | None\u00b6
    \n-

    The unique ID of this entity\u2019s avatar.

    \n-
    \n-
    Return type:
    \n-

    Optional[slidge.util.types.AvatarIdType]

    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-property avatar: slidge.util.types.AvatarIdType | None\u00b6
    \n-

    This property can be used to set the avatar, but\n-set_avatar() should be preferred because you can\n-provide a unique ID for the avatar for efficient caching.\n-Setting this is OKish in case the avatar type is a URL or a local path\n-that can act as a legacy ID.

    \n-

    Python\u2019s property is abused here to maintain backwards\n-compatibility, but when getting it you actually get the avatar legacy\n-ID.

    \n-
    \n-
    Return type:
    \n-

    Optional[slidge.util.types.AvatarIdType]

    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-async set_avatar(a, avatar_unique_id=None, delete=False, blocking=False, cancel=True)\u00b6
    \n-

    Set an avatar for this entity

    \n-
    \n-
    Parameters:
    \n-
      \n-
    • a (Optional[slidge.util.types.AvatarType]) \u2013 The avatar, in one of the types slidge supports

    • \n-
    • avatar_unique_id (Optional[slidge.util.types.LegacyFileIdType]) \u2013 A globally unique ID for the avatar on the\n-legacy network

    • \n-
    • delete (bool) \u2013 If the avatar is provided as a Path, whether to delete\n-it once used or not.

    • \n-
    • blocking \u2013 Internal use by slidge for tests, do not use!

    • \n-
    • cancel \u2013 Internal use by slidge, do not use!

    • \n-
    \n-
    \n-
    Return type:
    \n-

    None

    \n-
    \n-
    \n-
    \n-\n-
    \n-
    \n-async available_emojis(legacy_msg_id=None)\u00b6
    \n-

    Override this to restrict the subset of reactions this recipient\n-can handle.

    \n-
    \n-
    Returns:
    \n-

    A set of emojis or None if any emoji is allowed

    \n-
    \n-
    Parameters:
    \n-

    legacy_msg_id (Optional[slidge.util.types.LegacyMessageType])

    \n-
    \n-
    Return type:
    \n-

    Optional[set[str]]

    \n-
    \n-
    \n-
    \n-\n \n \n \n \n \n \n \n@@ -1326,33 +976,14 @@\n \n \n
  • LegacyParticipant\n
  • \n
  • LegacyMUC\n
  • \n \n \n \n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -128,211 +128,14 @@\n Call this when the participant is kicked from the room\n Parameters:\n r\bre\bea\bas\bso\bon\bn (_\bs\bs_\bt\bt_\br\br |\b| N\bNo\bon\bne\be)\n ban(r\bre\bea\bas\bso\bon\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n Call this when the participant is banned from the room\n Parameters:\n r\bre\bea\bas\bso\bon\bn (_\bs\bs_\bt\bt_\br\br |\b| N\bNo\bon\bne\be)\n- online(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n- Send an \u201conline\u201d presence from this contact to the user.\n- Parameters:\n- * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 Arbitrary text, details of the\n- status, eg: \u201cListening to Britney Spears\u201d\n- * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n- away(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n- Send an \u201caway\u201d presence from this contact to the user.\n- This is a global status, as opposed to _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n- which concerns a specific conversation, ie a specific \u201cchat window\u201d\n- Parameters:\n- * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 Arbitrary text, details of the\n- status, eg: \u201cGone to fight capitalism\u201d\n- * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n- extended_away(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n- Send an \u201cextended away\u201d presence from this contact to the user.\n- This is a global status, as opposed to _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n- which concerns a specific conversation, ie a specific \u201cchat window\u201d\n- Parameters:\n- * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 Arbitrary text, details of the\n- status, eg: \u201cGone to fight capitalism\u201d\n- * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n- busy(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n- Send a \u201cbusy\u201d (ie, \u201cdnd\u201d) presence from this contact to the user,\n- Parameters:\n- * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 eg: \u201cTrying to make sense of\n- XEP-0100\u201d\n- * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n- offline(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n- Send an \u201coffline\u201d presence from this contact to the user.\n- Parameters:\n- * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 eg: \u201cTrying to make sense of\n- XEP-0100\u201d\n- * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n- invite_to(m\bmu\buc\bc, r\bre\bea\bas\bso\bon\bn=\b=N\bNo\bon\bne\be, p\bpa\bas\bss\bsw\bwo\bor\brd\bd=\b=N\bNo\bon\bne\be, *\b**\b*s\bse\ben\bnd\bd_\b_k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send an invitation to join a group (_\bX_\bE_\bP_\b-_\b0_\b2_\b4_\b9) from this _\bX_\bM_\bP_\bP\n- _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- * m\bmu\buc\bc (_\bs\bs_\bl\bl_\bi\bi_\bd\bd_\bg\bg_\be\be_\b.\b._\bg\bg_\br\br_\bo\bo_\bu\bu_\bp\bp_\b.\b._\bL\bL_\be\be_\bg\bg_\ba\ba_\bc\bc_\by\by_\bM\bM_\bU\bU_\bC\bC) \u2013 the muc the user is\n- invited to\n- * r\bre\bea\bas\bso\bon\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 a text explaining why the user\n- should join this muc\n- * p\bpa\bas\bss\bsw\bwo\bor\brd\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 maybe this will make sense\n- later? not sure\n- * s\bse\ben\bnd\bd_\b_k\bkw\bwa\bar\brg\bgs\bs \u2013 additional kwargs to be passed to _send()\n- (internal use by slidge)\n- active(*\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send an \u201cactive\u201d chat state (_\bX_\bE_\bP_\b-_\b0_\b0_\b8_\b5) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- composing(*\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a \u201ccomposing\u201d (ie \u201ctyping notification\u201d) chat state (_\bX_\bE_\bP_\b-_\b0_\b0_\b8_\b5)\n- from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- paused(*\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a \u201cpaused\u201d (ie \u201ctyping paused notification\u201d) chat state (_\bX_\bE_\bP_\b-\n- _\b0_\b0_\b8_\b5) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- inactive(*\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send an \u201cinactive\u201d (ie \u201ccontact has not interacted with the chat\n- session interface for an intermediate period of time\u201d) chat state\n- (_\bX_\bE_\bP_\b-_\b0_\b0_\b8_\b5) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- gone(*\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a \u201cgone\u201d (ie \u201ccontact has not interacted with the chat session\n- interface, system, or device for a relatively long period of time\u201d)\n- chat state (_\bX_\bE_\bP_\b-_\b0_\b0_\b8_\b5) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- ack(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, *\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send an \u201cacknowledged\u201d message marker (_\bX_\bE_\bP_\b-_\b0_\b3_\b3_\b3) from this _\bX_\bM_\bP_\bP\n- _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013 The\n- message this marker refers to\n- received(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, *\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a \u201creceived\u201d message marker (_\bX_\bE_\bP_\b-_\b0_\b3_\b3_\b3) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- If called on a LegacyContact, also send a delivery receipt marker\n- (_\bX_\bE_\bP_\b-_\b0_\b1_\b8_\b4).\n- Parameters:\n- l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013 The\n- message this marker refers to\n- displayed(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, *\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a \u201cdisplayed\u201d message marker (_\bX_\bE_\bP_\b-_\b0_\b3_\b3_\b3) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013 The\n- message this marker refers to\n- a\bas\bsy\byn\bnc\bc send_file(f\bfi\bil\ble\be_\b_p\bpa\bat\bth\bh=\b=N\bNo\bon\bne\be, l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd=\b=N\bNo\bon\bne\be, *\b*,\n- a\bas\bsy\byn\bnc\bc_\b_d\bda\bat\bta\ba_\b_s\bst\btr\bre\bea\bam\bm=\b=N\bNo\bon\bne\be, d\bda\bat\bta\ba_\b_s\bst\btr\bre\bea\bam\bm=\b=N\bNo\bon\bne\be, d\bda\bat\bta\ba=\b=N\bNo\bon\bne\be, f\bfi\bil\ble\be_\b_u\bur\brl\bl=\b=N\bNo\bon\bne\be,\n- f\bfi\bil\ble\be_\b_n\bna\bam\bme\be=\b=N\bNo\bon\bne\be, c\bco\bon\bnt\bte\ben\bnt\bt_\b_t\bty\byp\bpe\be=\b=N\bNo\bon\bne\be, r\bre\bep\bpl\bly\by_\b_t\bto\bo=\b=N\bNo\bon\bne\be, w\bwh\bhe\ben\bn=\b=N\bNo\bon\bne\be,\n- c\bca\bap\bpt\bti\bio\bon\bn=\b=N\bNo\bon\bne\be, l\ble\beg\bga\bac\bcy\by_\b_f\bfi\bil\ble\be_\b_i\bid\bd=\b=N\bNo\bon\bne\be, t\bth\bhr\bre\bea\bad\bd=\b=N\bNo\bon\bne\be, *\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a single file from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- * f\bfi\bil\ble\be_\b_p\bpa\bat\bth\bh (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[U\bUn\bni\bio\bon\bn[\b[_\bp\bp_\ba\ba_\bt\bt_\bh\bh_\bl\bl_\bi\bi_\bb\bb_\b.\b._\bP\bP_\ba\ba_\bt\bt_\bh\bh,\b, _\bs\bs_\bt\bt_\br\br]\b]]\b]) \u2013 Path\n- to the attachment\n- * a\bas\bsy\byn\bnc\bc_\b_d\bda\bat\bta\ba_\b_s\bst\btr\bre\bea\bam\bm (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[A\bAs\bsy\byn\bnc\bcI\bIt\bte\ber\bra\bat\bto\bor\br[\b[_\bb\bb_\by\by_\bt\bt_\be\be_\bs\bs]\b]]\b]) \u2013\n- Alternatively (and ideally) an AsyncIterator yielding\n- bytes\n- * d\bda\bat\bta\ba_\b_s\bst\btr\bre\bea\bam\bm (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[I\bIO\bO[\b[_\bb\bb_\by\by_\bt\bt_\be\be_\bs\bs]\b]]\b]) \u2013 Alternatively, a\n- stream of bytes (such as a File object)\n- * d\bda\bat\bta\ba (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bb\bb_\by\by_\bt\bt_\be\be_\bs\bs]\b]) \u2013 Alternatively, a bytes object\n- * f\bfi\bil\ble\be_\b_u\bur\brl\bl (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 Alternatively, a URL\n- * f\bfi\bil\ble\be_\b_n\bna\bam\bme\be (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 How the file should be\n- named.\n- * c\bco\bon\bnt\bte\ben\bnt\bt_\b_t\bty\byp\bpe\be (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 MIME type, inferred from\n- filename if not given\n- * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be]\b]) \u2013 If you want to\n- be able to transport read markers from the gateway user\n- to the legacy network, specify this\n- * r\bre\bep\bpl\bly\by_\b_t\bto\bo (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.M\bMe\bes\bss\bsa\bag\bge\beR\bRe\bef\bfe\ber\bre\ben\bnc\bce\be]\b])\n- \u2013 Quote another message (_\bX_\bE_\bP_\b-_\b0_\b4_\b6_\b1)\n- * w\bwh\bhe\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 when the file was\n- sent, for a \u201cdelay\u201d tag (_\bX_\bE_\bP_\b-_\b0_\b2_\b0_\b3)\n- * c\bca\bap\bpt\bti\bio\bon\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 an optional text that is\n- linked to the file\n- * l\ble\beg\bga\bac\bcy\by_\b_f\bfi\bil\ble\be_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[U\bUn\bni\bio\bon\bn[\b[_\bs\bs_\bt\bt_\br\br,\b, _\bi\bi_\bn\bn_\bt\bt]\b]]\b]) \u2013 A unique\n- identifier for the file on the legacy network. Plugins\n- should try their best to provide it, to avoid\n- duplicates.\n- * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n- Return type:\n- _\bt_\bu_\bp_\bl_\be[Optional[_\bs_\bt_\br], _\bl_\bi_\bs_\bt[slixmpp.Message]]\n- send_text(b\bbo\bod\bdy\by, l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd=\b=N\bNo\bon\bne\be, *\b*, w\bwh\bhe\ben\bn=\b=N\bNo\bon\bne\be, r\bre\bep\bpl\bly\by_\b_t\bto\bo=\b=N\bNo\bon\bne\be,\n- t\bth\bhr\bre\bea\bad\bd=\b=N\bNo\bon\bne\be, h\bhi\bin\bnt\bts\bs=\b=N\bNo\bon\bne\be, c\bca\bar\brb\bbo\bon\bn=\b=F\bFa\bal\bls\bse\be, a\bar\brc\bch\bhi\biv\bve\be_\b_o\bon\bnl\bly\by=\b=F\bFa\bal\bls\bse\be,\n- c\bco\bor\brr\bre\bec\bct\bti\bio\bon\bn=\b=F\bFa\bal\bls\bse\be, c\bco\bor\brr\bre\bec\bct\bti\bio\bon\bn_\b_e\bev\bve\ben\bnt\bt_\b_i\bid\bd=\b=N\bNo\bon\bne\be, l\bli\bin\bnk\bk_\b_p\bpr\bre\bev\bvi\bie\bew\bws\bs=\b=N\bNo\bon\bne\be,\n- *\b**\b*s\bse\ben\bnd\bd_\b_k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a text message from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- * b\bbo\bod\bdy\by (_\bs\bs_\bt\bt_\br\br) \u2013 Content of the message\n- * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be]\b]) \u2013 If you want to\n- be able to transport read markers from the gateway user\n- to the legacy network, specify this\n- * w\bwh\bhe\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 when the message\n- was sent, for a \u201cdelay\u201d tag (_\bX_\bE_\bP_\b-_\b0_\b2_\b0_\b3)\n- * r\bre\bep\bpl\bly\by_\b_t\bto\bo (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.M\bMe\bes\bss\bsa\bag\bge\beR\bRe\bef\bfe\ber\bre\ben\bnc\bce\be]\b])\n- \u2013 Quote another message (_\bX_\bE_\bP_\b-_\b0_\b4_\b6_\b1)\n- * h\bhi\bin\bnt\bts\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[I\bIt\bte\ber\bra\bab\bbl\ble\be\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.P\bPr\bro\boc\bce\bes\bss\bsi\bin\bng\bgH\bHi\bin\bnt\bt]\b]]\b])\n- * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n- * c\bca\bar\brb\bbo\bon\bn \u2013 (only used if called on a LegacyContact) Set\n- this to True if this is actually a message sent t\bto\bo the\n- LegacyContact by the _\bU_\bs_\be_\br. Use this to synchronize\n- outgoing history for legacy official apps.\n- * c\bco\bor\brr\bre\bec\bct\bti\bio\bon\bn \u2013 whether this message is a correction or\n- not\n- * c\bco\bor\brr\bre\bec\bct\bti\bio\bon\bn_\b_e\bev\bve\ben\bnt\bt_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be]\b]) \u2013 in the case\n- where an ID is associated with the legacy \u2018correction\n- event\u2019, specify it here to use it on the XMPP side. If\n- not specified, a random ID will be used.\n- * l\bli\bin\bnk\bk_\b_p\bpr\bre\bev\bvi\bie\bew\bws\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bl\bl_\bi\bi_\bs\bs_\bt\bt\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLi\bin\bnk\bkP\bPr\bre\bev\bvi\bie\bew\bw]\b]]\b]) \u2013 A little of sender\n- (or server, or gateway)-generated previews of URLs\n- linked in the body.\n- * a\bar\brc\bch\bhi\biv\bve\be_\b_o\bon\bnl\bly\by \u2013 (only in groups) Do not send this\n- message to user, but store it in the archive. Meant to\n- be used during MUC.backfill()\n- correct(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, n\bne\bew\bw_\b_t\bte\bex\bxt\bt, *\b*, w\bwh\bhe\ben\bn=\b=N\bNo\bon\bne\be, r\bre\bep\bpl\bly\by_\b_t\bto\bo=\b=N\bNo\bon\bne\be,\n- t\bth\bhr\bre\bea\bad\bd=\b=N\bNo\bon\bne\be, h\bhi\bin\bnt\bts\bs=\b=N\bNo\bon\bne\be, c\bca\bar\brb\bbo\bon\bn=\b=F\bFa\bal\bls\bse\be, a\bar\brc\bch\bhi\biv\bve\be_\b_o\bon\bnl\bly\by=\b=F\bFa\bal\bls\bse\be,\n- c\bco\bor\brr\bre\bec\bct\bti\bio\bon\bn_\b_e\bev\bve\ben\bnt\bt_\b_i\bid\bd=\b=N\bNo\bon\bne\be, l\bli\bin\bnk\bk_\b_p\bpr\bre\bev\bvi\bie\bew\bws\bs=\b=N\bNo\bon\bne\be, *\b**\b*s\bse\ben\bnd\bd_\b_k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Modify a message that was previously sent by this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- Uses last message correction (_\bX_\bE_\bP_\b-_\b0_\b3_\b0_\b8)\n- Parameters:\n- * n\bne\bew\bw_\b_t\bte\bex\bxt\bt (_\bs\bs_\bt\bt_\br\br) \u2013 New content of the message\n- * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013\n- The legacy message ID of the message to correct\n- * w\bwh\bhe\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 when the message\n- was sent, for a \u201cdelay\u201d tag (_\bX_\bE_\bP_\b-_\b0_\b2_\b0_\b3)\n- * r\bre\bep\bpl\bly\by_\b_t\bto\bo (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.M\bMe\bes\bss\bsa\bag\bge\beR\bRe\bef\bfe\ber\bre\ben\bnc\bce\be]\b])\n- \u2013 Quote another message (_\bX_\bE_\bP_\b-_\b0_\b4_\b6_\b1)\n- * h\bhi\bin\bnt\bts\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[I\bIt\bte\ber\bra\bab\bbl\ble\be\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.P\bPr\bro\boc\bce\bes\bss\bsi\bin\bng\bgH\bHi\bin\bnt\bt]\b]]\b])\n- * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n- * c\bca\bar\brb\bbo\bon\bn \u2013 (only in 1:1) Reflect a message sent to this\n- Contact by the user. Use this to synchronize outgoing\n- history for legacy official apps.\n- * a\bar\brc\bch\bhi\biv\bve\be_\b_o\bon\bnl\bly\by \u2013 (only in groups) Do not send this\n- message to user, but store it in the archive. Meant to\n- be used during MUC.backfill()\n- * c\bco\bor\brr\bre\bec\bct\bti\bio\bon\bn_\b_e\bev\bve\ben\bnt\bt_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be]\b]) \u2013 in the case\n- where an ID is associated with the legacy \u2018correction\n- event\u2019, specify it here to use it on the XMPP side. If\n- not specified, a random ID will be used.\n- * l\bli\bin\bnk\bk_\b_p\bpr\bre\bev\bvi\bie\bew\bws\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bl\bl_\bi\bi_\bs\bs_\bt\bt\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLi\bin\bnk\bkP\bPr\bre\bev\bvi\bie\bew\bw]\b]]\b]) \u2013 A little of sender\n- (or server, or gateway)-generated previews of URLs\n- linked in the body.\n- react(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, e\bem\bmo\boj\bji\bis\bs=\b=(\b()\b), t\bth\bhr\bre\bea\bad\bd=\b=N\bNo\bon\bne\be, *\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a reaction (_\bX_\bE_\bP_\b-_\b0_\b4_\b4_\b4) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013\n- The message which the reaction refers to.\n- * e\bem\bmo\boj\bji\bis\bs (I\bIt\bte\ber\bra\bab\bbl\ble\be[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 An iterable of emojis used as\n- reactions\n- * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n- retract(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, t\bth\bhr\bre\bea\bad\bd=\b=N\bNo\bon\bne\be, *\b**\b*k\bkw\bwa\bar\brg\bgs\bs)_\b\u00b6\n- Send a message retraction (_\bX_\bE_\bP_\b-_\b0_\b4_\b2_\b4) from this _\bX_\bM_\bP_\bP_\b _\bE_\bn_\bt_\bi_\bt_\by.\n- Parameters:\n- * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013\n- Legacy ID of the message to delete\n- * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n c\bcl\bla\bas\bss\bs slidge.group.LegacyMUC(s\bse\bes\bss\bsi\bio\bon\bn, l\ble\beg\bga\bac\bcy\by_\b_i\bid\bd, j\bji\bid\bd)_\b\u00b6\n A room, a.k.a. a Multi-User Chat.\n MUC instances are obtained by calling\n slidge.group.bookmarks.LegacyBookmarks() on the user\u2019s\n slidge.core.session.BaseSession.\n Parameters:\n * s\bse\bes\bss\bsi\bio\bon\bn (s\bsl\bli\bid\bdg\bge\be.\b.c\bco\bor\bre\be.\b.s\bse\bes\bss\bsi\bio\bon\bn.\b.B\bBa\bas\bse\beS\bSe\bes\bss\bsi\bio\bon\bn)\n@@ -503,15 +306,15 @@\n meant to remove the avatar\n * m\bmi\bim\bme\be (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 the mime type of the image.\n Since this is provided by the XMPP client, there is no\n guarantee that this is valid or correct.\n Returns:\n A unique avatar identifier, which will trigger\n slidge.group.room.LegacyMUC.set_avatar(). Alternatively,\n- None, if _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bs_\be_\bt_\b__\ba_\bv_\ba_\bt_\ba_\br_\b(_\b) is meant to be awaited\n+ None, if LegacyMUC.set_avatar() is meant to be awaited\n somewhere else.\n Return type:\n Optional[Union[_\bi_\bn_\bt, _\bs_\bt_\br]]\n a\bab\bbs\bst\btr\bra\bac\bct\bt on_set_affiliation(c\bco\bon\bnt\bta\bac\bct\bt, a\baf\bff\bfi\bil\bli\bia\bat\bti\bio\bon\bn, r\bre\bea\bas\bso\bon\bn, n\bni\bic\bck\bkn\bna\bam\bme\be)_\b\u00b6\n Async:\n Parameters:\n * c\bco\bon\bnt\bta\bac\bct\bt (s\bsl\bli\bid\bdg\bge\be.\b.c\bco\bon\bnt\bta\bac\bct\bt.\b.c\bco\bon\bnt\bta\bac\bct\bt.\b.L\bLe\beg\bga\bac\bcy\byC\bCo\bon\bnt\bta\bac\bct\bt)\n@@ -572,53 +375,14 @@\n Triggered when the user requests changing the room subject.\n The legacy module is responsible for updating subject of this\n instance.\n Parameters:\n s\bsu\bub\bbj\bje\bec\bct\bt (_\bs\bs_\bt\bt_\br\br) \u2013 The new subject for this room.\n Return type:\n None\n- p\bpr\bro\bop\bpe\ber\brt\bty\by avatar_id:\b: s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.A\bAv\bva\bat\bta\bar\brI\bId\bdT\bTy\byp\bpe\be |\b| _\bN\bN_\bo\bo_\bn\bn_\be\be_\b\u00b6\n- The unique ID of this entity\u2019s avatar.\n- Return type:\n- Optional[slidge.util.types.AvatarIdType]\n- p\bpr\bro\bop\bpe\ber\brt\bty\by avatar:\b: s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.A\bAv\bva\bat\bta\bar\brI\bId\bdT\bTy\byp\bpe\be |\b| _\bN\bN_\bo\bo_\bn\bn_\be\be_\b\u00b6\n- This property can be used to set the avatar, but set_avatar()\n- should be preferred because you can provide a unique ID for the\n- avatar for efficient caching. Setting this is OKish in case the\n- avatar type is a URL or a local path that can act as a legacy ID.\n- Python\u2019s property is abused here to maintain backwards\n- compatibility, but when getting it you actually get the avatar\n- legacy ID.\n- Return type:\n- Optional[slidge.util.types.AvatarIdType]\n- a\bas\bsy\byn\bnc\bc set_avatar(a\ba, a\bav\bva\bat\bta\bar\br_\b_u\bun\bni\biq\bqu\bue\be_\b_i\bid\bd=\b=N\bNo\bon\bne\be, d\bde\bel\ble\bet\bte\be=\b=F\bFa\bal\bls\bse\be,\n- b\bbl\blo\boc\bck\bki\bin\bng\bg=\b=F\bFa\bal\bls\bse\be, c\bca\ban\bnc\bce\bel\bl=\b=T\bTr\bru\bue\be)_\b\u00b6\n- Set an avatar for this entity\n- Parameters:\n- * a\ba (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.A\bAv\bva\bat\bta\bar\brT\bTy\byp\bpe\be]\b]) \u2013 The\n- avatar, in one of the types slidge supports\n- * a\bav\bva\bat\bta\bar\br_\b_u\bun\bni\biq\bqu\bue\be_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl\n- [\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byF\bFi\bil\ble\beI\bId\bdT\bTy\byp\bpe\be]\b]) \u2013 A globally\n- unique ID for the avatar on the legacy network\n- * d\bde\bel\ble\bet\bte\be (_\bb\bb_\bo\bo_\bo\bo_\bl\bl) \u2013 If the avatar is provided as a Path,\n- whether to delete it once used or not.\n- * b\bbl\blo\boc\bck\bki\bin\bng\bg \u2013 Internal use by slidge for tests, do not\n- use!\n- * c\bca\ban\bnc\bce\bel\bl \u2013 Internal use by slidge, do not use!\n- Return type:\n- None\n- a\bas\bsy\byn\bnc\bc available_emojis(l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd=\b=N\bNo\bon\bne\be)_\b\u00b6\n- Override this to restrict the subset of reactions this recipient\n- can handle.\n- Returns:\n- A set of emojis or None if any emoji is allowed\n- Parameters:\n- l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be]\b])\n- Return type:\n- Optional[_\bs_\be_\bt[_\bs_\bt_\br]]\n _\bN_\be_\bx_\bt\n _\bs_\bl_\bi_\bd_\bg_\be_\b._\bm_\ba_\bi_\bn\n _\bP_\br_\be_\bv_\bi_\bo_\bu_\bs\n _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt\n Copyright \u00a9 2024, Nicolas Cedilnik\n Made with _\bS_\bp_\bh_\bi_\bn_\bx and _\b@_\bp_\br_\ba_\bd_\by_\bu_\bn_\bs_\bg's _\bF_\bu_\br_\bo\n On this page\n@@ -635,33 +399,14 @@\n # _\bL_\be_\bg_\ba_\bc_\by_\bB_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs_\b._\bf_\bi_\bl_\bl_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bB_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs_\b._\br_\be_\bm_\bo_\bv_\be_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bs_\be_\bn_\bd_\b__\bi_\bn_\bi_\bt_\bi_\ba_\bl_\b__\bp_\br_\be_\bs_\be_\bn_\bc_\be_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bl_\be_\ba_\bv_\be_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bk_\bi_\bc_\bk_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bb_\ba_\bn_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bo_\bn_\bl_\bi_\bn_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\ba_\bw_\ba_\by_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\be_\bx_\bt_\be_\bn_\bd_\be_\bd_\b__\ba_\bw_\ba_\by_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bb_\bu_\bs_\by_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bo_\bf_\bf_\bl_\bi_\bn_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bi_\bn_\bv_\bi_\bt_\be_\b__\bt_\bo_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bc_\bo_\bm_\bp_\bo_\bs_\bi_\bn_\bg_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bp_\ba_\bu_\bs_\be_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bg_\bo_\bn_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\ba_\bc_\bk_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\br_\be_\bc_\be_\bi_\bv_\be_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bd_\bi_\bs_\bp_\bl_\ba_\by_\be_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bs_\be_\bn_\bd_\b__\bf_\bi_\bl_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bs_\be_\bn_\bd_\b__\bt_\be_\bx_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bc_\bo_\br_\br_\be_\bc_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\br_\be_\ba_\bc_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\br_\be_\bt_\br_\ba_\bc_\bt_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bS_\bT_\bA_\bB_\bL_\bE_\b__\bA_\bR_\bC_\bH_\bI_\bV_\bE\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bK_\bE_\bE_\bP_\b__\bB_\bA_\bC_\bK_\bF_\bI_\bL_\bL_\bE_\bD_\b__\bP_\bA_\bR_\bT_\bI_\bC_\bI_\bP_\bA_\bN_\bT_\bS\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bH_\bA_\bS_\b__\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bH_\bA_\bS_\b__\bS_\bU_\bB_\bJ_\bE_\bC_\bT\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bu_\bp_\bd_\ba_\bt_\be_\b__\bi_\bn_\bf_\bo_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bb_\ba_\bc_\bk_\bf_\bi_\bl_\bl_\b(_\b)\n@@ -675,11 +420,7 @@\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\ba_\bd_\bd_\b__\bt_\bo_\b__\bb_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bo_\bn_\b__\ba_\bv_\ba_\bt_\ba_\br_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bo_\bn_\b__\bs_\be_\bt_\b__\ba_\bf_\bf_\bi_\bl_\bi_\ba_\bt_\bi_\bo_\bn_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bo_\bn_\b__\bk_\bi_\bc_\bk_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bo_\bn_\b__\bs_\be_\bt_\b__\bc_\bo_\bn_\bf_\bi_\bg_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bo_\bn_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bo_\bn_\b__\bs_\be_\bt_\b__\bs_\bu_\bb_\bj_\be_\bc_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\ba_\bv_\ba_\bt_\ba_\br_\b__\bi_\bd\n- # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\ba_\bv_\ba_\bt_\ba_\br\n- # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bs_\be_\bt_\b__\ba_\bv_\ba_\bt_\ba_\br_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\ba_\bv_\ba_\bi_\bl_\ba_\bb_\bl_\be_\b__\be_\bm_\bo_\bj_\bi_\bs_\b(_\b)\n"}]}, {"source1": "./usr/share/doc/python-slidge-doc/html/dev/api/slidge/index.html", "source2": "./usr/share/doc/python-slidge-doc/html/dev/api/slidge/index.html", "unified_diff": "@@ -341,15 +341,15 @@\n
  • validate()

  • \n
  • validate_two_factor_code()

  • \n
  • get_qr_text()

  • \n
  • confirm_qr()

  • \n \n

    NB: Not all of these must be overridden, it depends on the\n REGISTRATION_TYPE.

    \n-

    The other methods, such as send_text() or react() are the same\n+

    The other methods, such as send_text() or react() are the same\n as those of LegacyContact and LegacyParticipant, because\n the component itself is also a \u201cmessaging actor\u201d, ie, an XMPP Entity.\n For these methods, you need to specify the JID of the recipient with the\n mto parameter.

    \n

    Since it inherits from slixmpp.componentxmpp.ComponentXMPP,you also\n have a hand on low-level XMPP interactions via slixmpp methods, e.g.:

    \n
    self.send_presence(\n@@ -1025,17 +1025,17 @@\n 
  • thread (Optional[slidge.util.types.LegacyThreadType])

  • \n \n \n \n

    Triggered when the user reads a message in a legacy chat. (XEP-0333)

    \n

    This is only possible if a valid legacy_msg_id was passed when\n transmitting a message from a legacy chat to the user, eg in\n-slidge.contact.LegacyContact.send_text()\n+slidge.contact.LegacyContact.send_text()\n or\n-slidge.group.LegacyParticipant.send_text().

    \n+slidge.group.LegacyParticipant.send_text().

    \n
    \n
    Parameters:
    \n
      \n
    • chat (slidge.util.types.RecipientType) \u2013 See BaseSession.on_text()

    • \n
    • legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 Identifier of the message/

    • \n
    • thread (Optional[slidge.util.types.LegacyThreadType])

    • \n
    \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -494,16 +494,16 @@\n * c\bch\bha\bat\bt (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.R\bRe\bec\bci\bip\bpi\bie\ben\bnt\btT\bTy\byp\bpe\be)\n * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be)\n * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n Triggered when the user reads a message in a legacy chat. (_\bX_\bE_\bP_\b-\n _\b0_\b3_\b3_\b3)\n This is only possible if a valid legacy_msg_id was passed when\n transmitting a message from a legacy chat to the user, eg in\n- _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bs_\be_\bn_\bd_\b__\bt_\be_\bx_\bt_\b(_\b) or\n- _\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bs_\be_\bn_\bd_\b__\bt_\be_\bx_\bt_\b(_\b).\n+ slidge.contact.LegacyContact.send_text() or\n+ slidge.group.LegacyParticipant.send_text().\n Parameters:\n * c\bch\bha\bat\bt (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.R\bRe\bec\bci\bip\bpi\bie\ben\bnt\btT\bTy\byp\bpe\be) \u2013 See\n _\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b._\bo_\bn_\b__\bt_\be_\bx_\bt_\b(_\b)\n * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013\n Identifier of the message/\n * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n a\bab\bbs\bst\btr\bra\bac\bct\bt on_correct(c\bch\bha\bat\bt, t\bte\bex\bxt\bt, l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, *\b*, t\bth\bhr\bre\bea\bad\bd=\b=N\bNo\bon\bne\be,\n"}]}, {"source1": "./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/index.html", "source2": "./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/index.html", "unified_diff": "@@ -648,15 +648,15 @@\n the XMPP client, there is no guarantee that this is valid or\n correct.

    \n \n
    \n
    Returns:
    \n

    A unique avatar identifier, which will trigger\n slidge.group.room.LegacyMUC.set_avatar(). Alternatively, None, if\n-LegacyMUC.set_avatar() is meant to be awaited somewhere else.

    \n+LegacyMUC.set_avatar() is meant to be awaited somewhere else.

    \n
    \n
    Return type:
    \n

    Optional[Union[int, str]]

    \n
    \n
    \n \n \n@@ -932,15 +932,15 @@\n \n \n \n
    \n
    \n away(status=None, last_seen=None)\u00b6
    \n

    Send an \u201caway\u201d presence from this contact to the user.

    \n-

    This is a global status, as opposed to LegacyContact.inactive()\n+

    This is a global status, as opposed to LegacyContact.inactive()\n which concerns a specific conversation, ie a specific \u201cchat window\u201d

    \n
    \n
    Parameters:
    \n
      \n
    • status (Optional[str]) \u2013 Arbitrary text, details of the status, eg: \u201cGone to fight capitalism\u201d

    • \n
    • last_seen (Optional[datetime.datetime]) \u2013 For XEP-0319

    • \n
    \n@@ -948,15 +948,15 @@\n
    \n
    \n \n
    \n
    \n extended_away(status=None, last_seen=None)\u00b6
    \n

    Send an \u201cextended away\u201d presence from this contact to the user.

    \n-

    This is a global status, as opposed to LegacyContact.inactive()\n+

    This is a global status, as opposed to LegacyContact.inactive()\n which concerns a specific conversation, ie a specific \u201cchat window\u201d

    \n
    \n
    Parameters:
    \n
      \n
    • status (Optional[str]) \u2013 Arbitrary text, details of the status, eg: \u201cGone to fight capitalism\u201d

    • \n
    • last_seen (Optional[datetime.datetime]) \u2013 For XEP-0319

    • \n
    \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -258,15 +258,15 @@\n meant to remove the avatar\n * m\bmi\bim\bme\be (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 the mime type of the image.\n Since this is provided by the XMPP client, there is no\n guarantee that this is valid or correct.\n Returns:\n A unique avatar identifier, which will trigger\n slidge.group.room.LegacyMUC.set_avatar(). Alternatively,\n- None, if _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bs_\be_\bt_\b__\ba_\bv_\ba_\bt_\ba_\br_\b(_\b) is meant to be awaited\n+ None, if LegacyMUC.set_avatar() is meant to be awaited\n somewhere else.\n Return type:\n Optional[Union[_\bi_\bn_\bt, _\bs_\bt_\br]]\n a\bab\bbs\bst\btr\bra\bac\bct\bt on_set_affiliation(c\bco\bon\bnt\bta\bac\bct\bt, a\baf\bff\bfi\bil\bli\bia\bat\bti\bio\bon\bn, r\bre\bea\bas\bso\bon\bn, n\bni\bic\bck\bkn\bna\bam\bme\be)_\b\u00b6\n Async:\n Parameters:\n * c\bco\bon\bnt\bta\bac\bct\bt (s\bsl\bli\bid\bdg\bge\be.\b.c\bco\bon\bnt\bta\bac\bct\bt.\b.c\bco\bon\bnt\bta\bac\bct\bt.\b.L\bLe\beg\bga\bac\bcy\byC\bCo\bon\bnt\bta\bac\bct\bt)\n@@ -404,23 +404,23 @@\n Send an \u201conline\u201d presence from this contact to the user.\n Parameters:\n * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 Arbitrary text, details of the\n status, eg: \u201cListening to Britney Spears\u201d\n * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n away(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n Send an \u201caway\u201d presence from this contact to the user.\n- This is a global status, as opposed to _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n+ This is a global status, as opposed to LegacyContact.inactive()\n which concerns a specific conversation, ie a specific \u201cchat window\u201d\n Parameters:\n * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 Arbitrary text, details of the\n status, eg: \u201cGone to fight capitalism\u201d\n * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n extended_away(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n Send an \u201cextended away\u201d presence from this contact to the user.\n- This is a global status, as opposed to _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n+ This is a global status, as opposed to LegacyContact.inactive()\n which concerns a specific conversation, ie a specific \u201cchat window\u201d\n Parameters:\n * s\bst\bta\bat\btu\bus\bs (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bs\bs_\bt\bt_\br\br]\b]) \u2013 Arbitrary text, details of the\n status, eg: \u201cGone to fight capitalism\u201d\n * l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[_\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be_\b.\b._\bd\bd_\ba\ba_\bt\bt_\be\be_\bt\bt_\bi\bi_\bm\bm_\be\be]\b]) \u2013 For _\bX_\bE_\bP_\b-_\b0_\b3_\b1_\b9\n busy(s\bst\bta\bat\btu\bus\bs=\b=N\bNo\bon\bne\be, l\bla\bas\bst\bt_\b_s\bse\bee\ben\bn=\b=N\bNo\bon\bne\be)_\b\u00b6\n Send a \u201cbusy\u201d (ie, \u201cdnd\u201d) presence from this contact to the user,\n"}]}, {"source1": "./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/index.html", "source2": "./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/index.html", "unified_diff": "@@ -594,17 +594,17 @@\n
  • thread (Optional[slidge.util.types.LegacyThreadType])

  • \n \n
    \n
    \n

    Triggered when the user reads a message in a legacy chat. (XEP-0333)

    \n

    This is only possible if a valid legacy_msg_id was passed when\n transmitting a message from a legacy chat to the user, eg in\n-slidge.contact.LegacyContact.send_text()\n+slidge.contact.LegacyContact.send_text()\n or\n-slidge.group.LegacyParticipant.send_text().

    \n+slidge.group.LegacyParticipant.send_text().

    \n
    \n
    Parameters:
    \n
      \n
    • chat (slidge.util.types.RecipientType) \u2013 See BaseSession.on_text()

    • \n
    • legacy_msg_id (slidge.util.types.LegacyMessageType) \u2013 Identifier of the message/

    • \n
    • thread (Optional[slidge.util.types.LegacyThreadType])

    • \n
    \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -238,16 +238,16 @@\n * c\bch\bha\bat\bt (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.R\bRe\bec\bci\bip\bpi\bie\ben\bnt\btT\bTy\byp\bpe\be)\n * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be)\n * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n Triggered when the user reads a message in a legacy chat. (_\bX_\bE_\bP_\b-\n _\b0_\b3_\b3_\b3)\n This is only possible if a valid legacy_msg_id was passed when\n transmitting a message from a legacy chat to the user, eg in\n- _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bs_\be_\bn_\bd_\b__\bt_\be_\bx_\bt_\b(_\b) or\n- _\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bs_\be_\bn_\bd_\b__\bt_\be_\bx_\bt_\b(_\b).\n+ slidge.contact.LegacyContact.send_text() or\n+ slidge.group.LegacyParticipant.send_text().\n Parameters:\n * c\bch\bha\bat\bt (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.R\bRe\bec\bci\bip\bpi\bie\ben\bnt\btT\bTy\byp\bpe\be) \u2013 See\n _\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b._\bo_\bn_\b__\bt_\be_\bx_\bt_\b(_\b)\n * l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd (s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byM\bMe\bes\bss\bsa\bag\bge\beT\bTy\byp\bpe\be) \u2013\n Identifier of the message/\n * t\bth\bhr\bre\bea\bad\bd (O\bOp\bpt\bti\bio\bon\bna\bal\bl[\b[s\bsl\bli\bid\bdg\bge\be.\b.u\but\bti\bil\bl.\b.t\bty\byp\bpe\bes\bs.\b.L\bLe\beg\bga\bac\bcy\byT\bTh\bhr\bre\bea\bad\bdT\bTy\byp\bpe\be]\b])\n a\bab\bbs\bst\btr\bra\bac\bct\bt on_correct(c\bch\bha\bat\bt, t\bte\bex\bxt\bt, l\ble\beg\bga\bac\bcy\by_\b_m\bms\bsg\bg_\b_i\bid\bd, *\b*, t\bth\bhr\bre\bea\bad\bd=\b=N\bNo\bon\bne\be,\n"}]}, {"source1": "./usr/share/doc/python-slidge-doc/html/genindex.html", "source2": "./usr/share/doc/python-slidge-doc/html/genindex.html", "unified_diff": "@@ -383,86 +383,54 @@\n
  • module\n
  • \n \n
  • accept_friend_request() (slidge.contact.LegacyContact method)\n
  • \n
  • ACCESS (slidge.command.Command attribute)\n
  • \n-
  • ack() (slidge.contact.LegacyContact method)\n+
  • ack() (superduper.gateway.Gateway method)\n \n
  • \n-
  • active() (slidge.contact.LegacyContact method)\n+
  • active() (superduper.gateway.Gateway method)\n \n
  • \n+ \n+ \n- \n \n \n \n
    \n

    B

    \n \n@@ -483,36 +451,30 @@\n \n
  • backfill() (slidge.group.LegacyMUC method)\n \n
  • \n+ \n+ \n- \n
    \n
    \n \n
    \n@@ -544,59 +506,51 @@\n \n \n
  • CommandAccess (class in slidge.command)\n
  • \n+ \n+ \n- \n \n
    \n \n@@ -606,21 +560,19 @@\n \n+ \n \n \n \n@@ -631,26 +583,20 @@\n
  • \n e91195719c2c_store_users_avatars_persistently\n \n
  • \n-
  • entrypoint() (in module slidge)\n-
  • \n \n \n \n \n \n
    \n

    F

    \n \n@@ -737,21 +683,17 @@\n
  • (slidge.command.FormField method)\n
  • \n
  • (slidge.command.SearchResult method)\n
  • \n
  • (slidge.command.TableResult method)\n
  • \n \n-
  • gone() (slidge.contact.LegacyContact method)\n+
  • gone() (superduper.gateway.Gateway method)\n \n
  • \n
  • GROUP (slidge.group.MucType attribute)\n
  • \n \n
    \n@@ -789,21 +731,17 @@\n \n
    \n

    I

    \n \n \n
      \n-
    • invite_to() (slidge.contact.LegacyContact method)\n+
    • invite_to() (superduper.gateway.Gateway method)\n \n
    • \n
    • items (slidge.command.SearchResult attribute)\n \n
        \n
      • (slidge.command.TableResult attribute)\n@@ -1064,22 +998,16 @@\n \n
        \n

        O

        \n \n \n
        \n
      • on_text() (slidge.BaseSession method)\n \n
      • \n-
      • online() (slidge.contact.LegacyContact method)\n-\n-
      • \n
        \n
        \n \n
        \n

        P

        \n \n \n
          \n
        • private (slidge.command.FormField attribute)\n
        • \n@@ -1282,31 +1200,23 @@\n \n
          \n

          R

          \n \n \n- \n+ \n
            \n-
          • SigTermInterrupt\n-
          • \n
          • SINGLE_STEP_FORM (slidge.command.register.RegistrationType attribute)\n
          • \n
          • \n slidge\n \n
              \n
            • module\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -59,99 +59,91 @@\n * 29f5280c61aa_store_subject_setter_in_room * 8b993243a536_add_vcard_content_to_contact_table\n o _\bm_\bo_\bd_\bu_\bl_\be o _\bm_\bo_\bd_\bu_\bl_\be\n * 2b1f45ab7379_store_room_subject_setter_by_nickname * 8d2ced764698_rely_on_db_to_store_contacts_rooms_and_\n o _\bm_\bo_\bd_\bu_\bl_\be o _\bm_\bo_\bd_\bu_\bl_\be\n * 3071e0fa69d4_add_contact_client_type\n o _\bm_\bo_\bd_\bu_\bl_\be\n *\b**\b**\b**\b**\b* A\bA *\b**\b**\b**\b**\b*\n- * aa9d82a7f6ef_db_creation * _\ba_\bd_\bd_\b__\bt_\bo_\b__\br_\bo_\bs_\bt_\be_\br_\b(_\b)_\b \n- o _\bm_\bo_\bd_\bu_\bl_\be _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * abba1ae0edb3_store_avatar_legacy_id_in_the_contact_ * _\ba_\bv_\ba_\bi_\bl_\ba_\bb_\bl_\be_\b__\be_\bm_\bo_\bj_\bi_\bs_\b(_\b)_\b \n- o _\bm_\bo_\bd_\bu_\bl_\be _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\ba_\bc_\bc_\be_\bp_\bt_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)_\b o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bA_\bC_\bC_\bE_\bS_\bS_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * _\bA\bA_\bv\bv_\ba\ba_\bt\bt_\ba\ba_\br\br\n- * _\ba_\bc_\bk_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\ba_\bv_\ba_\bt_\ba_\br_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bp_\br_\bo_\bp_\be_\br_\bt_\by_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bp_\br_\bo_\bp_\be_\br_\bt_\by_\b)\n- * _\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bp_\br_\bo_\bp_\be_\br_\bt_\by_\b)\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\ba_\bv_\ba_\bt_\ba_\br_\b__\bi_\bd_\b \n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bp_\br_\bo_\bp_\be_\br_\bt_\by_\b)\n- * _\bA\bA_\bd\bd_\b-\b-_\bh\bh_\bo\bo_\bc\bc_\b _\bC\bC_\bo\bo_\bm\bm_\bm\bm_\ba\ba_\bn\bn_\bd\bd o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC\n- * _\ba_\bd_\bd_\b__\bt_\bo_\b__\bb_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bp_\br_\bo_\bp_\be_\br_\bt_\by_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bp_\br_\bo_\bp_\be_\br_\bt_\by_\b)\n- * _\bA_\bV_\bA_\bT_\bA_\bR_\b__\bI_\bD_\b__\bT_\bY_\bP_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ * aa9d82a7f6ef_db_creation * _\bA\bA_\bd\bd_\b-\b-_\bh\bh_\bo\bo_\bc\bc_\b _\bC\bC_\bo\bo_\bm\bm_\bm\bm_\ba\ba_\bn\bn_\bd\bd\n+ o _\bm_\bo_\bd_\bu_\bl_\be * _\ba_\bd_\bd_\b__\bt_\bo_\b__\bb_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs_\b(_\b)_\b \n+ * abba1ae0edb3_store_avatar_legacy_id_in_the_contact_ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\bm_\bo_\bd_\bu_\bl_\be o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC\n+ * _\ba_\bc_\bc_\be_\bp_\bt_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\ba_\bd_\bd_\b__\bt_\bo_\b__\br_\bo_\bs_\bt_\be_\br_\b(_\b)_\b \n+ * _\bA_\bC_\bC_\bE_\bS_\bS_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt\n+ * _\ba_\bc_\bk_\b(_\b)_\b _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\ba_\bv_\ba_\bi_\bl_\ba_\bb_\bl_\be_\b__\be_\bm_\bo_\bj_\bi_\bs_\b(_\b)_\b \n+ * _\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)_\b _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bA\bA_\bv\bv_\ba\ba_\bt\bt_\ba\ba_\br\br\n+ * _\ba_\bv_\ba_\bt_\ba_\br_\b _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC\n+ _\bp_\br_\bo_\bp_\be_\br_\bt_\by_\b)\n+ * _\ba_\bv_\ba_\bt_\ba_\br_\b__\bi_\bd_\b _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC\n+ _\bp_\br_\bo_\bp_\be_\br_\bt_\by_\b)\n+ * _\bA_\bV_\bA_\bT_\bA_\bR_\b__\bI_\bD_\b__\bT_\bY_\bP_\bE_\b \n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- * _\ba_\bw_\ba_\by_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt\n+ * _\ba_\bw_\ba_\by_\b(_\b)_\b \n+ _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b)\n *\b**\b**\b**\b**\b* B\bB *\b**\b**\b**\b**\b*\n- * b33993e87db3_move_everything_to_persistent_db * _\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn_\b _\bs_\bl_\bi_\bd_\bg_\be_\b)\n- o _\bm_\bo_\bd_\bu_\bl_\be * _\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn_\b _\bs_\bl_\bi_\bd_\bg_\be_\b)\n- * b64b1a793483_add_source_and_legacy_id_for_archived_ * _\bB_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn_\b _\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b)\n- o _\bm_\bo_\bd_\bu_\bl_\be * _\bb_\bu_\bs_\by_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt\n- * _\bb_\ba_\bc_\bk_\bf_\bi_\bl_\bl_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- * _\bb_\ba_\bn_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * b33993e87db3_move_everything_to_persistent_db * _\bb_\ba_\bn_\b(_\b)_\b \n+ o _\bm_\bo_\bd_\bu_\bl_\be _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n+ * b64b1a793483_add_source_and_legacy_id_for_archived_ _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\bm_\bo_\bd_\bu_\bl_\be o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n+ * _\bb_\ba_\bc_\bk_\bf_\bi_\bl_\bl_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn_\b _\bs_\bl_\bi_\bd_\bg_\be_\b)\n+ * _\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn_\b _\bs_\bl_\bi_\bd_\bg_\be_\b)\n+ * _\bB_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn\n+ _\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b)\n+ * _\bb_\bu_\bs_\by_\b(_\b)_\b \n+ _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b)\n * _\bb_\by_\b__\bl_\be_\bg_\ba_\bc_\by_\b__\bi_\bd_\b(_\b)_\b \n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b)\n *\b**\b**\b**\b**\b* C\bC *\b**\b**\b**\b**\b*\n- * c4a8ec35a0e8_per_room_user_nick * _\bC_\bO_\bM_\bP_\bO_\bN_\bE_\bN_\bT_\b__\bN_\bA_\bM_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by\n- o _\bm_\bo_\bd_\bu_\bl_\be _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- * _\bC\bC_\ba\ba_\br\br_\bb\bb_\bo\bo_\bn\bn_\bs\bs o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n- * _\bC_\bA_\bT_\bE_\bG_\bO_\bR_\bY_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * _\bC_\bO_\bM_\bP_\bO_\bN_\bE_\bN_\bT_\b__\bT_\bY_\bP_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by\n- * _\bC_\bH_\bA_\bN_\bN_\bE_\bL_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bu_\bc_\bT_\by_\bp_\be _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n- * _\bC_\bH_\bA_\bN_\bN_\bE_\bL_\b__\bN_\bO_\bN_\b__\bA_\bN_\bO_\bN_\bY_\bM_\bO_\bU_\bS_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bu_\bc_\bT_\by_\bp_\be_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * _\bc_\bo_\bm_\bp_\bo_\bs_\bi_\bn_\bg_\b(_\b)_\b \n- * _\bC_\bH_\bA_\bT_\b__\bC_\bO_\bM_\bM_\bA_\bN_\bD_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bC\bC_\bh\bh_\ba\ba_\bt\bt_\bb\bb_\bo\bo_\bt\bt_\b _\bC\bC_\bo\bo_\bm\bm_\bm\bm_\ba\ba_\bn\bn_\bd\bd o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n- * _\bc_\bl_\bi_\be_\bn_\bt_\b__\bt_\by_\bp_\be_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\bp_\br_\bo_\bp_\be_\br_\bt_\by_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bC\bC_\bo\bo_\bm\bm_\bm\bm_\ba\ba_\bn\bn_\bd\bd * _\bc_\bo_\bn_\bf_\bi_\br_\bm_\b__\bq_\br_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by\n- o _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn_\b _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bC_\bo_\bm_\bm_\ba_\bn_\bd_\bA_\bc_\bc_\be_\bs_\bs_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n- _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bC_\bO_\bM_\bP_\bO_\bN_\bE_\bN_\bT_\b__\bA_\bV_\bA_\bT_\bA_\bR_\b * _\bC_\bo_\bn_\bf_\bi_\br_\bm_\ba_\bt_\bi_\bo_\bn_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by * _\bc_\bo_\br_\br_\be_\bc_\bt_\b(_\b)_\b \n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n- _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * c4a8ec35a0e8_per_room_user_nick * _\bC_\bO_\bM_\bP_\bO_\bN_\bE_\bN_\bT_\b__\bA_\bV_\bA_\bT_\bA_\bR_\b \n+ o _\bm_\bo_\bd_\bu_\bl_\be _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ * _\bC\bC_\ba\ba_\br\br_\bb\bb_\bo\bo_\bn\bn_\bs\bs o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n+ * _\bC_\bA_\bT_\bE_\bG_\bO_\bR_\bY_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd * _\bC_\bO_\bM_\bP_\bO_\bN_\bE_\bN_\bT_\b__\bN_\bA_\bM_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ * _\bC_\bH_\bA_\bN_\bN_\bE_\bL_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bu_\bc_\bT_\by_\bp_\be o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ * _\bC_\bH_\bA_\bN_\bN_\bE_\bL_\b__\bN_\bO_\bN_\b__\bA_\bN_\bO_\bN_\bY_\bM_\bO_\bU_\bS_\b * _\bC_\bO_\bM_\bP_\bO_\bN_\bE_\bN_\bT_\b__\bT_\bY_\bP_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bu_\bc_\bT_\by_\bp_\be _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n+ * _\bC_\bH_\bA_\bT_\b__\bC_\bO_\bM_\bM_\bA_\bN_\bD_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd * _\bc_\bo_\bm_\bp_\bo_\bs_\bi_\bn_\bg_\b(_\b)_\b \n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bC\bC_\bh\bh_\ba\ba_\bt\bt_\bb\bb_\bo\bo_\bt\bt_\b _\bC\bC_\bo\bo_\bm\bm_\bm\bm_\ba\ba_\bn\bn_\bd\bd o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n+ * _\bc_\bl_\bi_\be_\bn_\bt_\b__\bt_\by_\bp_\be_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt * _\bc_\bo_\bn_\bf_\bi_\br_\bm_\b__\bq_\br_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by\n+ _\bp_\br_\bo_\bp_\be_\br_\bt_\by_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bC\bC_\bo\bo_\bm\bm_\bm\bm_\ba\ba_\bn\bn_\bd\bd o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n+ o _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn_\b _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bC_\bo_\bm_\bm_\ba_\bn_\bd_\bA_\bc_\bc_\be_\bs_\bs_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn * _\bC_\bo_\bn_\bf_\bi_\br_\bm_\ba_\bt_\bi_\bo_\bn_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn\n+ _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b) _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b)\n+ * _\bc_\bo_\br_\br_\be_\bc_\bt_\b(_\b)_\b \n+ _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b)\n *\b**\b**\b**\b**\b* D\bD *\b**\b**\b**\b**\b*\n- * _\bd_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bS_\be_\ba_\br_\bc_\bh_\bR_\be_\bs_\bu_\bl_\bt_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bT_\ba_\bb_\bl_\be_\bR_\be_\bs_\bu_\bl_\bt_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- * _\bd_\bi_\bs_\bp_\bl_\ba_\by_\be_\bd_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bd_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn_\b * _\bd_\bi_\bs_\bp_\bl_\ba_\by_\be_\bd_\b(_\b)_\b \n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bS_\be_\ba_\br_\bc_\bh_\bR_\be_\bs_\bu_\bl_\bt _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n+ o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bT_\ba_\bb_\bl_\be_\bR_\be_\bs_\bu_\bl_\bt _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n *\b**\b**\b**\b**\b* E\bE *\b**\b**\b**\b**\b*\n- * e91195719c2c_store_users_avatars_persistently * _\be_\bx_\bt_\be_\bn_\bd_\be_\bd_\b__\ba_\bw_\ba_\by_\b(_\b)_\b \n- o _\bm_\bo_\bd_\bu_\bl_\be _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\be_\bn_\bt_\br_\by_\bp_\bo_\bi_\bn_\bt_\b(_\b)_\b _\b(_\bi_\bn_\b _\bm_\bo_\bd_\bu_\bl_\be_\b _\bs_\bl_\bi_\bd_\bg_\be_\b) o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * e91195719c2c_store_users_avatars_persistently * _\be_\bn_\bt_\br_\by_\bp_\bo_\bi_\bn_\bt_\b(_\b)_\b _\b(_\bi_\bn_\b _\bm_\bo_\bd_\bu_\bl_\be\n+ o _\bm_\bo_\bd_\bu_\bl_\be _\bs_\bl_\bi_\bd_\bg_\be_\b)\n+ * _\be_\bx_\bt_\be_\bn_\bd_\be_\bd_\b__\ba_\bw_\ba_\by_\b(_\b)_\b \n+ _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b)\n *\b**\b**\b**\b**\b* F\bF *\b**\b**\b**\b**\b*\n * _\bf_\be_\bt_\bc_\bh_\b__\bv_\bc_\ba_\br_\bd_\b(_\b)_\b * _\bf_\bi_\bl_\bl_\b__\bp_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\bs_\b(_\b)_\b \n _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC\n * _\bf_\bi_\be_\bl_\bd_\bs_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bS_\be_\ba_\br_\bc_\bh_\bR_\be_\bs_\bu_\bl_\bt _\bm_\be_\bt_\bh_\bo_\bd_\b)\n _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * _\bF_\bo_\br_\bm_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn_\b _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b)\n o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bT_\ba_\bb_\bl_\be_\bR_\be_\bs_\bu_\bl_\bt * _\bF_\bo_\br_\bm_\bF_\bi_\be_\bl_\bd_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn\n@@ -172,24 +164,24 @@\n _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt _\bm_\be_\bt_\bh_\bo_\bd_\b)\n _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bF_\bo_\br_\bm_\bF_\bi_\be_\bl_\bd\n * _\bg_\be_\bt_\b__\bp_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b(_\b)_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bS_\be_\ba_\br_\bc_\bh_\bR_\be_\bs_\bu_\bl_\bt\n o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC _\bm_\be_\bt_\bh_\bo_\bd_\b)\n _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bT_\ba_\bb_\bl_\be_\bR_\be_\bs_\bu_\bl_\bt\n * _\bg_\be_\bt_\b__\bp_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b__\bb_\by_\b__\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b(_\b)_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bg_\bo_\bn_\be_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bg_\bo_\bn_\be_\b(_\b)_\b _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- * _\bg_\be_\bt_\b__\bq_\br_\b__\bt_\be_\bx_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by _\bm_\be_\bt_\bh_\bo_\bd_\b)\n _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- * _\bg_\be_\bt_\b__\bs_\by_\bs_\bt_\be_\bm_\b__\bp_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b(_\b)_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bG_\bR_\bO_\bU_\bP_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bu_\bc_\bT_\by_\bp_\be\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ * _\bg_\be_\bt_\b__\bq_\br_\b__\bt_\be_\bx_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bG_\bR_\bO_\bU_\bP_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bu_\bc_\bT_\by_\bp_\be\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bg_\be_\bt_\b__\bs_\by_\bs_\bt_\be_\bm_\b__\bp_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b(_\b)_\b \n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC\n _\bm_\be_\bt_\bh_\bo_\bd_\b)\n *\b**\b**\b**\b**\b* H\bH *\b**\b**\b**\b**\b*\n * _\bh_\ba_\bn_\bd_\bl_\be_\br_\b * _\bH_\bA_\bS_\b__\bS_\bU_\bB_\bJ_\bE_\bC_\bT_\b \n _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bn_\bf_\bi_\br_\bm_\ba_\bt_\bi_\bo_\bn _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC\n * _\bh_\ba_\bn_\bd_\bl_\be_\br_\b__\ba_\br_\bg_\bs_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bn_\bf_\bi_\br_\bm_\ba_\bt_\bi_\bo_\bn * _\bH_\bE_\bL_\bP_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd\n@@ -199,26 +191,22 @@\n _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n * _\bH_\bA_\bS_\b__\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN_\b \n _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC\n _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC\n _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n *\b**\b**\b**\b**\b* I\bI *\b**\b**\b**\b**\b*\n- * _\bi_\bm_\ba_\bg_\be_\b__\bu_\br_\bl_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bF_\bo_\br_\bm_\bF_\bi_\be_\bl_\bd * _\bi_\bn_\bv_\bi_\bt_\be_\b__\bt_\bo_\b(_\b)_\b \n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)_\b o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt * _\bi_\bt_\be_\bm_\bs_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bS_\be_\ba_\br_\bc_\bh_\bR_\be_\bs_\bu_\bl_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- * _\bi_\bn_\bp_\bu_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bT_\ba_\bb_\bl_\be_\bR_\be_\bs_\bu_\bl_\bt\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ * _\bi_\bm_\ba_\bg_\be_\b__\bu_\br_\bl_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bF_\bo_\br_\bm_\bF_\bi_\be_\bl_\bd * _\bi_\bn_\bv_\bi_\bt_\be_\b__\bt_\bo_\b(_\b)_\b \n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)_\b o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n+ _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt * _\bi_\bt_\be_\bm_\bs_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bS_\be_\ba_\br_\bc_\bh_\bR_\be_\bs_\bu_\bl_\bt\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ * _\bi_\bn_\bp_\bu_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bT_\ba_\bb_\bl_\be_\bR_\be_\bs_\bu_\bl_\bt\n+ o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n _\bm_\be_\bt_\bh_\bo_\bd_\b)\n o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n _\bm_\be_\bt_\bh_\bo_\bd_\b)\n *\b**\b**\b**\b**\b* J\bJ *\b**\b**\b**\b**\b*\n * _\bJ\bJ_\bI\bI_\bD\bD_\b _\bL\bL_\bo\bo_\bc\bc_\ba\ba_\bl\bl_\b _\bP\bP_\ba\ba_\br\br_\bt\bt\n * _\bj_\bi_\bd_\b__\bu_\bs_\be_\br_\bn_\ba_\bm_\be_\b__\bt_\bo_\b__\bl_\be_\bg_\ba_\bc_\by_\b__\bi_\bd_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n@@ -298,170 +286,163 @@\n o _\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn\n *\b**\b**\b**\b**\b* N\bN *\b**\b**\b**\b**\b*\n * _\bN_\bA_\bM_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd * _\bn_\ba_\bm_\be_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt\n _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\bp_\br_\bo_\bp_\be_\br_\bt_\by_\b)\n * _\bN_\bO_\bD_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd\n _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n *\b**\b**\b**\b**\b* O\bO *\b**\b**\b**\b**\b*\n- * _\bO\bO_\bf\bf_\bf\bf_\bi\bi_\bc\bc_\bi\bi_\ba\ba_\bl\bl_\b _\bC\bC_\bl\bl_\bi\bi_\be\be_\bn\bn_\bt\bt * _\bo_\bn_\b__\bk_\bi_\bc_\bk_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC\n- * _\bo_\bf_\bf_\bl_\bi_\bn_\be_\b(_\b)_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt * _\bo_\bn_\b__\bl_\be_\ba_\bv_\be_\b__\bg_\br_\bo_\bu_\bp_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bo_\bn_\b__\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\b__\bm_\bo_\bd_\be_\br_\ba_\bt_\be_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bo_\bn_\b__\ba_\bv_\ba_\bt_\ba_\br_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\b__\bp_\ba_\bu_\bs_\be_\bd_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\b__\bp_\br_\be_\bs_\be_\bn_\bc_\be_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bo_\bn_\b__\bc_\bo_\bm_\bp_\bo_\bs_\bi_\bn_\bg_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\b__\br_\be_\ba_\bc_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bo_\bn_\b__\bc_\bo_\br_\br_\be_\bc_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\b__\br_\be_\bt_\br_\ba_\bc_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bo_\bn_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bg_\br_\bo_\bu_\bp_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\b__\bs_\be_\ba_\br_\bc_\bh_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bo_\bn_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)_\b o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bo_\bn_\b__\bs_\be_\bt_\b__\ba_\bf_\bf_\bi_\bl_\bi_\ba_\bt_\bi_\bo_\bn_\b(_\b)_\b \n- * _\bo_\bn_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\be_\bd_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\b__\bs_\be_\bt_\b__\bc_\bo_\bn_\bf_\bi_\bg_\b(_\b)_\b \n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bo_\bn_\b__\bf_\bi_\bl_\be_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\b__\bs_\be_\bt_\b__\bs_\bu_\bb_\bj_\be_\bc_\bt_\b(_\b)_\b \n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bo_\bn_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\ba_\bc_\bc_\be_\bp_\bt_\b(_\b)_\b o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bo_\bn_\b__\bs_\bt_\bi_\bc_\bk_\be_\br_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n- * _\bo_\bn_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\bd_\be_\bl_\be_\bt_\be_\b(_\b)_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n- * _\bo_\bn_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bo_\bn_\b__\bt_\be_\bx_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bo_\bn_\b__\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\bl_\bi_\bn_\be_\b(_\b)_\b \n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bo_\bn_\b__\bi_\bn_\bv_\bi_\bt_\ba_\bt_\bi_\bo_\bn_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n-*\b**\b**\b**\b**\b* P\bP *\b**\b**\b**\b**\b*\n- * _\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn * _\bp_\br_\bi_\bv_\ba_\bt_\be_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bF_\bo_\br_\bm_\bF_\bi_\be_\bl_\bd\n- _\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- * _\bp_\ba_\bu_\bs_\be_\bd_\b(_\b)_\b * _\bp_\br_\bo_\bm_\bp_\bt_\b \n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bn_\bf_\bi_\br_\bm_\ba_\bt_\bi_\bo_\bn\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bP_\bR_\bO_\bP_\bE_\bR_\b__\bR_\bE_\bC_\bE_\bI_\bP_\bT_\bS_\b \n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ * _\bO\bO_\bf\bf_\bf\bf_\bi\bi_\bc\bc_\bi\bi_\ba\ba_\bl\bl_\b _\bC\bC_\bl\bl_\bi\bi_\be\be_\bn\bn_\bt\bt * _\bo_\bn_\b__\bk_\bi_\bc_\bk_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC\n+ * _\bo_\bf_\bf_\bl_\bi_\bn_\be_\b(_\b)_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bo_\bn_\b__\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\b__\bl_\be_\ba_\bv_\be_\b__\bg_\br_\bo_\bu_\bp_\b(_\b)_\b \n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bo_\bn_\b__\ba_\bv_\ba_\bt_\ba_\br_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\b__\bm_\bo_\bd_\be_\br_\ba_\bt_\be_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC * _\bo_\bn_\b__\bp_\ba_\bu_\bs_\be_\bd_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bo_\bn_\b__\bc_\bo_\bm_\bp_\bo_\bs_\bi_\bn_\bg_\b(_\b)_\b * _\bo_\bn_\b__\bp_\br_\be_\bs_\be_\bn_\bc_\be_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bo_\bn_\b__\bc_\bo_\br_\br_\be_\bc_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\b__\br_\be_\ba_\bc_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bo_\bn_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bg_\br_\bo_\bu_\bp_\b(_\b)_\b * _\bo_\bn_\b__\br_\be_\bt_\br_\ba_\bc_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bo_\bn_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)_\b * _\bo_\bn_\b__\bs_\be_\ba_\br_\bc_\bh_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bo_\bn_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\be_\bd_\b(_\b)_\b * _\bo_\bn_\b__\bs_\be_\bt_\b__\ba_\bf_\bf_\bi_\bl_\bi_\ba_\bt_\bi_\bo_\bn_\b(_\b)_\b \n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bo_\bn_\b__\bf_\bi_\bl_\be_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn * _\bo_\bn_\b__\bs_\be_\bt_\b__\bc_\bo_\bn_\bf_\bi_\bg_\b(_\b)_\b \n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bo_\bn_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\ba_\bc_\bc_\be_\bp_\bt_\b(_\b)_\b * _\bo_\bn_\b__\bs_\be_\bt_\b__\bs_\bu_\bb_\bj_\be_\bc_\bt_\b(_\b)_\b \n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC\n+ * _\bo_\bn_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\bd_\be_\bl_\be_\bt_\be_\b(_\b)_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt * _\bo_\bn_\b__\bs_\bt_\bi_\bc_\bk_\be_\br_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bo_\bn_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)_\b o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bo_\bn_\b__\bt_\be_\bx_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ * _\bo_\bn_\b__\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bo_\bn_\bl_\bi_\bn_\be_\b(_\b)_\b \n+ * _\bo_\bn_\b__\bi_\bn_\bv_\bi_\bt_\ba_\bt_\bi_\bo_\bn_\b(_\b)_\b _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+*\b**\b**\b**\b**\b* P\bP *\b**\b**\b**\b**\b*\n+ * _\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn * _\bp_\br_\bi_\bv_\ba_\bt_\be_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bF_\bo_\br_\bm_\bF_\bi_\be_\bl_\bd\n+ _\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ * _\bp_\ba_\bu_\bs_\be_\bd_\b(_\b)_\b * _\bp_\br_\bo_\bm_\bp_\bt_\b \n+ _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bn_\bf_\bi_\br_\bm_\ba_\bt_\bi_\bo_\bn\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bP_\bR_\bO_\bP_\bE_\bR_\b__\bR_\bE_\bC_\bE_\bI_\bP_\bT_\bS_\b \n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n *\b**\b**\b**\b**\b* Q\bQ *\b**\b**\b**\b**\b*\n * _\bQ_\bR_\bC_\bO_\bD_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b._\bR_\be_\bg_\bi_\bs_\bt_\br_\ba_\bt_\bi_\bo_\bn_\bT_\by_\bp_\be_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n *\b**\b**\b**\b**\b* R\bR *\b**\b**\b**\b**\b*\n- * _\br_\ba_\bi_\bs_\be_\b__\bi_\bf_\b__\bn_\bo_\bt_\b__\ba_\bu_\bt_\bh_\bo_\br_\bi_\bz_\be_\bd_\b(_\b)_\b * _\bR_\be_\bg_\bi_\bs_\bt_\br_\ba_\bt_\bi_\bo_\bn_\bT_\by_\bp_\be_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b)\n- * _\br_\be_\ba_\bc_\bt_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt * _\br_\be_\bj_\be_\bc_\bt_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)_\b \n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt * _\br_\be_\bm_\bo_\bv_\be_\b(_\b)_\b \n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bB_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bB_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt * _\br_\be_\bm_\bo_\bv_\be_\b__\bp_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b(_\b)_\b \n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\br_\be_\bc_\be_\bi_\bv_\be_\bd_\b(_\b)_\b o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\br_\be_\bq_\bu_\bi_\br_\be_\bd_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bF_\bo_\br_\bm_\bF_\bi_\be_\bl_\bd\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bR_\bE_\bS_\bO_\bU_\bR_\bC_\bE_\b \n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt * _\br_\be_\bt_\br_\ba_\bc_\bt_\b(_\b)_\b \n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bR_\bE_\bG_\bI_\bS_\bT_\bR_\bA_\bT_\bI_\bO_\bN_\b__\bF_\bI_\bE_\bL_\bD_\bS_\b o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bR_\bE_\bG_\bI_\bS_\bT_\bR_\bA_\bT_\bI_\bO_\bN_\b__\bI_\bN_\bS_\bT_\bR_\bU_\bC_\bT_\bI_\bO_\bN_\bS_\b o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by * _\bR\bR_\bo\bo_\bs\bs_\bt\bt_\be\be_\br\br\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * _\bR_\bO_\bS_\bT_\bE_\bR_\b__\bG_\bR_\bO_\bU_\bP_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by\n- * _\bR_\bE_\bG_\bI_\bS_\bT_\bR_\bA_\bT_\bI_\bO_\bN_\b__\bT_\bY_\bP_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * _\br_\bu_\bn_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\br_\ba_\bi_\bs_\be_\b__\bi_\bf_\b__\bn_\bo_\bt_\b__\ba_\bu_\bt_\bh_\bo_\br_\bi_\bz_\be_\bd_\b(_\b)_\b * _\br_\be_\bj_\be_\bc_\bt_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)_\b \n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt\n+ * _\br_\be_\ba_\bc_\bt_\b(_\b)_\b _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\br_\be_\bm_\bo_\bv_\be_\b(_\b)_\b \n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bB_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\br_\be_\bc_\be_\bi_\bv_\be_\bd_\b(_\b)_\b o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bB_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs\n+ _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt * _\br_\be_\bm_\bo_\bv_\be_\b__\bp_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b(_\b)_\b \n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bR_\bE_\bG_\bI_\bS_\bT_\bR_\bA_\bT_\bI_\bO_\bN_\b__\bF_\bI_\bE_\bL_\bD_\bS_\b o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * _\br_\be_\bq_\bu_\bi_\br_\be_\bd_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bF_\bo_\br_\bm_\bF_\bi_\be_\bl_\bd\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * _\bR_\bE_\bS_\bO_\bU_\bR_\bC_\bE_\b \n+ * _\bR_\bE_\bG_\bI_\bS_\bT_\bR_\bA_\bT_\bI_\bO_\bN_\b__\bI_\bN_\bS_\bT_\bR_\bU_\bC_\bT_\bI_\bO_\bN_\bS_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by * _\br_\be_\bt_\br_\ba_\bc_\bt_\b(_\b)_\b \n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bR_\bE_\bG_\bI_\bS_\bT_\bR_\bA_\bT_\bI_\bO_\bN_\b__\bT_\bY_\bP_\bE_\b o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by * _\bR\bR_\bo\bo_\bs\bs_\bt\bt_\be\be_\br\br\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * _\bR_\bO_\bS_\bT_\bE_\bR_\b__\bG_\bR_\bO_\bU_\bP_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by\n+ * _\bR_\be_\bg_\bi_\bs_\bt_\br_\ba_\bt_\bi_\bo_\bn_\bT_\by_\bp_\be_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ * _\br_\bu_\bn_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bm_\bm_\ba_\bn_\bd\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b)\n *\b**\b**\b**\b**\b* S\bS *\b**\b**\b**\b**\b*\n- * _\bS_\bE_\bA_\bR_\bC_\bH_\b__\bF_\bI_\bE_\bL_\bD_\bS_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by * _\bS_\bi_\bg_\bT_\be_\br_\bm_\bI_\bn_\bt_\be_\br_\br_\bu_\bp_\bt\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * _\bS_\bI_\bN_\bG_\bL_\bE_\b__\bS_\bT_\bE_\bP_\b__\bF_\bO_\bR_\bM_\b \n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b._\bR_\be_\bg_\bi_\bs_\bt_\br_\ba_\bt_\bi_\bo_\bn_\bT_\by_\bp_\be\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- * _\bS_\bE_\bA_\bR_\bC_\bH_\b__\bI_\bN_\bS_\bT_\bR_\bU_\bC_\bT_\bI_\bO_\bN_\bS_\b * slidge\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) o _\bm_\bo_\bd_\bu_\bl_\be\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by * slidge.command\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) o _\bm_\bo_\bd_\bu_\bl_\be\n- * _\bS_\bE_\bA_\bR_\bC_\bH_\b__\bT_\bI_\bT_\bL_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by * slidge.command.register\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) o _\bm_\bo_\bd_\bu_\bl_\be\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by * slidge.contact\n- _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) o _\bm_\bo_\bd_\bu_\bl_\be\n- * _\bS_\be_\ba_\br_\bc_\bh_\bR_\be_\bs_\bu_\bl_\bt_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn * slidge.group\n- _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b) o _\bm_\bo_\bd_\bu_\bl_\be\n- * _\bs_\be_\bn_\bd_\b__\bf_\bi_\bl_\be_\b(_\b)_\b * slidge.main\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\bm_\bo_\bd_\bu_\bl_\be\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt * _\bS_\bP_\bE_\bC_\bI_\bA_\bL_\b__\bM_\bS_\bG_\b__\bI_\bD_\b__\bP_\bR_\bE_\bF_\bI_\bX_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt * _\bS_\bT_\bA_\bB_\bL_\bE_\b__\bA_\bR_\bC_\bH_\bI_\bV_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- * _\bs_\be_\bn_\bd_\b__\bg_\ba_\bt_\be_\bw_\ba_\by_\b__\bi_\bn_\bv_\bi_\bt_\be_\b(_\b)_\b o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bs_\bu_\bc_\bc_\be_\bs_\bs_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bn_\bf_\bi_\br_\bm_\ba_\bt_\bi_\bo_\bn\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) * superduper\n- * _\bs_\be_\bn_\bd_\b__\bg_\ba_\bt_\be_\bw_\ba_\by_\b__\bm_\be_\bs_\bs_\ba_\bg_\be_\b(_\b)_\b o _\bm_\bo_\bd_\bu_\bl_\be\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * superduper.gateway\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn o _\bm_\bo_\bd_\bu_\bl_\be\n- _\bm_\be_\bt_\bh_\bo_\bd_\b) * superduper.group\n- * _\bs_\be_\bn_\bd_\b__\bg_\ba_\bt_\be_\bw_\ba_\by_\b__\bs_\bt_\ba_\bt_\bu_\bs_\b(_\b)_\b o _\bm_\bo_\bd_\bu_\bl_\be\n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * superduper.session\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn o _\bm_\bo_\bd_\bu_\bl_\be\n- _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bs_\be_\bn_\bd_\b__\bi_\bn_\bi_\bt_\bi_\ba_\bl_\b__\bp_\br_\be_\bs_\be_\bn_\bc_\be_\b(_\b)_\b \n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n+ * _\bS_\bE_\bA_\bR_\bC_\bH_\b__\bF_\bI_\bE_\bL_\bD_\bS_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by * _\bS_\bI_\bN_\bG_\bL_\bE_\b__\bS_\bT_\bE_\bP_\b__\bF_\bO_\bR_\bM_\b \n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b._\bR_\be_\bg_\bi_\bs_\bt_\br_\ba_\bt_\bi_\bo_\bn_\bT_\by_\bp_\be\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * slidge\n+ * _\bS_\bE_\bA_\bR_\bC_\bH_\b__\bI_\bN_\bS_\bT_\bR_\bU_\bC_\bT_\bI_\bO_\bN_\bS_\b o _\bm_\bo_\bd_\bu_\bl_\be\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * slidge.command\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by o _\bm_\bo_\bd_\bu_\bl_\be\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * slidge.command.register\n+ * _\bS_\bE_\bA_\bR_\bC_\bH_\b__\bT_\bI_\bT_\bL_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by o _\bm_\bo_\bd_\bu_\bl_\be\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * slidge.contact\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by o _\bm_\bo_\bd_\bu_\bl_\be\n+ _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) * slidge.group\n+ * _\bS_\be_\ba_\br_\bc_\bh_\bR_\be_\bs_\bu_\bl_\bt_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn o _\bm_\bo_\bd_\bu_\bl_\be\n+ _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b) * slidge.main\n+ * _\bs_\be_\bn_\bd_\b__\bf_\bi_\bl_\be_\b(_\b)_\b o _\bm_\bo_\bd_\bu_\bl_\be\n+ _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bS_\bP_\bE_\bC_\bI_\bA_\bL_\b__\bM_\bS_\bG_\b__\bI_\bD_\b__\bP_\bR_\bE_\bF_\bI_\bX_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n+ * _\bs_\be_\bn_\bd_\b__\bg_\ba_\bt_\be_\bw_\ba_\by_\b__\bi_\bn_\bv_\bi_\bt_\be_\b(_\b)_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) * _\bS_\bT_\bA_\bB_\bL_\bE_\b__\bA_\bR_\bC_\bH_\bI_\bV_\bE_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ * _\bs_\be_\bn_\bd_\b__\bg_\ba_\bt_\be_\bw_\ba_\by_\b__\bm_\be_\bs_\bs_\ba_\bg_\be_\b(_\b)_\b * _\bs_\bu_\bc_\bc_\be_\bs_\bs_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bC_\bo_\bn_\bf_\bi_\br_\bm_\ba_\bt_\bi_\bo_\bn\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn * superduper\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\bm_\bo_\bd_\bu_\bl_\be\n+ * _\bs_\be_\bn_\bd_\b__\bg_\ba_\bt_\be_\bw_\ba_\by_\b__\bs_\bt_\ba_\bt_\bu_\bs_\b(_\b)_\b * superduper.gateway\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\bm_\bo_\bd_\bu_\bl_\be\n+ o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn * superduper.group\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b) o _\bm_\bo_\bd_\bu_\bl_\be\n+ * _\bs_\be_\bn_\bd_\b__\bi_\bn_\bi_\bt_\bi_\ba_\bl_\b__\bp_\br_\be_\bs_\be_\bn_\bc_\be_\b(_\b)_\b * superduper.session\n+ _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt o _\bm_\bo_\bd_\bu_\bl_\be\n _\bm_\be_\bt_\bh_\bo_\bd_\b)\n o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bs_\be_\bn_\bd_\b__\bq_\br_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bs_\be_\bn_\bd_\b__\bq_\br_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b)\n o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n _\bm_\be_\bt_\bh_\bo_\bd_\b)\n o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b._\bS_\be_\bs_\bs_\bi_\bo_\bn\n _\bm_\be_\bt_\bh_\bo_\bd_\b)\n * _\bs_\be_\bn_\bd_\b__\bt_\be_\bx_\bt_\b(_\b)_\b \n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n- _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by\n- _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\ba_\bt_\be_\bw_\ba_\by_\b._\bG_\ba_\bt_\be_\bw_\ba_\by_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- * _\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn_\b _\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b)\n- * _\bs_\be_\bt_\b__\ba_\bv_\ba_\bt_\ba_\br_\b(_\b)_\b \n- _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bg_\br_\bo_\bu_\bp_\b._\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n- o _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC_\b _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bS_\be_\bs_\bs_\bi_\bo_\bn_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn\n+ _\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn_\b)\n+ * _\bs_\be_\bt_\b__\ba_\bv_\ba_\bt_\ba_\br_\b(_\b)_\b _\b(_\bs_\bu_\bp_\be_\br_\bd_\bu_\bp_\be_\br_\b._\bg_\br_\bo_\bu_\bp_\b._\bM_\bU_\bC\n+ _\bm_\be_\bt_\bh_\bo_\bd_\b)\n+ * _\bS_\bi_\bg_\bT_\be_\br_\bm_\bI_\bn_\bt_\be_\br_\br_\bu_\bp_\bt\n *\b**\b**\b**\b**\b* T\bT *\b**\b**\b**\b**\b*\n * _\bT_\ba_\bb_\bl_\be_\bR_\be_\bs_\bu_\bl_\bt_\b _\b(_\bc_\bl_\ba_\bs_\bs_\b _\bi_\bn_\b _\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b) * _\bT_\bw_\bo_\bF_\ba_\bc_\bt_\bo_\br_\bN_\bo_\bt_\bR_\be_\bq_\bu_\bi_\br_\be_\bd\n * _\bT_\bW_\bO_\b__\bF_\bA_\bC_\bT_\bO_\bR_\b__\bC_\bO_\bD_\bE_\b * _\bt_\by_\bp_\be_\b \n _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b._\bR_\be_\bg_\bi_\bs_\bt_\br_\ba_\bt_\bi_\bo_\bn_\bT_\by_\bp_\be _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b._\bF_\bo_\br_\bm_\bF_\bi_\be_\bl_\bd\n _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b) _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\b)\n *\b**\b**\b**\b**\b* U\bU *\b**\b**\b**\b**\b*\n * _\bu_\bn_\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b(_\b)_\b _\b(_\bs_\bl_\bi_\bd_\bg_\be_\b._\bB_\ba_\bs_\be_\bG_\ba_\bt_\be_\bw_\ba_\by * _\bu_\bp_\bd_\ba_\bt_\be_\b__\bi_\bn_\bf_\bo_\b(_\b)_\b \n"}]}, {"source1": "./usr/share/doc/python-slidge-doc/html/index.html", "source2": "./usr/share/doc/python-slidge-doc/html/index.html", "unified_diff": "@@ -495,37 +495,14 @@\n
            • LegacyContact.reject_friend_request()
            • \n
            • LegacyContact.on_friend_request()
            • \n
            • LegacyContact.on_friend_delete()
            • \n
            • LegacyContact.on_friend_accept()
            • \n
            • LegacyContact.unsubscribe()
            • \n
            • LegacyContact.update_info()
            • \n
            • LegacyContact.fetch_vcard()
            • \n-
            • LegacyContact.avatar_id
            • \n-
            • LegacyContact.avatar
            • \n-
            • LegacyContact.set_avatar()
            • \n-
            • LegacyContact.invite_to()
            • \n-
            • LegacyContact.active()
            • \n-
            • LegacyContact.composing()
            • \n-
            • LegacyContact.paused()
            • \n-
            • LegacyContact.inactive()
            • \n-
            • LegacyContact.gone()
            • \n-
            • LegacyContact.send_file()
            • \n-
            • LegacyContact.send_text()
            • \n-
            • LegacyContact.correct()
            • \n-
            • LegacyContact.react()
            • \n-
            • LegacyContact.retract()
            • \n-
            • LegacyContact.ack()
            • \n-
            • LegacyContact.received()
            • \n-
            • LegacyContact.displayed()
            • \n-
            • LegacyContact.online()
            • \n-
            • LegacyContact.away()
            • \n-
            • LegacyContact.extended_away()
            • \n-
            • LegacyContact.busy()
            • \n-
            • LegacyContact.offline()
            • \n-
            • LegacyContact.available_emojis()
            • \n
            \n
          • \n
          • LegacyRoster\n
          • \n
          • LegacyParticipant\n
          • \n
          • LegacyMUC\n
          • \n
          \n \n \n \n
        • slidge.main
            \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -191,37 +191,14 @@\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\br_\be_\bj_\be_\bc_\bt_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bo_\bn_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bo_\bn_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\bd_\be_\bl_\be_\bt_\be_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bo_\bn_\b__\bf_\br_\bi_\be_\bn_\bd_\b__\ba_\bc_\bc_\be_\bp_\bt_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bu_\bn_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bb_\be_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bu_\bp_\bd_\ba_\bt_\be_\b__\bi_\bn_\bf_\bo_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bf_\be_\bt_\bc_\bh_\b__\bv_\bc_\ba_\br_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\ba_\bv_\ba_\bt_\ba_\br_\b__\bi_\bd\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\ba_\bv_\ba_\bt_\ba_\br\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bs_\be_\bt_\b__\ba_\bv_\ba_\bt_\ba_\br_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bi_\bn_\bv_\bi_\bt_\be_\b__\bt_\bo_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bc_\bo_\bm_\bp_\bo_\bs_\bi_\bn_\bg_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bp_\ba_\bu_\bs_\be_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bg_\bo_\bn_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bs_\be_\bn_\bd_\b__\bf_\bi_\bl_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bs_\be_\bn_\bd_\b__\bt_\be_\bx_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bc_\bo_\br_\br_\be_\bc_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\br_\be_\ba_\bc_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\br_\be_\bt_\br_\ba_\bc_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\ba_\bc_\bk_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\br_\be_\bc_\be_\bi_\bv_\be_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bd_\bi_\bs_\bp_\bl_\ba_\by_\be_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bo_\bn_\bl_\bi_\bn_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\ba_\bw_\ba_\by_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\be_\bx_\bt_\be_\bn_\bd_\be_\bd_\b__\ba_\bw_\ba_\by_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bb_\bu_\bs_\by_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\bo_\bf_\bf_\bl_\bi_\bn_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bC_\bo_\bn_\bt_\ba_\bc_\bt_\b._\ba_\bv_\ba_\bi_\bl_\ba_\bb_\bl_\be_\b__\be_\bm_\bo_\bj_\bi_\bs_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br\n # _\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br_\b._\bb_\by_\b__\bl_\be_\bg_\ba_\bc_\by_\b__\bi_\bd_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br_\b._\bl_\be_\bg_\ba_\bc_\by_\b__\bi_\bd_\b__\bt_\bo_\b__\bj_\bi_\bd_\b__\bu_\bs_\be_\br_\bn_\ba_\bm_\be\n _\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br_\b._\bj_\bi_\bd_\b__\bu_\bs_\be_\br_\bn_\ba_\bm_\be_\b__\bt_\bo_\b__\bl_\be_\bg_\ba_\bc_\by_\b__\bi_\bd\n _\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bR_\bo_\bs_\bt_\be_\br_\b._\bf_\bi_\bl_\bl_\b(_\b)\n@@ -241,33 +218,14 @@\n # _\bL_\be_\bg_\ba_\bc_\by_\bB_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs_\b._\br_\be_\bm_\bo_\bv_\be_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt\n # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bs_\be_\bn_\bd_\b__\bi_\bn_\bi_\bt_\bi_\ba_\bl_\b__\bp_\br_\be_\bs_\be_\bn_\bc_\be\n _\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bl_\be_\ba_\bv_\be_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bk_\bi_\bc_\bk_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bb_\ba_\bn_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bo_\bn_\bl_\bi_\bn_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\ba_\bw_\ba_\by_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\be_\bx_\bt_\be_\bn_\bd_\be_\bd_\b__\ba_\bw_\ba_\by_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bb_\bu_\bs_\by_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bo_\bf_\bf_\bl_\bi_\bn_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bi_\bn_\bv_\bi_\bt_\be_\b__\bt_\bo_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bc_\bo_\bm_\bp_\bo_\bs_\bi_\bn_\bg_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bp_\ba_\bu_\bs_\be_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bi_\bn_\ba_\bc_\bt_\bi_\bv_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bg_\bo_\bn_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\ba_\bc_\bk_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\br_\be_\bc_\be_\bi_\bv_\be_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bd_\bi_\bs_\bp_\bl_\ba_\by_\be_\bd_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bs_\be_\bn_\bd_\b__\bf_\bi_\bl_\be_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bs_\be_\bn_\bd_\b__\bt_\be_\bx_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\bc_\bo_\br_\br_\be_\bc_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\br_\be_\ba_\bc_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bP_\ba_\br_\bt_\bi_\bc_\bi_\bp_\ba_\bn_\bt_\b._\br_\be_\bt_\br_\ba_\bc_\bt_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bS_\bT_\bA_\bB_\bL_\bE_\b__\bA_\bR_\bC_\bH_\bI_\bV_\bE\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bK_\bE_\bE_\bP_\b__\bB_\bA_\bC_\bK_\bF_\bI_\bL_\bL_\bE_\bD_\b__\bP_\bA_\bR_\bT_\bI_\bC_\bI_\bP_\bA_\bN_\bT_\bS\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bH_\bA_\bS_\b__\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bH_\bA_\bS_\b__\bS_\bU_\bB_\bJ_\bE_\bC_\bT\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bu_\bp_\bd_\ba_\bt_\be_\b__\bi_\bn_\bf_\bo_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bb_\ba_\bc_\bk_\bf_\bi_\bl_\bl_\b(_\b)\n@@ -282,18 +240,14 @@\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\ba_\bd_\bd_\b__\bt_\bo_\b__\bb_\bo_\bo_\bk_\bm_\ba_\br_\bk_\bs_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bo_\bn_\b__\ba_\bv_\ba_\bt_\ba_\br_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bo_\bn_\b__\bs_\be_\bt_\b__\ba_\bf_\bf_\bi_\bl_\bi_\ba_\bt_\bi_\bo_\bn_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bo_\bn_\b__\bk_\bi_\bc_\bk_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bo_\bn_\b__\bs_\be_\bt_\b__\bc_\bo_\bn_\bf_\bi_\bg_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bo_\bn_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\br_\be_\bq_\bu_\be_\bs_\bt_\b(_\b)\n # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bo_\bn_\b__\bs_\be_\bt_\b__\bs_\bu_\bb_\bj_\be_\bc_\bt_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\ba_\bv_\ba_\bt_\ba_\br_\b__\bi_\bd\n- # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\ba_\bv_\ba_\bt_\ba_\br\n- # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\bs_\be_\bt_\b__\ba_\bv_\ba_\bt_\ba_\br_\b(_\b)\n- # _\bL_\be_\bg_\ba_\bc_\by_\bM_\bU_\bC_\b._\ba_\bv_\ba_\bi_\bl_\ba_\bb_\bl_\be_\b__\be_\bm_\bo_\bj_\bi_\bs_\b(_\b)\n # _\bs_\bl_\bi_\bd_\bg_\be_\b._\bm_\ba_\bi_\bn\n # _\bE_\bx_\bc_\be_\bp_\bt_\bi_\bo_\bn_\bs\n # _\bM_\bo_\bd_\bu_\bl_\be_\b _\bC_\bo_\bn_\bt_\be_\bn_\bt_\bs\n # _\bS_\bi_\bg_\bT_\be_\br_\bm_\bI_\bn_\bt_\be_\br_\br_\bu_\bp_\bt\n # _\bC_\bl_\ba_\bs_\bs_\be_\bs\n # _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n # _\bP_\ba_\bc_\bk_\ba_\bg_\be_\b _\bC_\bo_\bn_\bt_\be_\bn_\bt_\bs\n"}]}, {"source1": "./usr/share/doc/python-slidge-doc/html/objects.inv", "source2": "./usr/share/doc/python-slidge-doc/html/objects.inv", "unified_diff": null, "details": [{"source1": "Sphinx inventory", "source2": "Sphinx inventory", "unified_diff": "@@ -1,526 +1,31 @@\n # Sphinx inventory version 2\n # Project: Slidge\n # Version: \n # The remainder of this file is compressed using zlib.\n+#3\u0001XT F\u06ea%S\f[ST'/sAK\u0016(\u03cfj\u0556\u0005\u0006G(up\u001c}\n \n-09f27f098baa_add_missing_attributes_in_room py:module 0 dev/api/09f27f098baa_add_missing_attributes_in_room/index.html#module-$ -\n-15b0bd83407a_remove_bogus_unique_constraints_on_room_ py:module 0 dev/api/15b0bd83407a_remove_bogus_unique_constraints_on_room_/index.html#module-$ -\n-2461390c0af2_store_contacts_caps_verstring_in_db py:module 0 dev/api/2461390c0af2_store_contacts_caps_verstring_in_db/index.html#module-$ -\n-29f5280c61aa_store_subject_setter_in_room py:module 0 dev/api/29f5280c61aa_store_subject_setter_in_room/index.html#module-$ -\n-2b1f45ab7379_store_room_subject_setter_by_nickname py:module 0 dev/api/2b1f45ab7379_store_room_subject_setter_by_nickname/index.html#module-$ -\n-3071e0fa69d4_add_contact_client_type py:module 0 dev/api/3071e0fa69d4_add_contact_client_type/index.html#module-$ -\n-45c24cc73c91_add_bob py:module 0 dev/api/45c24cc73c91_add_bob/index.html#module-$ -\n-5bd48bfdffa2_lift_room_legacy_id_constraint py:module 0 dev/api/5bd48bfdffa2_lift_room_legacy_id_constraint/index.html#module-$ -\n-82a4af84b679_add_muc_history_filled py:module 0 dev/api/82a4af84b679_add_muc_history_filled/index.html#module-$ -\n-8b993243a536_add_vcard_content_to_contact_table py:module 0 dev/api/8b993243a536_add_vcard_content_to_contact_table/index.html#module-$ -\n-8d2ced764698_rely_on_db_to_store_contacts_rooms_and_ py:module 0 dev/api/8d2ced764698_rely_on_db_to_store_contacts_rooms_and_/index.html#module-$ -\n-aa9d82a7f6ef_db_creation py:module 0 dev/api/aa9d82a7f6ef_db_creation/index.html#module-$ -\n-abba1ae0edb3_store_avatar_legacy_id_in_the_contact_ py:module 0 dev/api/abba1ae0edb3_store_avatar_legacy_id_in_the_contact_/index.html#module-$ -\n-b33993e87db3_move_everything_to_persistent_db py:module 0 dev/api/b33993e87db3_move_everything_to_persistent_db/index.html#module-$ -\n-b64b1a793483_add_source_and_legacy_id_for_archived_ py:module 0 dev/api/b64b1a793483_add_source_and_legacy_id_for_archived_/index.html#module-$ -\n-c4a8ec35a0e8_per_room_user_nick py:module 0 dev/api/c4a8ec35a0e8_per_room_user_nick/index.html#module-$ -\n-e91195719c2c_store_users_avatars_persistently py:module 0 dev/api/e91195719c2c_store_users_avatars_persistently/index.html#module-$ -\n-slidge py:module 0 dev/api/slidge/index.html#module-$ -\n-slidge.BaseGateway py:class 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.AVATAR_ID_TYPE py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.COMPONENT_AVATAR py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.COMPONENT_NAME py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.COMPONENT_TYPE py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.LEGACY_CONTACT_ID_TYPE py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.LEGACY_MSG_ID_TYPE py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.LEGACY_ROOM_ID_TYPE py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.MARK_ALL_MESSAGES py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.PROPER_RECEIPTS py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.REGISTRATION_FIELDS py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.REGISTRATION_INSTRUCTIONS py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.REGISTRATION_TYPE py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.ROSTER_GROUP py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.SEARCH_FIELDS py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.SEARCH_INSTRUCTIONS py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.SEARCH_TITLE py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.WELCOME_MESSAGE py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.confirm_qr py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.get_qr_text py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.input py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.send_qr py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.unregister py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.validate py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseGateway.validate_two_factor_code py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession py:class 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.MESSAGE_IDS_ARE_THREAD_IDS py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.SPECIAL_MSG_ID_PREFIX py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.input py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.legacy_to_xmpp_msg_id py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.login py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.logout py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_active py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_avatar py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_composing py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_correct py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_create_group py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_displayed py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_file py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_inactive py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_invitation py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_leave_group py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_moderate py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_paused py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_presence py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_react py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_retract py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_search py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_sticker py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.on_text py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.send_gateway_invite py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.send_gateway_message py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.send_gateway_status py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.send_qr py:method 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.xmpp py:attribute 1 dev/api/slidge/index.html#$ -\n-slidge.BaseSession.xmpp_to_legacy_msg_id py:method 1 dev/api/slidge/index.html#$ -\n-slidge.command py:module 0 dev/api/slidge/command/index.html#module-$ -\n-slidge.command.Command py:class 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Command.ACCESS py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Command.CATEGORY py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Command.CHAT_COMMAND py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Command.HELP py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Command.NAME py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Command.NODE py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Command.raise_if_not_authorized py:method 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Command.run py:method 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.CommandAccess py:class 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Confirmation py:class 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Confirmation.get_form py:method 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Confirmation.handler py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Confirmation.handler_args py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Confirmation.handler_kwargs py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Confirmation.prompt py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Confirmation.success py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Form py:class 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Form.get_values py:method 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.Form.get_xml py:method 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.FormField py:class 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.FormField.get_xml py:method 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.FormField.image_url py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.FormField.label py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.FormField.private py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.FormField.required py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.FormField.type py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.FormField.validate py:method 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.FormField.value py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.FormField.var py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.SearchResult py:class 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.SearchResult.description py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.SearchResult.fields py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.SearchResult.get_xml py:method 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.SearchResult.items py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.TableResult py:class 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.TableResult.description py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.TableResult.fields py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.TableResult.get_xml py:method 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.TableResult.items py:attribute 1 dev/api/slidge/command/index.html#$ -\n-slidge.command.register py:module 0 dev/api/slidge/command/register/index.html#module-$ -\n-slidge.command.register.RegistrationType py:class 1 dev/api/slidge/command/register/index.html#$ -\n-slidge.command.register.RegistrationType.QRCODE py:attribute 1 dev/api/slidge/command/register/index.html#$ -\n-slidge.command.register.RegistrationType.SINGLE_STEP_FORM py:attribute 1 dev/api/slidge/command/register/index.html#$ -\n-slidge.command.register.RegistrationType.TWO_FACTOR_CODE py:attribute 1 dev/api/slidge/command/register/index.html#$ -\n-slidge.command.register.TwoFactorNotRequired py:exception 1 dev/api/slidge/command/register/index.html#$ -\n-slidge.contact py:module 0 dev/api/slidge/contact/index.html#module-$ -\n-slidge.contact.LegacyContact py:class 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.RESOURCE py:attribute 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.accept_friend_request py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.ack py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.active py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.add_to_roster py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.available_emojis py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.avatar py:property 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.avatar_id py:property 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.away py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.busy py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.client_type py:property 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.composing py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.correct py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.displayed py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.extended_away py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.fetch_vcard py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.get_msg_xmpp_id_up_to py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.gone py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.inactive py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.invite_to py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.legacy_id py:attribute 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.name py:property 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.offline py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.on_friend_accept py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.on_friend_delete py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.on_friend_request py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.online py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.paused py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.react py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.received py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.reject_friend_request py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.retract py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.send_file py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.send_text py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.set_avatar py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.unsubscribe py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyContact.update_info py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyRoster py:class 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyRoster.by_legacy_id py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyRoster.fill py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyRoster.jid_username_to_legacy_id py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.contact.LegacyRoster.legacy_id_to_jid_username py:method 1 dev/api/slidge/contact/index.html#$ -\n-slidge.entrypoint py:function 1 dev/api/slidge/index.html#$ -\n-slidge.group py:module 0 dev/api/slidge/group/index.html#module-$ -\n-slidge.group.LegacyBookmarks py:class 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyBookmarks.fill py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyBookmarks.jid_username_to_legacy_id py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyBookmarks.legacy_id_to_jid_username py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyBookmarks.remove py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC py:class 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.HAS_DESCRIPTION py:attribute 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.HAS_SUBJECT py:attribute 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.KEEP_BACKFILLED_PARTICIPANTS py:attribute 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.STABLE_ARCHIVE py:attribute 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.add_to_bookmarks py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.available_emojis py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.avatar py:property 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.avatar_id py:property 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.backfill py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.fill_participants py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.get_participant py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.get_participant_by_contact py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.get_system_participant py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.get_user_participant py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.kick_resource py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.on_avatar py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.on_destroy_request py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.on_kick py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.on_set_affiliation py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.on_set_config py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.on_set_subject py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.remove_participant py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.set_avatar py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyMUC.update_info py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant py:class 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.ack py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.active py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.away py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.ban py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.busy py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.composing py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.correct py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.displayed py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.extended_away py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.gone py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.inactive py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.invite_to py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.kick py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.leave py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.offline py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.online py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.paused py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.react py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.received py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.retract py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.send_file py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.send_initial_presence py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.LegacyParticipant.send_text py:method 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.MucType py:class 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.MucType.CHANNEL py:attribute 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.MucType.CHANNEL_NON_ANONYMOUS py:attribute 1 dev/api/slidge/group/index.html#$ -\n-slidge.group.MucType.GROUP py:attribute 1 dev/api/slidge/group/index.html#$ -\n-slidge.main py:module 0 dev/api/slidge/main/index.html#module-$ -\n-slidge.main.SigTermInterrupt py:exception 1 dev/api/slidge/main/index.html#$ -\n-superduper py:module 0 dev/api/superduper/index.html#module-$ -\n-superduper.gateway py:module 0 dev/api/superduper/gateway/index.html#module-$ -\n-superduper.gateway.Gateway py:class 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.AVATAR_ID_TYPE py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.COMPONENT_AVATAR py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.COMPONENT_NAME py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.COMPONENT_TYPE py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.LEGACY_CONTACT_ID_TYPE py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.LEGACY_MSG_ID_TYPE py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.LEGACY_ROOM_ID_TYPE py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.MARK_ALL_MESSAGES py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.PROPER_RECEIPTS py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.REGISTRATION_FIELDS py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.REGISTRATION_INSTRUCTIONS py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.REGISTRATION_TYPE py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.ROSTER_GROUP py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.SEARCH_FIELDS py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.SEARCH_INSTRUCTIONS py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.SEARCH_TITLE py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.WELCOME_MESSAGE py:attribute 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.ack py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.active py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.composing py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.confirm_qr py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.correct py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.displayed py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.get_qr_text py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.gone py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.inactive py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.input py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.invite_to py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.paused py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.react py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.received py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.retract py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.send_file py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.send_qr py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.send_text py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.unregister py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.validate py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.gateway.Gateway.validate_two_factor_code py:method 1 dev/api/superduper/gateway/index.html#$ -\n-superduper.group py:module 0 dev/api/superduper/group/index.html#module-$ -\n-superduper.group.Bookmarks py:class 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Bookmarks.fill py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Bookmarks.jid_username_to_legacy_id py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Bookmarks.legacy_id_to_jid_username py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Bookmarks.remove py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC py:class 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.HAS_DESCRIPTION py:attribute 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.HAS_SUBJECT py:attribute 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.KEEP_BACKFILLED_PARTICIPANTS py:attribute 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.STABLE_ARCHIVE py:attribute 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.add_to_bookmarks py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.available_emojis py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.avatar py:property 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.avatar_id py:property 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.backfill py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.fill_participants py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.get_participant py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.get_participant_by_contact py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.get_system_participant py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.get_user_participant py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.kick_resource py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.on_avatar py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.on_destroy_request py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.on_kick py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.on_set_affiliation py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.on_set_config py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.on_set_subject py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.remove_participant py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.set_avatar py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.MUC.update_info py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant py:class 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.ack py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.active py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.away py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.ban py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.busy py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.composing py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.correct py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.displayed py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.extended_away py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.gone py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.inactive py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.invite_to py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.kick py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.leave py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.offline py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.online py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.paused py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.react py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.received py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.retract py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.send_file py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.send_initial_presence py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.group.Participant.send_text py:method 1 dev/api/superduper/group/index.html#$ -\n-superduper.session py:module 0 dev/api/superduper/session/index.html#module-$ -\n-superduper.session.Session py:class 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.MESSAGE_IDS_ARE_THREAD_IDS py:attribute 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.SPECIAL_MSG_ID_PREFIX py:attribute 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.input py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.legacy_to_xmpp_msg_id py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.login py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.logout py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_active py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_avatar py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_composing py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_correct py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_create_group py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_displayed py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_file py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_inactive py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_invitation py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_leave_group py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_moderate py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_paused py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_presence py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_react py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_retract py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_search py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_sticker py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.on_text py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.send_gateway_invite py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.send_gateway_message py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.send_gateway_status py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.send_qr py:method 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.xmpp py:attribute 1 dev/api/superduper/session/index.html#$ -\n-superduper.session.Session.xmpp_to_legacy_msg_id py:method 1 dev/api/superduper/session/index.html#$ -\n-09f27f098baa_add_missing_attributes_in_room std:label -1 dev/api/09f27f098baa_add_missing_attributes_in_room/index.html#module-$ -\n-15b0bd83407a_remove_bogus_unique_constraints_on_room_ std:label -1 dev/api/15b0bd83407a_remove_bogus_unique_constraints_on_room_/index.html#module-$ 15b0bd83407a_remove_bogus_unique_constraints_on_room\n-2461390c0af2_store_contacts_caps_verstring_in_db std:label -1 dev/api/2461390c0af2_store_contacts_caps_verstring_in_db/index.html#module-$ -\n-29f5280c61aa_store_subject_setter_in_room std:label -1 dev/api/29f5280c61aa_store_subject_setter_in_room/index.html#module-$ -\n-2b1f45ab7379_store_room_subject_setter_by_nickname std:label -1 dev/api/2b1f45ab7379_store_room_subject_setter_by_nickname/index.html#module-$ -\n-3071e0fa69d4_add_contact_client_type std:label -1 dev/api/3071e0fa69d4_add_contact_client_type/index.html#module-$ -\n-45c24cc73c91_add_bob std:label -1 dev/api/45c24cc73c91_add_bob/index.html#module-$ -\n-5bd48bfdffa2_lift_room_legacy_id_constraint std:label -1 dev/api/5bd48bfdffa2_lift_room_legacy_id_constraint/index.html#module-$ -\n-82a4af84b679_add_muc_history_filled std:label -1 dev/api/82a4af84b679_add_muc_history_filled/index.html#module-$ -\n-8b993243a536_add_vcard_content_to_contact_table std:label -1 dev/api/8b993243a536_add_vcard_content_to_contact_table/index.html#module-$ -\n-8d2ced764698_rely_on_db_to_store_contacts_rooms_and_ std:label -1 dev/api/8d2ced764698_rely_on_db_to_store_contacts_rooms_and_/index.html#module-$ 8d2ced764698_rely_on_db_to_store_contacts_rooms_and\n-Ad-hoc Command std:term -1 glossary.html#term-Ad-hoc-Command -\n-Avatar std:term -1 glossary.html#term-$ -\n-Carbons std:term -1 glossary.html#term-$ -\n-Chatbot Command std:term -1 glossary.html#term-Chatbot-Command -\n-Command std:term -1 glossary.html#term-$ -\n-JID Local Part std:term -1 glossary.html#term-JID-Local-Part -\n-Legacy Contact std:term -1 glossary.html#term-Legacy-Contact -\n-Legacy Module std:term -1 glossary.html#term-Legacy-Module -\n-Legacy Network std:term -1 glossary.html#term-Legacy-Network -\n-Official Client std:term -1 glossary.html#term-Official-Client -\n-Roster std:term -1 glossary.html#term-$ -\n-User std:term -1 glossary.html#term-$ -\n-XMPP Entity std:term -1 glossary.html#term-XMPP-Entity -\n-aa9d82a7f6ef_db_creation std:label -1 dev/api/aa9d82a7f6ef_db_creation/index.html#module-$ -\n-abba1ae0edb3_store_avatar_legacy_id_in_the_contact_ std:label -1 dev/api/abba1ae0edb3_store_avatar_legacy_id_in_the_contact_/index.html#module-$ abba1ae0edb3_store_avatar_legacy_id_in_the_contact\n-admin/attachments std:doc -1 admin/attachments.html Attachments\n-admin/component std:doc -1 admin/component.html XMPP server config\n-admin/config/index std:doc -1 admin/config/index.html Configuration\n-admin/daemon std:doc -1 admin/daemon.html Running as a daemon\n-admin/examples/index std:doc -1 admin/examples/index.html Example XMPP server configurations\n-admin/index std:doc -1 admin/index.html For admins\n-admin/install std:doc -1 admin/install.html Installation\n-admin/note std:doc -1 admin/note.html \n-admin/privilege std:doc -1 admin/privilege.html Privileges\n-as a systemd unit std:label -1 admin/daemon.html#as-a-systemd-unit As a systemd unit\n-attachments std:label -1 admin/attachments.html#$ Attachments\n-b33993e87db3_move_everything_to_persistent_db std:label -1 dev/api/b33993e87db3_move_everything_to_persistent_db/index.html#module-$ -\n-b64b1a793483_add_source_and_legacy_id_for_archived_ std:label -1 dev/api/b64b1a793483_add_source_and_legacy_id_for_archived_/index.html#module-$ b64b1a793483_add_source_and_legacy_id_for_archived\n-c4a8ec35a0e8_per_room_user_nick std:label -1 dev/api/c4a8ec35a0e8_per_room_user_nick/index.html#module-$ -\n-classes std:label -1 dev/api/superduper/session/index.html#$ Classes\n-commands std:label -1 user/commands.html#$ Commands\n-common config std:label -1 admin/config/index.html#common-config Common config\n-configuration std:label -1 admin/config/index.html#$ Configuration\n-contacts std:label -1 user/commands.html#$ Contacts\n-container install std:label -1 admin/daemon.html#container-install Container install\n-containers std:label -1 admin/daemon.html#$ Containers\n-contributing std:label -1 dev/contributing.html#$ Contributing\n-data persistence std:label -1 admin/daemon.html#data-persistence Data persistence\n-debian std:label -1 admin/install.html#$ -\n-debian packages (systemd) std:label -1 admin/daemon.html#debian-packages-systemd Debian packages (systemd)\n-dev/api/09f27f098baa_add_missing_attributes_in_room/index std:doc -1 dev/api/09f27f098baa_add_missing_attributes_in_room/index.html 09f27f098baa_add_missing_attributes_in_room\n-dev/api/15b0bd83407a_remove_bogus_unique_constraints_on_room_/index std:doc -1 dev/api/15b0bd83407a_remove_bogus_unique_constraints_on_room_/index.html 15b0bd83407a_remove_bogus_unique_constraints_on_room\n-dev/api/2461390c0af2_store_contacts_caps_verstring_in_db/index std:doc -1 dev/api/2461390c0af2_store_contacts_caps_verstring_in_db/index.html 2461390c0af2_store_contacts_caps_verstring_in_db\n-dev/api/29f5280c61aa_store_subject_setter_in_room/index std:doc -1 dev/api/29f5280c61aa_store_subject_setter_in_room/index.html 29f5280c61aa_store_subject_setter_in_room\n-dev/api/2b1f45ab7379_store_room_subject_setter_by_nickname/index std:doc -1 dev/api/2b1f45ab7379_store_room_subject_setter_by_nickname/index.html 2b1f45ab7379_store_room_subject_setter_by_nickname\n-dev/api/3071e0fa69d4_add_contact_client_type/index std:doc -1 dev/api/3071e0fa69d4_add_contact_client_type/index.html 3071e0fa69d4_add_contact_client_type\n-dev/api/45c24cc73c91_add_bob/index std:doc -1 dev/api/45c24cc73c91_add_bob/index.html 45c24cc73c91_add_bob\n-dev/api/5bd48bfdffa2_lift_room_legacy_id_constraint/index std:doc -1 dev/api/5bd48bfdffa2_lift_room_legacy_id_constraint/index.html 5bd48bfdffa2_lift_room_legacy_id_constraint\n-dev/api/82a4af84b679_add_muc_history_filled/index std:doc -1 dev/api/82a4af84b679_add_muc_history_filled/index.html 82a4af84b679_add_muc_history_filled\n-dev/api/8b993243a536_add_vcard_content_to_contact_table/index std:doc -1 dev/api/8b993243a536_add_vcard_content_to_contact_table/index.html 8b993243a536_add_vcard_content_to_contact_table\n-dev/api/8d2ced764698_rely_on_db_to_store_contacts_rooms_and_/index std:doc -1 dev/api/8d2ced764698_rely_on_db_to_store_contacts_rooms_and_/index.html 8d2ced764698_rely_on_db_to_store_contacts_rooms_and\n-dev/api/aa9d82a7f6ef_db_creation/index std:doc -1 dev/api/aa9d82a7f6ef_db_creation/index.html aa9d82a7f6ef_db_creation\n-dev/api/abba1ae0edb3_store_avatar_legacy_id_in_the_contact_/index std:doc -1 dev/api/abba1ae0edb3_store_avatar_legacy_id_in_the_contact_/index.html abba1ae0edb3_store_avatar_legacy_id_in_the_contact\n-dev/api/b33993e87db3_move_everything_to_persistent_db/index std:doc -1 dev/api/b33993e87db3_move_everything_to_persistent_db/index.html b33993e87db3_move_everything_to_persistent_db\n-dev/api/b64b1a793483_add_source_and_legacy_id_for_archived_/index std:doc -1 dev/api/b64b1a793483_add_source_and_legacy_id_for_archived_/index.html b64b1a793483_add_source_and_legacy_id_for_archived\n-dev/api/c4a8ec35a0e8_per_room_user_nick/index std:doc -1 dev/api/c4a8ec35a0e8_per_room_user_nick/index.html c4a8ec35a0e8_per_room_user_nick\n-dev/api/e91195719c2c_store_users_avatars_persistently/index std:doc -1 dev/api/e91195719c2c_store_users_avatars_persistently/index.html e91195719c2c_store_users_avatars_persistently\n-dev/api/slidge/command/index std:doc -1 dev/api/slidge/command/index.html slidge.command\n-dev/api/slidge/command/register/index std:doc -1 dev/api/slidge/command/register/index.html slidge.command.register\n-dev/api/slidge/contact/index std:doc -1 dev/api/slidge/contact/index.html slidge.contact\n-dev/api/slidge/group/index std:doc -1 dev/api/slidge/group/index.html slidge.group\n-dev/api/slidge/index std:doc -1 dev/api/slidge/index.html slidge\n-dev/api/slidge/main/index std:doc -1 dev/api/slidge/main/index.html slidge.main\n-dev/api/superduper/gateway/index std:doc -1 dev/api/superduper/gateway/index.html superduper.gateway\n-dev/api/superduper/group/index std:doc -1 dev/api/superduper/group/index.html superduper.group\n-dev/api/superduper/index std:doc -1 dev/api/superduper/index.html superduper\n-dev/api/superduper/session/index std:doc -1 dev/api/superduper/session/index.html superduper.session\n-dev/contributing std:doc -1 dev/contributing.html Contributing\n-dev/design std:doc -1 dev/design.html Slidge Design\n-dev/howto std:doc -1 dev/howto.html How to\u2026?\n-dev/index std:doc -1 dev/index.html For devs\n-dev/tutorial std:doc -1 dev/tutorial.html Tutorial: minimal legacy module from scratch\n-development setup std:label -1 dev/contributing.html#development-setup Development setup\n-dockerhub std:label -1 admin/install.html#$ Dockerhub\n-e91195719c2c_store_users_avatars_persistently std:label -1 dev/api/e91195719c2c_store_users_avatars_persistently/index.html#module-$ -\n-ejabberd std:label -1 admin/component.html#id2 -\n-example 1: prosody std:label -1 admin/examples/index.html#example-1-prosody Example 1: prosody\n-example 1: prosody's http_files std:label -1 admin/attachments.html#example-1-prosody-s-http-files Example 1: prosody\u2019s http_files\n-example 1: prosody's mod_http_file_share std:label -1 admin/attachments.html#example-1-prosody-s-mod-http-file-share Example 1: prosody\u2019s mod_http_file_share\n-example 2: ejabberd mod_http_upload std:label -1 admin/attachments.html#example-2-ejabberd-mod-http-upload Example 2: ejabberd mod_http_upload\n-example 2: ejabberd/upload-service std:label -1 admin/examples/index.html#example-2-ejabberd-upload-service Example 2: ejabberd/upload-service\n-example 2: nginx std:label -1 admin/attachments.html#example-2-nginx Example 2: nginx\n-example xmpp server configurations std:label -1 admin/examples/index.html#example-xmpp-server-configurations Example XMPP server configurations\n-exceptions std:label -1 dev/api/slidge/main/index.html#$ Exceptions\n-fetching info from the legacy service std:label -1 dev/design.html#fetching-info-from-the-legacy-service Fetching info from the legacy service\n-find std:label -1 user/commands.html#$ Find\n-finding legacy contacts std:label -1 user/contacts.html#finding-legacy-contacts Finding legacy contacts\n-for admins std:label -1 admin/index.html#for-admins For admins\n-for devs std:label -1 dev/index.html#for-devs For devs\n-for users std:label -1 user/index.html#for-users For users\n-from legacy to xmpp std:label -1 dev/tutorial.html#from-legacy-to-xmpp From legacy to XMPP\n-from xmpp to legacy std:label -1 dev/tutorial.html#from-xmpp-to-legacy From XMPP to legacy\n-functions std:label -1 dev/api/slidge/index.html#$ Functions\n-gajim std:label -1 user/register.html#$ Gajim\n-genindex std:label -1 genindex.html Index\n-glossary std:doc -1 glossary.html Glossary\n-glossary std:label -1 glossary.html#$ Glossary\n-going further std:label -1 dev/tutorial.html#going-further Going further\n-groups std:label -1 user/commands.html#$ Groups\n-guidelines std:label -1 dev/contributing.html#$ Guidelines\n-how to\u2026? std:label -1 dev/howto.html#how-to How to\u2026?\n-http file upload std:label -1 admin/attachments.html#http-file-upload HTTP File Upload\n-index std:doc -1 index.html Slidge\n-indices and tables std:label -1 index.html#indices-and-tables Indices and tables\n-installation std:label -1 admin/install.html#$ Installation\n-jid local parts to legacy ids std:label -1 dev/design.html#jid-local-parts-to-legacy-ids JID local parts to legacy IDs\n-keeping a low profile std:label -1 user/low_profile.html#keeping-a-low-profile Keeping a low profile\n-login std:label -1 dev/tutorial.html#$ Login\n-minimal example std:label -1 dev/tutorial.html#minimal-example Minimal example\n-mod_privilege installation std:label -1 admin/privilege.html#mod-privilege-installation -\n-modindex std:label -1 py-modindex.html Module Index\n-module contents std:label -1 dev/api/superduper/session/index.html#module-contents Module Contents\n-movim std:label -1 user/register.html#$ Movim\n-no upload std:label -1 admin/attachments.html#no-upload No upload\n-other clients std:label -1 user/register.html#other-clients Other clients\n-package contents std:label -1 dev/api/slidge/index.html#package-contents Package Contents\n-pipx std:label -1 admin/install.html#$ -\n-pre-filling contacts and groups std:label -1 dev/design.html#pre-filling-contacts-and-groups Pre-filling contacts and groups\n-privileges std:label -1 admin/privilege.html#$ Privileges\n-privileges configuration std:label -1 admin/privilege.html#privileges-configuration Privileges configuration\n-privileges with ejabberd std:label -1 admin/privilege.html#privileges-with-ejabberd Privileges with ejabberd\n-privileges with prosody std:label -1 admin/privilege.html#privileges-with-prosody Privileges with Prosody\n-prosody std:label -1 admin/component.html#id1 Prosody\n-py-modindex std:label -1 py-modindex.html Python Module Index\n-registration std:label -1 user/register.html#$ Registration\n-running as a daemon std:label -1 admin/daemon.html#running-as-a-daemon Running as a daemon\n-search std:label -1 search.html Search Page\n-setup std:label -1 dev/tutorial.html#$ Setup\n-slidge std:label -1 index.html#$ Slidge\n-slidge design std:label -1 dev/design.html#slidge-design Slidge Design\n-slidge.command std:label -1 dev/api/slidge/command/index.html#module-$ -\n-slidge.command.register std:label -1 dev/api/slidge/command/register/index.html#module-$ -\n-slidge.contact std:label -1 dev/api/slidge/contact/index.html#module-$ -\n-slidge.group std:label -1 dev/api/slidge/group/index.html#module-$ -\n-slidge.main std:label -1 dev/api/slidge/main/index.html#module-$ -\n-submodules std:label -1 dev/api/superduper/index.html#$ Submodules\n-superduper std:label -1 dev/api/superduper/index.html#module-$ -\n-superduper.gateway std:label -1 dev/api/superduper/gateway/index.html#module-$ -\n-superduper.group std:label -1 dev/api/superduper/group/index.html#module-$ -\n-superduper.session std:label -1 dev/api/superduper/session/index.html#module-$ -\n-sync :term:`roster` std:label -1 user/commands.html#sync-roster Sync Roster\n-the gateway component std:label -1 dev/tutorial.html#the-gateway-component The gateway component\n-the legacy session std:label -1 dev/tutorial.html#the-legacy-session The legacy session\n-tutorial: minimal legacy module from scratch std:label -1 dev/tutorial.html#tutorial-minimal-legacy-module-from-scratch Tutorial: minimal legacy module from scratch\n-unregister std:label -1 user/commands.html#$ Unregister\n-user/commands std:doc -1 user/commands.html Commands\n-user/contacts std:doc -1 user/contacts.html Finding legacy contacts\n-user/index std:doc -1 user/index.html For users\n-user/low_profile std:doc -1 user/low_profile.html Keeping a low profile\n-user/note std:doc -1 user/note.html \n-user/register std:doc -1 user/register.html Registration\n-using another xmpp client std:label -1 dev/contributing.html#using-another-xmpp-client Using another XMPP client\n-with containers std:label -1 dev/contributing.html#with-containers With containers\n-without containers std:label -1 dev/contributing.html#without-containers Without containers\n-xmpp server config std:label -1 admin/component.html#xmpp-server-config XMPP server config\n+x\u015dr:\u0014Jf\u608a%SS3\u0232>>}\u0010\tI%RbG}\u056f1/0\u000fO2Hq\u0001I\u0010rn\\\u0016\u007fb\u01cfvu~:Y\u0002`\u0003\u05f5w^\u0014y\u0006q\u001cz$v\u0018\u0004;s\u007f\u000bd\u000b3\u04c5ot&.]w\u000fc}4-\u007f<[7\u0017g\u000e.x2X'\u078f\u0004NGq\b\u001e\u0006?y1\u0018.\">\u001ft#g\u02536`=x|Fa4W&NghfFxPF\u000fb6X'xx9~F\fZRh6/P|>&/Se|4\rFF\u001a\u0018/\u001e#-FiV~\u000bwT0\u0004\fg\rc\u0130c3V\u0003y>QDD\u0010\u001f!\\R\u00063\u001e\u001d\u0007\n+uP\t\\I\u001cF\u0011vnle@Tmld/F;S:Ot4\u001c\u000f\u001e\u04d6f:\u001b\u074fLUX)\u001dQonw\u001a#\u0015\u0011\ua5e1a\u0012T'!Me\u0013\u0001]i !t\u31cc\u983d\u000ed\fsh\u0005\u0007*\u0010_=<_S{\u0017\u001f*-\u0004o\u001bT`(]\t@{T\ua276\u000f!j\u001cu{P\u0510C\u0018:8\u0011iuLP\u000e\uf324\u0010\u0493X6m\u0011C\u000fZ'1Be/4\u0000\u007f(>n\u001f[l\u0222\u01965-jJvw\u001a,Hs\u0005\r\u0013\u0007W\rC\u0517jn`1z\u000b6Xh4x\n+6zj\u0005\n+8e:\u0002'wz!\"h{+\u000fb\u001b$(;?\u001b\n+\u0012_\u001bl8Djd\u000es\u0015;\u001d_n\u0413-m4$|\u0015lp\u001d~\u001a>D}X?7J|\fgA)a\b[hH=we\u001e\u06bd\u0007\u000f%\u0013\u0018vc'V[R\u0016,n>0A#5?\u0012/Fl:\u0011)\u2b12`&S+\u0240e\u0006d\u001b+<\t}i\u0091\u0010j+\u0005*\u001a4\u0018k\b4V=lijK~~x\u001chjOfOJ}?\u0018.&3x\u000fDs\u0010r-$@Z\u0014U.y\u0004ir$P\u001fGjm6@hh>y\r#;\u001a88\"Ua\u000e(n0$.v\u0444AL\f\u0010\r<0\u000fz+\u0018;\u001b^M\u0778r*\\;n,JL':Q1g+hfYSw\u001c.\u00b6^\n+D)di$~,q\u007fg==>*\u0016\r.\u0007Px\u000bn5#\n+$!.9ov\u04cf\u000b#Ry=\u000e\u000f-^%o\u01e9F\u0004hnI\u0010_u\u0007&Of\u0005jMD\u0004F*[?t0^\u001aR\u000eQz\u0006sn4\u001fS\u012b\u0001J|hHmF\u0000_\u0007\u01cf;{:-t\u073a\u001ab\u00157j_G\u001a\u0017@\r\u0004\u03abyeA\u0018{\u0007~P!qOuc\u001fM\u001a\u0003j\u001fv?\u0001s^Q\u0017\u0005\u0015Z\u0011>^\u0018\u001cD{\u001d\u026f\u000e\u0005=\b\u0016X2. kPM\u0017mc2\u0015\u001d]i#]J\u0002}i*\n+ip\u0004\u0011\u04e6@t\u000ePToPlQC7\u0001Tc7Q\u0001QAeT\u0007\trG\u0006\u001e5r95,LQ;-n\u06a3mku >\u0014m=*`2\u0010x>EED)m[U+2u\u0176\u0014wT?q4M\u0795X\u6a7b\u0006h3aNqN^Q\t;\u0440Jj\u000bT\u0006c\u0005UBC\b)pO.c\u001eS@g)E\u0017i-\u001d@Ix\udb84\uddca\u05a3\u0010\u0015#*\u017aYrhv_\n+.\u050d$\u000bMG0eTdto\u0526HGmZyTV\u0004)x\u001c*XV5\u001dn2B\u000f\u007f[\\c\u077f%C~e\u0017#~]|+~]|;~]\\\u0013t_Ur{~]\\\u057f.?.=\u0000\u0019\u0003\u0004\u001e\rDEi[o\u0003\u0526\u0007\u0005?hh+\rm\u0019\u0003:\u0012m\u00115\u0004\u0012(\u001b\u0010/X(\u00163\u0007\u0007L84\u0014WT$JuM1\u007f?g(\u01f7\u0014D\u000e]'6p\u0001Ui\u0012^,\u0010/4\tv-l(\u0011},fY\u001aC5\u001c>\b\u00e3\b\u001al\u001e-d\\kJzg*3+a\u000el\u04cd[w%\u00a5\u0007D\u0005\u0003\u0015wV1G\u0015DJ\u0005*\u03bc\u0003\u001a|c1;\u0019\u001a<(\"%\u05c1@a\u0000\u0001IP\u001eRqmW\u001a\f:x&\u000f\u0316-\u07ff:\u000eC8PrRK2\t\fty\u0003\u03ecK\u001e1\u0002\u001a8G57\u0006\u0018Mg\u000f7*Ql\u0016A6\u001dkW|c\f\t\r\n+\u01a8=xR:\u001dtfbv}\u057dF6\u0015\b-5Tk\u0001sF\u03e5\u0005Z\u03d8u\n+F\u0011PV\u0004%\u0017\u0001\n+[eAI2\u00118~Dd6{\u001cEC*-x7_&[r\u05a2G\u0011\t\u001c'\u0013&s*`;v(8My\u0015v'\u0004X\r;Rq\u0017,*tW\u0018\u023cW\u0018nO.\rktb<=)Q\u007f\u0005e(s-?s\u03f1\u0000s0\u0002\u00138?gVJ\u0005G\u0015\u0016\u0007o=Y)(\"\u000b#,j?7o\u00044;\u000bcG\u001b\u0010Bik\u0010hEY5fqf\u007f1%m\u0000N[)h\u0019\u00ccUD_Yx{\u001dH\u03a0\u0012h\u052a+o\u001d\u028cJJVq~$&YdH\u0002s`u^DGAn\r\u0006JjK4,I+Qn\u0695\u000f)\b\u000b#,(\"K{\u0011E]\u00017=\n+Fb C4z+f/K\r\u00151\u0ef7Tv\u000b\u0018x5]L }\u0000\u007ft)D\u0013RX\u001ea>_\u0160Gha-\\\u0000U\u0012R\u0010!\tl\u001f\u0006\u9c8am=:\\w:FbsI\u000fYxcu\u7aa2^\u0007/J|\u000f7\u0015&r\u0461i:Lb1E\u0014Q^hSO\u048fvVq\u0010TD&^D \u0295!\u03cd+Y$j\u0011Q\u001e\u02d2E*>x|\u0017\u0019\u0010\f\u0014\u001d,HJT3\fzkT)\u0013\u0000Rnp\u00061\u0592?8\u0016E\u0005OEq\u0003F-R\u0002U\u00100SS\u000fVf6H\u0019l\\R3w!\u0018\u007f~#\u0015oB\u0013\u000egAb\u0007iy{N\u5300;t$jKB[iI^`mS1J\f\u0014\u0787\u0010W+[\u001fp^MZ.9@j\f&'\u0010Zvk[\u064fiN\u0006X\u0422\u001bmN8W\n++D\u0014Zl(pa,\u0761\u0644\u0011\\leX8 `I\u007fn\u0164Yt@4_g\u0006\u0012\u03e2!;\u001f-\u001e \u000f d[p2\u00162w\u001ar\u0003\u000f8+.2n(xL\u03c4\u04022\n+\u0015@9O\u000bBE<\u00192e\u02aaBsY\u0011)V4!\u0007,\u0000b9nh\u0019\u0000\u0013a\tS?\u0006\u0013~)`71Hn'_\rD~/\"\b\u0012\u001f\u045d\"\u02283\u0005:HU%o\u0017\u0003^+\u001c\n"}]}, {"source1": "./usr/share/doc/python-slidge-doc/html/searchindex.js", "source2": "./usr/share/doc/python-slidge-doc/html/searchindex.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -379,32 +379,20 @@\n ],\n \"accept_friend_request() (slidge.contact.legacycontact method)\": [\n [28, \"slidge.contact.LegacyContact.accept_friend_request\", false]\n ],\n \"access (slidge.command.command attribute)\": [\n [26, \"slidge.command.Command.ACCESS\", false]\n ],\n- \"ack() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.ack\", false]\n- ],\n- \"ack() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.ack\", false]\n- ],\n \"ack() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.ack\", false]\n ],\n \"ack() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.ack\", false]\n ],\n- \"active() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.active\", false]\n- ],\n- \"active() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.active\", false]\n- ],\n \"active() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.active\", false]\n ],\n \"active() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.active\", false]\n ],\n \"ad-hoc command\": [\n@@ -415,56 +403,32 @@\n ],\n \"add_to_bookmarks() (superduper.group.muc method)\": [\n [33, \"superduper.group.MUC.add_to_bookmarks\", false]\n ],\n \"add_to_roster() (slidge.contact.legacycontact method)\": [\n [28, \"slidge.contact.LegacyContact.add_to_roster\", false]\n ],\n- \"available_emojis() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.available_emojis\", false]\n- ],\n- \"available_emojis() (slidge.group.legacymuc method)\": [\n- [29, \"slidge.group.LegacyMUC.available_emojis\", false]\n- ],\n \"available_emojis() (superduper.group.muc method)\": [\n [33, \"superduper.group.MUC.available_emojis\", false]\n ],\n \"avatar\": [\n [41, \"term-Avatar\", true]\n ],\n- \"avatar (slidge.contact.legacycontact property)\": [\n- [28, \"slidge.contact.LegacyContact.avatar\", false]\n- ],\n- \"avatar (slidge.group.legacymuc property)\": [\n- [29, \"slidge.group.LegacyMUC.avatar\", false]\n- ],\n \"avatar (superduper.group.muc property)\": [\n [33, \"superduper.group.MUC.avatar\", false]\n ],\n- \"avatar_id (slidge.contact.legacycontact property)\": [\n- [28, \"slidge.contact.LegacyContact.avatar_id\", false]\n- ],\n- \"avatar_id (slidge.group.legacymuc property)\": [\n- [29, \"slidge.group.LegacyMUC.avatar_id\", false]\n- ],\n \"avatar_id (superduper.group.muc property)\": [\n [33, \"superduper.group.MUC.avatar_id\", false]\n ],\n \"avatar_id_type (slidge.basegateway attribute)\": [\n [30, \"slidge.BaseGateway.AVATAR_ID_TYPE\", false]\n ],\n \"avatar_id_type (superduper.gateway.gateway attribute)\": [\n [32, \"superduper.gateway.Gateway.AVATAR_ID_TYPE\", false]\n ],\n- \"away() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.away\", false]\n- ],\n- \"away() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.away\", false]\n- ],\n \"away() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.away\", false]\n ],\n \"b33993e87db3_move_everything_to_persistent_db\": [\n [22, \"module-b33993e87db3_move_everything_to_persistent_db\", false]\n ],\n \"b64b1a793483_add_source_and_legacy_id_for_archived_\": [\n@@ -487,20 +451,14 @@\n ],\n \"basesession (class in slidge)\": [\n [30, \"slidge.BaseSession\", false]\n ],\n \"bookmarks (class in superduper.group)\": [\n [33, \"superduper.group.Bookmarks\", false]\n ],\n- \"busy() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.busy\", false]\n- ],\n- \"busy() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.busy\", false]\n- ],\n \"busy() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.busy\", false]\n ],\n \"by_legacy_id() (slidge.contact.legacyroster method)\": [\n [28, \"slidge.contact.LegacyRoster.by_legacy_id\", false]\n ],\n \"c4a8ec35a0e8_per_room_user_nick\": [\n@@ -550,20 +508,14 @@\n ],\n \"component_type (slidge.basegateway attribute)\": [\n [30, \"slidge.BaseGateway.COMPONENT_TYPE\", false]\n ],\n \"component_type (superduper.gateway.gateway attribute)\": [\n [32, \"superduper.gateway.Gateway.COMPONENT_TYPE\", false]\n ],\n- \"composing() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.composing\", false]\n- ],\n- \"composing() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.composing\", false]\n- ],\n \"composing() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.composing\", false]\n ],\n \"composing() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.composing\", false]\n ],\n \"confirm_qr() (slidge.basegateway method)\": [\n@@ -571,56 +523,38 @@\n ],\n \"confirm_qr() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.confirm_qr\", false]\n ],\n \"confirmation (class in slidge.command)\": [\n [26, \"slidge.command.Confirmation\", false]\n ],\n- \"correct() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.correct\", false]\n- ],\n- \"correct() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.correct\", false]\n- ],\n \"correct() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.correct\", false]\n ],\n \"correct() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.correct\", false]\n ],\n \"description (slidge.command.searchresult attribute)\": [\n [26, \"slidge.command.SearchResult.description\", false]\n ],\n \"description (slidge.command.tableresult attribute)\": [\n [26, \"slidge.command.TableResult.description\", false]\n ],\n- \"displayed() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.displayed\", false]\n- ],\n- \"displayed() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.displayed\", false]\n- ],\n \"displayed() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.displayed\", false]\n ],\n \"displayed() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.displayed\", false]\n ],\n \"e91195719c2c_store_users_avatars_persistently\": [\n [25, \"module-e91195719c2c_store_users_avatars_persistently\", false]\n ],\n \"entrypoint() (in module slidge)\": [\n [30, \"slidge.entrypoint\", false]\n ],\n- \"extended_away() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.extended_away\", false]\n- ],\n- \"extended_away() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.extended_away\", false]\n- ],\n \"extended_away() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.extended_away\", false]\n ],\n \"fetch_vcard() (slidge.contact.legacycontact method)\": [\n [28, \"slidge.contact.LegacyContact.fetch_vcard\", false]\n ],\n \"fields (slidge.command.searchresult attribute)\": [\n@@ -700,20 +634,14 @@\n ],\n \"get_xml() (slidge.command.searchresult method)\": [\n [26, \"slidge.command.SearchResult.get_xml\", false]\n ],\n \"get_xml() (slidge.command.tableresult method)\": [\n [26, \"slidge.command.TableResult.get_xml\", false]\n ],\n- \"gone() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.gone\", false]\n- ],\n- \"gone() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.gone\", false]\n- ],\n \"gone() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.gone\", false]\n ],\n \"gone() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.gone\", false]\n ],\n \"group (slidge.group.muctype attribute)\": [\n@@ -742,20 +670,14 @@\n ],\n \"help (slidge.command.command attribute)\": [\n [26, \"slidge.command.Command.HELP\", false]\n ],\n \"image_url (slidge.command.formfield attribute)\": [\n [26, \"slidge.command.FormField.image_url\", false]\n ],\n- \"inactive() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.inactive\", false]\n- ],\n- \"inactive() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.inactive\", false]\n- ],\n \"inactive() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.inactive\", false]\n ],\n \"inactive() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.inactive\", false]\n ],\n \"input() (slidge.basegateway method)\": [\n@@ -766,20 +688,14 @@\n ],\n \"input() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.input\", false]\n ],\n \"input() (superduper.session.session method)\": [\n [35, \"superduper.session.Session.input\", false]\n ],\n- \"invite_to() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.invite_to\", false]\n- ],\n- \"invite_to() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.invite_to\", false]\n- ],\n \"invite_to() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.invite_to\", false]\n ],\n \"invite_to() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.invite_to\", false]\n ],\n \"items (slidge.command.searchresult attribute)\": [\n@@ -954,20 +870,14 @@\n ],\n \"node (slidge.command.command attribute)\": [\n [26, \"slidge.command.Command.NODE\", false]\n ],\n \"official client\": [\n [41, \"term-Official-Client\", true]\n ],\n- \"offline() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.offline\", false]\n- ],\n- \"offline() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.offline\", false]\n- ],\n \"offline() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.offline\", false]\n ],\n \"on_active() (slidge.basesession method)\": [\n [30, \"slidge.BaseSession.on_active\", false]\n ],\n \"on_active() (superduper.session.session method)\": [\n@@ -1116,32 +1026,20 @@\n ],\n \"on_text() (slidge.basesession method)\": [\n [30, \"slidge.BaseSession.on_text\", false]\n ],\n \"on_text() (superduper.session.session method)\": [\n [35, \"superduper.session.Session.on_text\", false]\n ],\n- \"online() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.online\", false]\n- ],\n- \"online() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.online\", false]\n- ],\n \"online() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.online\", false]\n ],\n \"participant (class in superduper.group)\": [\n [33, \"superduper.group.Participant\", false]\n ],\n- \"paused() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.paused\", false]\n- ],\n- \"paused() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.paused\", false]\n- ],\n \"paused() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.paused\", false]\n ],\n \"paused() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.paused\", false]\n ],\n \"private (slidge.command.formfield attribute)\": [\n@@ -1158,32 +1056,20 @@\n ],\n \"qrcode (slidge.command.register.registrationtype attribute)\": [\n [27, \"slidge.command.register.RegistrationType.QRCODE\", false]\n ],\n \"raise_if_not_authorized() (slidge.command.command method)\": [\n [26, \"slidge.command.Command.raise_if_not_authorized\", false]\n ],\n- \"react() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.react\", false]\n- ],\n- \"react() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.react\", false]\n- ],\n \"react() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.react\", false]\n ],\n \"react() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.react\", false]\n ],\n- \"received() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.received\", false]\n- ],\n- \"received() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.received\", false]\n- ],\n \"received() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.received\", false]\n ],\n \"received() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.received\", false]\n ],\n \"registration_fields (slidge.basegateway attribute)\": [\n@@ -1224,20 +1110,14 @@\n ],\n \"required (slidge.command.formfield attribute)\": [\n [26, \"slidge.command.FormField.required\", false]\n ],\n \"resource (slidge.contact.legacycontact attribute)\": [\n [28, \"slidge.contact.LegacyContact.RESOURCE\", false]\n ],\n- \"retract() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.retract\", false]\n- ],\n- \"retract() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.retract\", false]\n- ],\n \"retract() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.retract\", false]\n ],\n \"retract() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.retract\", false]\n ],\n \"roster\": [\n@@ -1269,20 +1149,14 @@\n ],\n \"search_title (superduper.gateway.gateway attribute)\": [\n [32, \"superduper.gateway.Gateway.SEARCH_TITLE\", false]\n ],\n \"searchresult (class in slidge.command)\": [\n [26, \"slidge.command.SearchResult\", false]\n ],\n- \"send_file() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.send_file\", false]\n- ],\n- \"send_file() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.send_file\", false]\n- ],\n \"send_file() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.send_file\", false]\n ],\n \"send_file() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.send_file\", false]\n ],\n \"send_gateway_invite() (slidge.basesession method)\": [\n@@ -1317,35 +1191,23 @@\n ],\n \"send_qr() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.send_qr\", false]\n ],\n \"send_qr() (superduper.session.session method)\": [\n [35, \"superduper.session.Session.send_qr\", false]\n ],\n- \"send_text() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.send_text\", false]\n- ],\n- \"send_text() (slidge.group.legacyparticipant method)\": [\n- [29, \"slidge.group.LegacyParticipant.send_text\", false]\n- ],\n \"send_text() (superduper.gateway.gateway method)\": [\n [32, \"superduper.gateway.Gateway.send_text\", false]\n ],\n \"send_text() (superduper.group.participant method)\": [\n [33, \"superduper.group.Participant.send_text\", false]\n ],\n \"session (class in superduper.session)\": [\n [35, \"superduper.session.Session\", false]\n ],\n- \"set_avatar() (slidge.contact.legacycontact method)\": [\n- [28, \"slidge.contact.LegacyContact.set_avatar\", false]\n- ],\n- \"set_avatar() (slidge.group.legacymuc method)\": [\n- [29, \"slidge.group.LegacyMUC.set_avatar\", false]\n- ],\n \"set_avatar() (superduper.group.muc method)\": [\n [33, \"superduper.group.MUC.set_avatar\", false]\n ],\n \"sigterminterrupt\": [\n [31, \"slidge.main.SigTermInterrupt\", false]\n ],\n \"single_step_form (slidge.command.register.registrationtype attribute)\": [\n@@ -1628,47 +1490,24 @@\n \"slidge.contact\": [\n [28, 1, 1, \"\", \"LegacyContact\"],\n [28, 1, 1, \"\", \"LegacyRoster\"]\n ],\n \"slidge.contact.LegacyContact\": [\n [28, 2, 1, \"\", \"RESOURCE\"],\n [28, 3, 1, \"\", \"accept_friend_request\"],\n- [28, 3, 1, \"\", \"ack\"],\n- [28, 3, 1, \"\", \"active\"],\n [28, 3, 1, \"\", \"add_to_roster\"],\n- [28, 3, 1, \"\", \"available_emojis\"],\n- [28, 5, 1, \"\", \"avatar\"],\n- [28, 5, 1, \"\", \"avatar_id\"],\n- [28, 3, 1, \"\", \"away\"],\n- [28, 3, 1, \"\", \"busy\"],\n [28, 5, 1, \"\", \"client_type\"],\n- [28, 3, 1, \"\", \"composing\"],\n- [28, 3, 1, \"\", \"correct\"],\n- [28, 3, 1, \"\", \"displayed\"],\n- [28, 3, 1, \"\", \"extended_away\"],\n [28, 3, 1, \"\", \"fetch_vcard\"],\n [28, 3, 1, \"\", \"get_msg_xmpp_id_up_to\"],\n- [28, 3, 1, \"\", \"gone\"],\n- [28, 3, 1, \"\", \"inactive\"],\n- [28, 3, 1, \"\", \"invite_to\"],\n [28, 2, 1, \"\", \"legacy_id\"],\n [28, 5, 1, \"\", \"name\"],\n- [28, 3, 1, \"\", \"offline\"],\n [28, 3, 1, \"\", \"on_friend_accept\"],\n [28, 3, 1, \"\", \"on_friend_delete\"],\n [28, 3, 1, \"\", \"on_friend_request\"],\n- [28, 3, 1, \"\", \"online\"],\n- [28, 3, 1, \"\", \"paused\"],\n- [28, 3, 1, \"\", \"react\"],\n- [28, 3, 1, \"\", \"received\"],\n [28, 3, 1, \"\", \"reject_friend_request\"],\n- [28, 3, 1, \"\", \"retract\"],\n- [28, 3, 1, \"\", \"send_file\"],\n- [28, 3, 1, \"\", \"send_text\"],\n- [28, 3, 1, \"\", \"set_avatar\"],\n [28, 3, 1, \"\", \"unsubscribe\"],\n [28, 3, 1, \"\", \"update_info\"]\n ],\n \"slidge.contact.LegacyRoster\": [\n [28, 3, 1, \"\", \"by_legacy_id\"],\n [28, 3, 1, \"\", \"fill\"],\n [28, 3, 1, \"\", \"jid_username_to_legacy_id\"],\n@@ -1688,58 +1527,35 @@\n ],\n \"slidge.group.LegacyMUC\": [\n [29, 2, 1, \"\", \"HAS_DESCRIPTION\"],\n [29, 2, 1, \"\", \"HAS_SUBJECT\"],\n [29, 2, 1, \"\", \"KEEP_BACKFILLED_PARTICIPANTS\"],\n [29, 2, 1, \"\", \"STABLE_ARCHIVE\"],\n [29, 3, 1, \"\", \"add_to_bookmarks\"],\n- [29, 3, 1, \"\", \"available_emojis\"],\n- [29, 5, 1, \"\", \"avatar\"],\n- [29, 5, 1, \"\", \"avatar_id\"],\n [29, 3, 1, \"\", \"backfill\"],\n [29, 3, 1, \"\", \"fill_participants\"],\n [29, 3, 1, \"\", \"get_participant\"],\n [29, 3, 1, \"\", \"get_participant_by_contact\"],\n [29, 3, 1, \"\", \"get_system_participant\"],\n [29, 3, 1, \"\", \"get_user_participant\"],\n [29, 3, 1, \"\", \"kick_resource\"],\n [29, 3, 1, \"\", \"on_avatar\"],\n [29, 3, 1, \"\", \"on_destroy_request\"],\n [29, 3, 1, \"\", \"on_kick\"],\n [29, 3, 1, \"\", \"on_set_affiliation\"],\n [29, 3, 1, \"\", \"on_set_config\"],\n [29, 3, 1, \"\", \"on_set_subject\"],\n [29, 3, 1, \"\", \"remove_participant\"],\n- [29, 3, 1, \"\", \"set_avatar\"],\n [29, 3, 1, \"\", \"update_info\"]\n ],\n \"slidge.group.LegacyParticipant\": [\n- [29, 3, 1, \"\", \"ack\"],\n- [29, 3, 1, \"\", \"active\"],\n- [29, 3, 1, \"\", \"away\"],\n [29, 3, 1, \"\", \"ban\"],\n- [29, 3, 1, \"\", \"busy\"],\n- [29, 3, 1, \"\", \"composing\"],\n- [29, 3, 1, \"\", \"correct\"],\n- [29, 3, 1, \"\", \"displayed\"],\n- [29, 3, 1, \"\", \"extended_away\"],\n- [29, 3, 1, \"\", \"gone\"],\n- [29, 3, 1, \"\", \"inactive\"],\n- [29, 3, 1, \"\", \"invite_to\"],\n [29, 3, 1, \"\", \"kick\"],\n [29, 3, 1, \"\", \"leave\"],\n- [29, 3, 1, \"\", \"offline\"],\n- [29, 3, 1, \"\", \"online\"],\n- [29, 3, 1, \"\", \"paused\"],\n- [29, 3, 1, \"\", \"react\"],\n- [29, 3, 1, \"\", \"received\"],\n- [29, 3, 1, \"\", \"retract\"],\n- [29, 3, 1, \"\", \"send_file\"],\n- [29, 3, 1, \"\", \"send_initial_presence\"],\n- [29, 3, 1, \"\", \"send_text\"]\n+ [29, 3, 1, \"\", \"send_initial_presence\"]\n ],\n \"slidge.group.MucType\": [\n [29, 2, 1, \"\", \"CHANNEL\"],\n [29, 2, 1, \"\", \"CHANNEL_NON_ANONYMOUS\"],\n [29, 2, 1, \"\", \"GROUP\"]\n ],\n \"slidge.main\": [\n@@ -1915,38 +1731,38 @@\n \"00\": [11, 13],\n \"0004\": [26, 30, 32],\n \"0045\": [8, 29, 33],\n \"0050\": [41, 43],\n \"0055\": [30, 32, 35, 44],\n \"0077\": [27, 30, 32, 35, 48],\n \"0084\": [30, 35],\n- \"0085\": [28, 29, 30, 32, 33, 35],\n+ \"0085\": [30, 32, 33, 35],\n \"01\": [15, 17, 20, 25],\n- \"0100\": [28, 29, 30, 32, 33, 41],\n+ \"0100\": [30, 32, 33, 41],\n \"0106\": [28, 29, 33],\n \"0114\": 5,\n- \"0184\": [28, 29, 30, 32, 33],\n+ \"0184\": [30, 32, 33],\n \"02\": 18,\n- \"0203\": [28, 29, 32, 33],\n+ \"0203\": [32, 33],\n \"020569\": 23,\n \"022088\": 19,\n \"022994\": 10,\n- \"0249\": [28, 29, 30, 32, 33, 35],\n+ \"0249\": [30, 32, 33, 35],\n \"0280\": 41,\n- \"0308\": [28, 29, 30, 32, 33, 35],\n- \"0319\": [28, 29, 33],\n- \"0333\": [28, 29, 30, 32, 33, 35],\n+ \"0308\": [30, 32, 33, 35],\n+ \"0319\": 33,\n+ \"0333\": [30, 32, 33, 35],\n \"0356\": [8, 28],\n \"0363\": [0, 4, 28, 30, 35],\n \"04\": 20,\n \"0402\": [8, 29, 33],\n- \"0424\": [28, 29, 30, 32, 33, 35],\n+ \"0424\": [30, 32, 33, 35],\n \"0425\": [30, 35],\n- \"0444\": [28, 29, 30, 32, 33, 35],\n- \"0461\": [28, 29, 30, 32, 33, 35],\n+ \"0444\": [30, 32, 33, 35],\n+ \"0461\": [30, 32, 33, 35],\n \"05\": 17,\n \"06\": [10, 22, 23, 24, 25],\n \"07\": [9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 23, 24],\n \"073935\": 15,\n \"08\": [10, 11, 15, 19],\n \"09\": [12, 22],\n \"09f27f098baa\": [9, 24],\n@@ -2024,15 +1840,15 @@\n \"8d2ced764698\": [12, 19],\n \"984943\": 25,\n \"A\": [4, 6, 26, 28, 29, 30, 32, 33, 35, 41],\n \"As\": [2, 5, 42],\n \"At\": [0, 30, 35, 37],\n \"But\": [30, 32],\n \"By\": [2, 3, 28, 29, 30, 32, 33, 37, 40],\n- \"For\": [0, 1, 2, 3, 4, 7, 26, 28, 29, 30, 33, 36, 42, 43, 46, 47, 48],\n+ \"For\": [0, 1, 2, 3, 4, 7, 26, 30, 33, 36, 42, 43, 46, 47, 48],\n \"If\": [1, 6, 8, 26, 28, 29, 30, 32, 33, 35, 36, 44],\n \"In\": [0, 3, 8, 28, 29, 33, 41, 48],\n \"It\": [2, 28, 29, 30, 32, 33, 35],\n \"No\": [4, 5, 42],\n \"Not\": [30, 35],\n \"OR\": 26,\n \"On\": 30,\n@@ -2042,41 +1858,41 @@\n \"These\": [4, 43, 45, 47, 48],\n \"To\": [0, 3, 5, 28, 29, 31, 33, 36, 40, 46, 48],\n \"Will\": [26, 30, 35],\n \"With\": [8, 39, 40, 42],\n \"__init__\": [26, 28, 40],\n \"__main__\": 30,\n \"_privileg\": 4,\n- \"_send\": [28, 29, 32, 33],\n+ \"_send\": [32, 33],\n \"a_real_secret\": 3,\n \"aa9d82a7f6ef\": [20, 25],\n \"abba1ae0edb3\": [14, 21],\n- \"abl\": [28, 29, 32, 33, 37],\n+ \"abl\": [32, 33, 37],\n \"about\": [0, 1, 5, 6, 28, 29, 33, 37, 42],\n \"abov\": 4,\n \"abstract\": [26, 29, 30, 32, 33, 35],\n- \"abus\": [28, 29, 33],\n+ \"abus\": 33,\n \"accept\": [28, 36],\n \"accept_friend_request\": [28, 42],\n \"accept_subscript\": 28,\n \"access\": [0, 4, 26, 28, 30, 40, 42, 46],\n \"access_rul\": [4, 8],\n \"accomplish\": 28,\n \"accord\": [29, 30, 33, 35],\n \"account\": [0, 8, 30, 32, 35, 41, 45, 46, 48],\n \"achiev\": 3,\n- \"ack\": [28, 29, 30, 32, 33, 35, 42],\n- \"acknowledg\": [28, 29, 30, 32, 33, 35],\n+ \"ack\": [30, 32, 33, 35, 42],\n+ \"acknowledg\": [30, 32, 33, 35],\n \"acl\": [0, 4, 8],\n \"across\": [29, 33],\n- \"act\": [28, 29, 33, 45],\n+ \"act\": [33, 45],\n \"action\": [8, 28, 29, 30, 33, 35, 41],\n- \"activ\": [8, 28, 29, 30, 32, 33, 35, 42, 46],\n+ \"activ\": [8, 30, 32, 33, 35, 42, 46],\n \"actor\": 30,\n- \"actual\": [28, 29, 30, 32, 33, 40],\n+ \"actual\": [30, 32, 33, 40],\n \"ad\": [4, 17, 26, 28, 30, 32, 40, 41, 43, 44, 48],\n \"adapt\": 3,\n \"add\": [0, 1, 3, 8, 9, 14, 15, 17, 18, 23, 28, 29, 30, 33, 35, 40, 44],\n \"add_event_handl\": 40,\n \"add_to_bookmark\": [29, 33, 42],\n \"add_to_rost\": [28, 30, 32, 42],\n \"addit\": [1, 4, 26, 28, 29, 30, 32, 33, 35, 43, 46],\n@@ -2093,151 +1909,151 @@\n \"aka\": 29,\n \"alia\": 0,\n \"all\": [2, 3, 8, 27, 28, 29, 30, 31, 32, 33, 35, 45, 48],\n \"allow\": [0, 4, 8, 28, 29, 30, 32, 33, 40],\n \"almost\": [30, 32],\n \"alreadi\": [0, 28],\n \"also\": [3, 17, 28, 29, 30, 32, 33, 35, 36, 37, 40],\n- \"altern\": [28, 29, 32, 33, 45, 46],\n+ \"altern\": [29, 32, 33, 45, 46],\n \"alwai\": [29, 30, 32, 33, 35, 48],\n \"amd64\": 6,\n \"among\": 40,\n \"an\": [0, 1, 2, 4, 5, 6, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 45, 48],\n \"android\": 41,\n- \"ani\": [0, 1, 3, 6, 26, 28, 29, 30, 32, 33, 35, 41, 45],\n+ \"ani\": [0, 1, 3, 6, 26, 28, 30, 32, 33, 35, 41, 45],\n \"announc\": [29, 33],\n \"anonym\": [29, 33],\n- \"anoth\": [9, 28, 29, 30, 31, 32, 33, 35, 39, 42],\n+ \"anoth\": [9, 30, 31, 32, 33, 35, 39, 42],\n \"anotherexampl\": 30,\n \"anymor\": 28,\n \"anyth\": [26, 30, 41],\n \"anywai\": [29, 33],\n \"api\": [26, 28, 30, 40],\n- \"app\": [4, 8, 28, 29, 32, 33, 41],\n+ \"app\": [4, 8, 29, 32, 33, 41],\n \"appear\": 28,\n \"appli\": [30, 35, 46],\n \"appropri\": [1, 8, 26, 28, 30, 35, 37],\n \"apt\": 3,\n \"ar\": [2, 3, 4, 6, 26, 28, 29, 30, 32, 33, 35, 40, 41, 43, 45, 46, 47, 48],\n- \"arbitrari\": [28, 29, 30, 32, 33, 35],\n- \"archiv\": [23, 28, 29, 32, 33],\n- \"archive_onli\": [28, 29, 32, 33],\n+ \"arbitrari\": [28, 30, 32, 33, 35],\n+ \"archiv\": [23, 29, 32, 33],\n+ \"archive_onli\": [29, 32, 33],\n \"arg\": [2, 26, 28, 31],\n \"argument\": [2, 3, 26, 28, 30, 32, 37],\n \"arm64\": 6,\n \"around\": 30,\n \"artifact\": 6,\n \"aspect\": 30,\n \"aspir\": 32,\n \"assign\": [30, 32],\n- \"associ\": [26, 28, 29, 32, 33],\n+ \"associ\": [26, 29, 32, 33],\n \"assum\": [3, 29, 33],\n \"async\": [26, 28, 29, 30, 32, 33, 35, 40],\n- \"async_data_stream\": [28, 29, 32, 33],\n+ \"async_data_stream\": [32, 33],\n \"asyncio\": [30, 35],\n \"asynciter\": [28, 29, 32, 33],\n- \"attach\": [2, 4, 5, 28, 29, 32, 33, 42],\n+ \"attach\": [2, 4, 5, 32, 33, 42],\n \"attempt\": [28, 29, 30, 33, 35],\n \"attr\": [29, 33],\n \"attribut\": [9, 26, 28, 29, 30, 32, 33, 35, 37, 40],\n \"authent\": [1, 27],\n \"author\": [26, 30, 35],\n \"auto\": [3, 4, 29, 33],\n \"auto_join\": [29, 33],\n \"autom\": 45,\n \"automag\": [30, 32, 37, 40, 44],\n \"automat\": [3, 8, 26, 28, 29, 30, 31, 33, 35, 37],\n \"autoupd\": 3,\n \"avail\": [3, 6, 30, 31, 32, 35],\n- \"available_emoji\": [28, 29, 33, 42],\n+ \"available_emoji\": [33, 42],\n \"avatar\": [21, 25, 28, 29, 30, 32, 33, 35, 37, 41, 42],\n- \"avatar_id\": [28, 29, 33, 42],\n+ \"avatar_id\": [33, 42],\n \"avatar_id_typ\": [30, 32, 42],\n- \"avatar_unique_id\": [28, 29, 33],\n- \"avataridtyp\": [28, 29, 33],\n+ \"avatar_unique_id\": 33,\n+ \"avataridtyp\": 33,\n \"avatarmixin\": [28, 29, 33],\n- \"avatartyp\": [28, 29, 30, 33],\n+ \"avatartyp\": [30, 33],\n \"avoid\": [3, 28, 29, 32, 33],\n- \"awai\": [28, 29, 30, 32, 33, 37, 42],\n+ \"awai\": [30, 32, 33, 37, 42],\n \"await\": [28, 29, 30, 32, 33, 35, 37, 40],\n \"b\": 46,\n \"b33993e87db3\": [19, 22],\n \"b64b1a793483\": [16, 23],\n \"back\": [30, 32, 48],\n- \"backfil\": [28, 29, 32, 33, 42],\n- \"backward\": [28, 29, 33],\n+ \"backfil\": [29, 32, 33, 42],\n+ \"backward\": 33,\n \"ban\": [29, 33, 42],\n \"band\": 48,\n \"bare\": [30, 32],\n \"bare_jid\": [30, 32],\n \"base\": [26, 30, 31, 32, 40, 41],\n \"basegatewai\": [26, 27, 30, 32, 35, 37, 40, 42],\n \"basesess\": [26, 28, 29, 30, 32, 33, 35, 37, 40, 42],\n \"bash\": 3,\n \"basic\": [3, 30, 32, 41, 48],\n \"batch\": 28,\n \"beagleim\": 45,\n- \"becaus\": [1, 2, 8, 28, 29, 30, 32, 33, 35, 40],\n+ \"becaus\": [1, 2, 8, 29, 30, 32, 33, 35, 40],\n \"becom\": [27, 31],\n \"been\": [3, 9, 17, 28, 29, 30, 32, 33, 37],\n \"befor\": [28, 29, 30, 33, 35],\n \"behaviour\": [30, 35],\n \"being\": 46,\n \"below\": [0, 1],\n- \"best\": [28, 29, 32, 33],\n+ \"best\": [32, 33],\n \"beta\": 43,\n \"better\": 28,\n \"between\": [3, 37, 41],\n \"bin\": 3,\n \"bit\": [40, 41],\n \"black\": 36,\n \"bleed\": 6,\n- \"block\": [1, 8, 28, 29, 33],\n+ \"block\": [1, 8, 33],\n \"blog\": 42,\n \"blue\": [30, 35],\n \"bob\": 15,\n- \"bodi\": [28, 29, 32, 33, 40],\n+ \"bodi\": [32, 33, 40],\n \"bogu\": [10, 16],\n \"bookmark\": [8, 29, 33, 42],\n \"bookworm\": 6,\n- \"bool\": [26, 28, 29, 33],\n+ \"bool\": [26, 33],\n \"boolean\": 2,\n \"both\": [4, 8, 41],\n \"box\": 0,\n \"break\": 45,\n \"bridg\": [4, 8, 30, 35],\n- \"britnei\": [28, 29, 33],\n+ \"britnei\": 33,\n \"broken\": [4, 16],\n \"browser\": [36, 46],\n \"buddi\": 3,\n \"bug\": 28,\n \"build\": 6,\n \"built\": 6,\n \"bullsey\": 3,\n \"bunch\": 6,\n- \"busi\": [28, 29, 33, 42],\n+ \"busi\": [33, 42],\n \"bust\": [30, 32],\n \"by_legacy_id\": [28, 29, 33, 40, 42],\n- \"byte\": [28, 29, 30, 32, 33, 35],\n+ \"byte\": [29, 30, 32, 33, 35],\n \"bytes_\": [30, 35],\n \"c\": [2, 6, 29, 31, 33, 36],\n \"c4a8ec35a0e8\": [13, 24],\n \"ca\": 36,\n \"cach\": [28, 29, 33, 36],\n \"call\": [28, 29, 30, 32, 33, 35, 37, 40, 41],\n \"callabl\": [30, 32],\n \"callback\": 40,\n \"can\": [0, 1, 2, 3, 6, 8, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 40, 41, 43, 44, 45, 48],\n- \"cancel\": [28, 29, 33],\n+ \"cancel\": 33,\n \"cannot\": [29, 33, 44],\n \"cap\": 11,\n- \"capit\": [28, 29, 33],\n+ \"capit\": 33,\n \"caps_ver_bar\": 17,\n- \"caption\": [28, 29, 32, 33],\n- \"carbon\": [4, 28, 29, 32, 33, 41],\n+ \"caption\": [32, 33],\n+ \"carbon\": [4, 28, 32, 33, 41],\n \"care\": 0,\n \"case\": [6, 26, 28, 29, 30, 32, 33, 35, 37, 46],\n \"categori\": [26, 28, 30, 32, 42],\n \"central\": 28,\n \"cert\": 36,\n \"certif\": 36,\n \"cf\": 28,\n@@ -2272,26 +2088,26 @@\n \"commandcategori\": 26,\n \"commandresponsetyp\": 26,\n \"comment\": 4,\n \"commit\": 9,\n \"common\": [3, 5, 30, 31, 32, 42],\n \"commonli\": [29, 30, 33],\n \"commun\": [5, 8, 41],\n- \"compat\": [27, 28, 29, 33],\n+ \"compat\": [27, 33],\n \"complet\": [4, 29, 33],\n \"complex\": 36,\n \"compon\": [0, 1, 2, 3, 4, 5, 8, 30, 32, 35, 36, 41, 42, 43, 45, 48],\n \"component_avatar\": [30, 32, 42],\n \"component_nam\": [30, 32, 40, 42],\n \"component_secret\": [1, 4],\n \"component_typ\": [30, 32, 42],\n \"componentxmpp\": 30,\n- \"compos\": [28, 29, 32, 33, 36, 42],\n+ \"compos\": [32, 33, 36, 42],\n \"con\": 0,\n- \"concern\": [28, 29, 33],\n+ \"concern\": 33,\n \"conf\": [2, 3, 31],\n \"confer\": 42,\n \"config\": [0, 3, 4, 5, 8, 36, 42],\n \"configur\": [0, 1, 5, 29, 30, 31, 32, 33, 42, 46],\n \"confirm\": [26, 27, 28, 29, 30, 32, 33, 42],\n \"confirm_qr\": [27, 30, 32, 42],\n \"confirmationhandlertyp\": 26,\n@@ -2302,28 +2118,28 @@\n \"construct\": [29, 33],\n \"constructor\": 28,\n \"contact\": [8, 11, 14, 18, 19, 21, 26, 29, 30, 32, 33, 35, 39, 40, 41, 42, 45],\n \"contact_id\": 28,\n \"contain\": [1, 5, 6, 28, 30, 39, 42],\n \"container_nam\": 3,\n \"content\": [18, 39, 42],\n- \"content_typ\": [28, 29, 32, 33],\n+ \"content_typ\": [32, 33],\n \"continu\": 30,\n \"contribut\": [1, 3, 39, 42],\n \"control\": 28,\n \"conveni\": [40, 46],\n \"convent\": [31, 41],\n- \"convers\": [28, 29, 33, 45],\n+ \"convers\": [28, 33, 45],\n \"convert\": [28, 30, 32, 35],\n \"cool\": 41,\n \"copi\": 0,\n \"core\": [26, 28, 29, 30, 33, 35],\n \"coroutin\": 37,\n- \"correct\": [28, 29, 30, 32, 33, 35, 42],\n- \"correction_event_id\": [28, 29, 32, 33],\n+ \"correct\": [29, 30, 32, 33, 35, 42],\n+ \"correction_event_id\": [32, 33],\n \"correctli\": [29, 33],\n \"correspond\": [29, 33],\n \"could\": 40,\n \"cover\": [4, 28],\n \"cp\": 36,\n \"creat\": [3, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 30, 35, 40],\n \"creation\": [20, 30, 35],\n@@ -2332,49 +2148,49 @@\n \"crt\": 36,\n \"crucial\": 37,\n \"custom\": [28, 30, 32, 35, 37, 40],\n \"d\": [0, 2, 3, 4, 31],\n \"daemon\": [5, 6, 42],\n \"dai\": 0,\n \"dash\": 31,\n- \"data\": [5, 26, 28, 29, 30, 32, 33, 35, 36, 42],\n- \"data_stream\": [28, 29, 32, 33],\n+ \"data\": [5, 26, 29, 30, 32, 33, 35, 36, 42],\n+ \"data_stream\": [32, 33],\n \"date\": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25],\n- \"datetim\": [28, 29, 32, 33],\n+ \"datetim\": [32, 33],\n \"db\": [11, 19, 20, 22, 28, 30, 32, 36],\n \"dbm\": 6,\n \"deactiv\": 8,\n \"debian\": [2, 5, 36, 42],\n \"debug\": 31,\n \"decid\": [29, 33],\n \"declar\": 30,\n \"dedic\": [3, 30, 35],\n \"deepli\": [30, 35],\n \"def\": 40,\n \"default\": [2, 3, 28, 29, 30, 32, 33, 35],\n \"defin\": [8, 26, 27, 28, 30, 32, 35, 36, 37],\n \"definit\": [30, 35],\n- \"delai\": [28, 29, 32, 33],\n- \"delet\": [0, 28, 29, 32, 33],\n- \"deliveri\": [28, 29, 30, 32, 33],\n+ \"delai\": [32, 33],\n+ \"delet\": [0, 29, 32, 33],\n+ \"deliveri\": [30, 32, 33],\n \"depend\": [30, 40, 45],\n \"depth\": 0,\n \"describ\": [3, 30, 32, 35],\n \"descript\": [26, 29, 33, 42],\n \"design\": [39, 42],\n \"desktop\": 41,\n \"destin\": 40,\n \"destruct\": [29, 33],\n \"detach\": 3,\n- \"detail\": [0, 6, 28, 29, 30, 32, 33, 41],\n+ \"detail\": [0, 6, 28, 30, 32, 33, 41],\n \"detect\": [37, 46],\n \"determin\": [30, 32],\n \"dev\": [31, 42],\n \"develop\": [39, 42],\n- \"devic\": [28, 29, 30, 32, 33],\n+ \"devic\": [30, 32, 33],\n \"dialog\": [26, 30],\n \"dict\": [26, 30, 32, 35, 40],\n \"differ\": [1, 41, 48],\n \"dino\": 45,\n \"dir\": 31,\n \"dir1\": 2,\n \"dir2\": 2,\n@@ -2384,18 +2200,18 @@\n \"directori\": [0, 3],\n \"disco\": [28, 30, 32],\n \"discord\": [43, 45, 47, 48],\n \"discov\": [43, 48],\n \"discoveri\": [30, 32],\n \"discrimin\": 37,\n \"disk\": [29, 33],\n- \"displai\": [26, 28, 29, 30, 32, 33, 42],\n+ \"displai\": [26, 30, 32, 33, 42],\n \"dissect\": 40,\n \"distro\": [3, 6],\n- \"dnd\": [28, 29, 30, 33, 35],\n+ \"dnd\": [30, 33, 35],\n \"do\": [0, 1, 26, 28, 29, 30, 32, 33, 35, 40],\n \"doc\": [0, 1, 2, 5, 7, 43, 45, 47, 48],\n \"docker\": [3, 6, 36],\n \"dockerhub\": [5, 42],\n \"docroot\": [0, 4],\n \"document\": [0, 1, 3],\n \"doe\": [0, 1, 3, 4, 26, 29, 30, 32, 33, 42],\n@@ -2405,48 +2221,48 @@\n \"done\": [8, 28, 37, 41, 48],\n \"doubl\": 31,\n \"download\": 6,\n \"driver\": 3,\n \"drop\": 17,\n \"dude\": [30, 35],\n \"duper\": [3, 5, 36, 40],\n- \"duplic\": [28, 29, 32, 33],\n- \"dure\": [3, 28, 29, 32, 33, 36],\n+ \"duplic\": [32, 33],\n+ \"dure\": [3, 32, 33, 36],\n \"e\": [2, 3, 28, 29, 30, 33, 35],\n \"e91195719c2c\": [22, 25],\n \"each\": [1, 6, 26, 30, 35],\n \"earli\": [29, 33],\n \"easi\": [8, 46],\n \"easier\": 0,\n \"easiest\": [8, 36],\n \"easili\": 0,\n \"echo\": 3,\n \"edg\": 6,\n \"edit\": [2, 3, 29, 30, 33, 35],\n \"effect\": [28, 29, 30, 33, 40],\n- \"effici\": [28, 29, 33],\n- \"eg\": [0, 1, 2, 4, 26, 27, 28, 29, 30, 31, 32, 33, 35, 41],\n+ \"effici\": 33,\n+ \"eg\": [0, 1, 2, 4, 26, 27, 29, 30, 31, 32, 33, 35, 41],\n \"either\": [8, 26, 28, 30, 41, 43, 48],\n \"ejabberd\": [5, 42],\n \"ejabberd_http\": [0, 4],\n \"ejabberd_servic\": [1, 4],\n \"element\": [30, 35],\n \"els\": [29, 30, 32, 33],\n \"elsewher\": [29, 33],\n \"email\": 27,\n \"eman\": [29, 30, 33, 35],\n- \"emoji\": [8, 28, 29, 30, 32, 33, 35],\n+ \"emoji\": [8, 30, 32, 33, 35],\n \"empti\": [0, 30, 35],\n \"enabl\": 3,\n \"encod\": [30, 35],\n \"enough\": 28,\n \"ensur\": [28, 29, 33],\n \"enter\": [30, 32],\n \"entir\": 1,\n- \"entiti\": [8, 26, 28, 29, 30, 32, 33, 35, 37, 41],\n+ \"entiti\": [8, 26, 28, 30, 32, 33, 35, 37, 41],\n \"entri\": [5, 26],\n \"entrypoint\": [30, 32, 37, 42],\n \"enum\": 27,\n \"env\": [2, 31],\n \"environ\": [31, 36],\n \"equival\": [30, 32],\n \"error\": [26, 29, 33],\n@@ -2462,19 +2278,19 @@\n \"examin\": 3,\n \"exampl\": [1, 3, 5, 8, 28, 29, 30, 31, 32, 33, 34, 35, 39, 41, 42, 45, 48],\n \"except\": [30, 32, 42],\n \"exist\": [26, 40],\n \"exit\": [6, 31],\n \"expect\": [30, 32],\n \"experi\": 8,\n- \"explain\": [1, 28, 29, 32, 33],\n+ \"explain\": [1, 32, 33],\n \"export\": 3,\n \"expos\": 36,\n- \"extend\": [28, 29, 30, 32, 33],\n- \"extended_awai\": [28, 29, 33, 42],\n+ \"extend\": [30, 32, 33],\n+ \"extended_awai\": [33, 42],\n \"extens\": [3, 29, 33],\n \"extern\": 4,\n \"extra\": [30, 35],\n \"face\": 37,\n \"facebook\": [43, 45, 47, 48],\n \"fail\": 30,\n \"fake\": [32, 36, 40],\n@@ -2488,20 +2304,20 @@\n \"fetch\": [28, 29, 33, 39, 42],\n \"fetch_vcard\": [28, 42],\n \"few\": 45,\n \"fiction\": 5,\n \"field\": [26, 29, 30, 32, 33, 40, 42],\n \"field_typ\": 26,\n \"fieldtyp\": 26,\n- \"fight\": [28, 29, 33, 46],\n+ \"fight\": [33, 46],\n \"file\": [2, 3, 4, 5, 28, 29, 30, 31, 32, 33, 35, 40, 42],\n- \"file_nam\": [28, 29, 32, 33],\n- \"file_path\": [28, 29, 32, 33],\n- \"file_url\": [28, 29, 32, 33],\n- \"filenam\": [28, 29, 32, 33],\n+ \"file_nam\": [32, 33],\n+ \"file_path\": [32, 33],\n+ \"file_url\": [32, 33],\n+ \"filenam\": [32, 33],\n \"fill\": [4, 26, 28, 29, 33, 39, 40, 42],\n \"fill_first\": [29, 33],\n \"fill_histori\": [29, 33],\n \"fill_particip\": [29, 33, 42],\n \"final\": [27, 30, 32],\n \"find\": [0, 42, 45],\n \"firefox\": 46,\n@@ -2537,69 +2353,69 @@\n \"further\": [39, 42],\n \"g\": [2, 3, 28, 29, 30, 33, 35],\n \"gajim\": [36, 42, 45],\n \"garden\": [4, 8],\n \"gatewai\": [1, 3, 8, 26, 28, 29, 30, 33, 34, 35, 36, 41, 42, 43, 48],\n \"gatewayus\": [26, 30, 32, 35, 40],\n \"gdbm\": 6,\n- \"gener\": [0, 3, 5, 28, 29, 30, 32, 33, 35, 42, 43, 44, 45, 47, 48],\n- \"get\": [0, 4, 26, 28, 29, 30, 32, 33, 35],\n+ \"gener\": [0, 3, 5, 28, 30, 32, 33, 35, 42, 43, 44, 45, 47, 48],\n+ \"get\": [0, 4, 26, 29, 30, 32, 33, 35],\n \"get_form\": [26, 42],\n \"get_msg_xmpp_id_up_to\": [28, 42],\n \"get_particip\": [29, 33, 42],\n \"get_participant_by_contact\": [29, 33, 42],\n \"get_qr_text\": [27, 30, 32, 42],\n \"get_system_particip\": [29, 33, 42],\n \"get_user_particip\": [29, 33, 42],\n \"get_valu\": [26, 42],\n \"get_xml\": [26, 42],\n \"gib\": 0,\n \"git\": [6, 31],\n \"github\": 8,\n \"give\": 3,\n \"given\": [1, 26, 28, 29, 30, 32, 33, 35, 45],\n- \"global\": [28, 29, 30, 33, 35],\n+ \"global\": [30, 33, 35],\n \"global_rout\": 4,\n \"glossari\": 42,\n \"gnu\": 6,\n \"go\": [8, 29, 33, 39, 42, 48],\n \"goe\": [30, 35],\n- \"gone\": [28, 29, 32, 33, 42],\n+ \"gone\": [32, 33, 42],\n \"good\": [30, 35, 36, 40],\n \"great\": [32, 40],\n- \"group\": [26, 28, 30, 32, 34, 35, 39, 41, 42, 45],\n+ \"group\": [26, 30, 32, 34, 35, 39, 41, 42, 45],\n \"group_id\": [29, 33],\n \"guarante\": [29, 33],\n \"guess\": 44,\n \"guid\": 5,\n \"guidelin\": [39, 42],\n \"ha\": [0, 4, 28, 29, 30, 32, 33, 35, 41],\n \"hacki\": [30, 35],\n \"hand\": 30,\n \"handi\": 36,\n- \"handl\": [0, 2, 27, 28, 29, 30, 33],\n+ \"handl\": [0, 2, 27, 30, 33],\n \"handler\": [26, 40, 42],\n \"handler_arg\": [26, 42],\n \"handler_kwarg\": [26, 42],\n \"happen\": [3, 27, 30, 32, 43],\n \"has_descript\": [29, 33, 42],\n \"has_subject\": [29, 33, 42],\n \"hash\": [25, 30, 35],\n \"hash_\": [30, 35],\n \"hasn\": 28,\n \"hat\": [29, 33],\n \"have\": [0, 3, 9, 17, 28, 29, 30, 33, 36, 37, 40, 44, 46, 48],\n \"header\": 26,\n \"height\": [30, 35],\n \"help\": [26, 29, 30, 32, 33, 42, 43],\n- \"here\": [0, 3, 6, 8, 28, 29, 30, 32, 33, 40],\n+ \"here\": [0, 3, 6, 8, 28, 30, 32, 33, 40],\n \"hierarchi\": 26,\n \"higher\": 30,\n- \"hint\": [28, 29, 32, 33],\n- \"histori\": [28, 29, 32, 33, 41],\n+ \"hint\": [32, 33],\n+ \"histori\": [29, 32, 33, 41],\n \"history_fil\": 17,\n \"hoc\": [26, 41, 43, 48],\n \"hole\": [29, 33],\n \"holebound\": [29, 33],\n \"home\": [3, 31],\n \"home_dir\": 31,\n \"homepag\": 42,\n@@ -2625,84 +2441,84 @@\n \"http_respons\": [30, 35],\n \"hub\": [3, 6],\n \"huge\": [29, 33],\n \"human\": [3, 30, 35, 44],\n \"i\": [0, 1, 2, 3, 4, 6, 8, 9, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46, 48],\n \"id\": [3, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 32, 33, 35, 39, 40, 42],\n \"idea\": [30, 35],\n- \"ideal\": [28, 29, 32, 33],\n+ \"ideal\": [29, 32, 33],\n \"ident\": [28, 30, 35],\n \"identifi\": [28, 29, 30, 32, 33, 35],\n- \"ie\": [1, 28, 29, 30, 32, 33, 35, 41, 43],\n+ \"ie\": [1, 28, 30, 32, 33, 35, 41, 43],\n \"ifrom\": 26,\n \"igimonst\": 6,\n \"ignor\": [29, 33],\n \"im\": 8,\n \"imag\": [3, 26, 29, 30, 32, 33, 35],\n \"image_url\": [26, 42],\n \"immedi\": [29, 33],\n \"imperson\": 28,\n \"implement\": [26, 28, 29, 30, 32, 33, 35, 36],\n \"import\": [6, 26, 30, 37, 40],\n \"imposs\": 2,\n- \"inact\": [28, 29, 30, 32, 33, 35, 42],\n+ \"inact\": [30, 32, 33, 35, 42],\n \"includ\": [8, 20, 28],\n \"incom\": [30, 32, 35, 40],\n \"incoming_legacy_messag\": 40,\n \"incomingmessageev\": 40,\n \"incorpor\": 28,\n \"independ\": 5,\n \"index\": 42,\n \"indic\": [29, 30, 33, 35],\n \"individu\": 1,\n \"inevit\": 3,\n- \"infer\": [28, 29, 32, 33],\n+ \"infer\": [28, 32, 33],\n \"info\": [0, 1, 26, 39, 42],\n \"inform\": [0, 6, 28, 29, 33, 37, 41],\n \"inherit\": 30,\n \"ini\": 31,\n \"initi\": 30,\n \"input\": [26, 30, 32, 35, 42],\n \"insert\": [30, 35],\n \"insid\": [3, 31],\n \"instal\": [5, 36, 42],\n \"instanc\": [3, 28, 29, 30, 32, 33, 35, 40, 45, 46],\n \"instanti\": [28, 29, 30, 32, 33, 35],\n \"instead\": [2, 29, 30, 32, 33],\n \"instruct\": [3, 6, 30, 32],\n- \"int\": [28, 29, 30, 32, 33, 35],\n- \"interact\": [3, 28, 29, 30, 32, 33, 41, 45],\n- \"interfac\": [26, 28, 29, 32, 33, 41, 46],\n- \"intermedi\": [28, 29, 32, 33],\n+ \"int\": [29, 30, 32, 33, 35],\n+ \"interact\": [3, 30, 32, 33, 41, 45],\n+ \"interfac\": [26, 32, 33, 41, 46],\n+ \"intermedi\": [32, 33],\n \"intern\": [26, 28, 29, 32, 33],\n \"interpret\": [30, 35],\n \"invalid\": 37,\n \"invers\": 28,\n- \"invit\": [28, 29, 30, 32, 33, 35],\n+ \"invit\": [29, 30, 32, 33, 35],\n \"invite\": [30, 35],\n- \"invite_to\": [28, 29, 32, 33, 42],\n+ \"invite_to\": [32, 33, 42],\n \"involv\": 36,\n- \"io\": [3, 28, 29, 32, 33],\n+ \"io\": [3, 32, 33],\n \"ip\": [1, 4, 46],\n \"iq\": [4, 8, 29, 30, 32, 33, 35],\n \"is_friend\": 28,\n \"is_system\": [29, 33],\n \"is_us\": [29, 33],\n \"ish\": 0,\n \"issu\": [8, 42],\n \"item\": [26, 29, 30, 31, 32, 33, 42],\n- \"iter\": [26, 28, 29, 30, 32, 33, 35],\n+ \"iter\": [26, 30, 32, 33, 35],\n \"its\": [3, 5, 26, 28, 30, 35, 40],\n \"itself\": [29, 30, 33],\n \"jabber\": [4, 5, 8, 26, 30, 32, 35, 44],\n \"jid\": [0, 1, 3, 26, 27, 28, 29, 30, 32, 33, 36, 39, 40, 41, 42, 43, 44, 45],\n \"jid_usernam\": 28,\n \"jid_username_to_legacy_id\": [28, 29, 33, 37, 42],\n \"job\": 6,\n- \"join\": [28, 29, 30, 32, 33, 35],\n+ \"join\": [29, 30, 32, 33, 35],\n \"joke\": [30, 35],\n \"journalctl\": 3,\n \"journald\": 3,\n \"just\": [0, 2, 26, 29, 30, 32, 33, 35, 37, 40, 45],\n \"k\": [29, 33],\n \"keep\": [3, 5, 41, 42, 45],\n \"keep_backfilled_particip\": [29, 33, 42],\n@@ -2711,117 +2527,117 @@\n \"kick\": [29, 33, 42],\n \"kick_resourc\": [29, 33, 42],\n \"kindli\": 6,\n \"know\": [1, 29, 33],\n \"known\": [29, 33, 37],\n \"kwarg\": [28, 29, 30, 32, 33, 35, 40],\n \"label\": [3, 26, 42],\n- \"last\": [1, 28, 29, 32, 33],\n- \"last_seen\": [28, 29, 33],\n- \"later\": [28, 29, 30, 32, 33, 35],\n+ \"last\": [1, 29, 32, 33],\n+ \"last_seen\": 33,\n+ \"later\": [30, 32, 33, 35],\n \"latest\": [3, 28, 30, 32],\n \"launch\": [2, 3, 6, 30, 31, 36, 37, 40],\n \"leav\": [29, 30, 33, 35, 42],\n \"left\": [29, 33],\n \"legaci\": [2, 4, 5, 6, 7, 8, 16, 21, 23, 26, 27, 28, 29, 30, 32, 33, 34, 35, 39, 41, 42, 43, 45, 46, 47, 48],\n \"legacy_contact_id_typ\": [30, 32, 42],\n \"legacy_data\": [30, 32],\n- \"legacy_file_id\": [28, 29, 32, 33],\n+ \"legacy_file_id\": [32, 33],\n \"legacy_id\": [28, 29, 33, 37, 40, 42],\n \"legacy_id_to_jid_usernam\": [28, 29, 33, 37, 42],\n \"legacy_modul\": 37,\n \"legacy_module_data\": [30, 32],\n- \"legacy_msg_id\": [28, 29, 30, 32, 33, 35, 40],\n+ \"legacy_msg_id\": [30, 32, 33, 35, 40],\n \"legacy_msg_id_typ\": [30, 32, 42],\n \"legacy_room_id_typ\": [30, 32, 42],\n \"legacy_to_xmpp_msg_id\": [30, 35, 42],\n \"legacybookmark\": [29, 33, 37, 42],\n \"legacycontact\": [28, 29, 30, 32, 33, 35, 37, 40, 41, 42],\n \"legacycontacttyp\": 28,\n- \"legacyfileidtyp\": [28, 29, 33],\n+ \"legacyfileidtyp\": 33,\n \"legacygroupidtyp\": [29, 30, 33, 35],\n- \"legacymessagetyp\": [28, 29, 30, 32, 33, 35],\n- \"legacymuc\": [28, 29, 30, 32, 33, 35, 37, 42],\n+ \"legacymessagetyp\": [30, 32, 33, 35],\n+ \"legacymuc\": [29, 30, 32, 33, 35, 37, 42],\n \"legacyparticip\": [29, 30, 35, 42],\n \"legacyparticipanttyp\": [29, 33],\n \"legacyrost\": [28, 37, 42],\n- \"legacythreadtyp\": [28, 29, 30, 32, 33, 35],\n+ \"legacythreadtyp\": [30, 32, 33, 35],\n \"legacyuseridtyp\": 28,\n \"let\": [0, 3, 40],\n \"level\": [0, 26, 30, 35],\n \"lib\": [0, 3, 4, 40],\n \"librari\": 40,\n \"lift\": 16,\n \"like\": [0, 28, 29, 30, 33, 35, 36, 41, 44],\n \"limit\": [30, 32],\n \"line\": [0, 1, 3, 4],\n \"linger\": 3,\n- \"link\": [28, 29, 30, 32, 33, 35, 43, 45, 47, 48],\n- \"link_preview\": [28, 29, 30, 32, 33, 35],\n- \"linkpreview\": [28, 29, 30, 32, 33, 35],\n+ \"link\": [30, 32, 33, 35, 43, 45, 47, 48],\n+ \"link_preview\": [30, 32, 33, 35],\n+ \"linkpreview\": [30, 32, 33, 35],\n \"list\": [0, 8, 26, 28, 29, 30, 32, 33, 35, 41, 43],\n- \"listen\": [0, 1, 4, 28, 29, 30, 33, 35],\n- \"littl\": [28, 29, 32, 33],\n+ \"listen\": [0, 1, 4, 30, 33, 35],\n+ \"littl\": [32, 33],\n \"ll\": 5,\n- \"local\": [0, 1, 4, 28, 29, 33, 36, 39, 41, 42, 44],\n+ \"local\": [0, 1, 4, 28, 33, 36, 39, 41, 42, 44],\n \"localhost\": [1, 3, 36],\n \"locat\": [0, 3],\n \"lock\": 45,\n \"log\": [2, 3, 30, 32, 35, 40, 45],\n \"logic\": [28, 29, 30, 33, 35],\n \"login\": [3, 27, 29, 30, 32, 33, 35, 36, 37, 42],\n \"loginctl\": 3,\n \"logout\": [30, 32, 35, 42],\n- \"long\": [1, 26, 28, 29, 31, 32, 33],\n+ \"long\": [1, 26, 31, 32, 33],\n \"look\": [6, 28, 40],\n \"lot\": 36,\n \"low\": [30, 35, 42, 45],\n \"lua\": [1, 8],\n \"lucki\": 40,\n \"made\": 30,\n \"mai\": [0, 41, 43],\n \"main\": [30, 37, 42],\n- \"maintain\": [6, 28, 29, 33],\n+ \"maintain\": [6, 33],\n \"make\": [0, 1, 3, 6, 8, 26, 28, 29, 30, 32, 33, 43, 48],\n \"mandatori\": [26, 28],\n \"mani\": 28,\n \"manual\": [0, 28],\n \"map\": [3, 28, 29, 30, 33, 37, 40],\n \"mark\": [28, 30, 32, 35],\n \"mark_all_messag\": [30, 32, 42],\n- \"marker\": [28, 29, 32, 33],\n+ \"marker\": [28, 32, 33],\n \"master\": [6, 31],\n \"match\": 43,\n \"matridg\": [2, 5, 7],\n \"matrix\": [43, 45, 47, 48],\n \"matteridg\": [2, 5, 7],\n \"mattermost\": [30, 35, 43, 45, 46, 47, 48],\n \"max\": 0,\n- \"mayb\": [28, 29, 32, 33],\n+ \"mayb\": [28, 32, 33],\n \"mean\": [29, 30, 32, 33, 35, 45],\n \"meant\": [4, 28, 29, 30, 32, 33],\n \"measur\": 45,\n \"mechan\": [3, 29, 30, 33, 35, 40],\n \"member\": [29, 30, 33, 35],\n \"mention\": [30, 35],\n \"menu\": 48,\n \"merge_resourc\": [30, 35],\n \"merged_resourc\": [30, 35],\n \"mess\": [2, 9, 36],\n \"messag\": [4, 8, 23, 26, 28, 29, 30, 32, 33, 35, 40, 41, 44, 45],\n \"message_ids_are_thread_id\": [30, 35, 42],\n- \"messagerefer\": [28, 29, 32, 33],\n+ \"messagerefer\": [32, 33],\n \"messagetyp\": [30, 32],\n \"messeng\": [43, 45, 47, 48],\n \"messlidg\": [2, 5, 7],\n \"method\": [28, 29, 30, 32, 33, 35, 40],\n \"mib\": 0,\n \"might\": [0, 3, 8, 28, 30, 32, 48],\n \"migrat\": 20,\n- \"mime\": [28, 29, 30, 32, 33, 35],\n+ \"mime\": [29, 30, 32, 33, 35],\n \"minim\": [30, 39, 42],\n \"minimum\": [0, 29, 33, 37],\n \"mixin\": [28, 29, 33],\n \"mkdir\": 3,\n \"mobil\": 41,\n \"mock\": [36, 40],\n \"mod_http_fil\": 0,\n@@ -2843,15 +2659,15 @@\n \"move\": [0, 22],\n \"movim\": [36, 42, 45],\n \"msg\": [28, 30, 32, 35, 40],\n \"msg_kwarg\": [30, 32, 35],\n \"mtime\": 0,\n \"mto\": 30,\n \"mtype\": [30, 32],\n- \"muc\": [8, 17, 28, 29, 30, 32, 33, 35, 41, 42],\n+ \"muc\": [8, 17, 29, 30, 32, 33, 35, 41, 42],\n \"muc_legacy_id\": [30, 35],\n \"mucaffili\": [29, 33],\n \"mucrol\": [29, 33],\n \"muctyp\": [29, 42],\n \"multi\": [29, 33, 41],\n \"multipl\": 4,\n \"must\": [0, 1, 30, 35, 48],\n@@ -2861,40 +2677,40 @@\n \"name\": [3, 26, 28, 29, 30, 32, 33, 35, 37, 40, 42, 44, 45],\n \"nb\": [30, 35, 36],\n \"necessari\": [27, 29, 33],\n \"necessarili\": [30, 35],\n \"need\": [0, 3, 4, 8, 28, 29, 30, 32, 33, 35, 37, 43],\n \"network\": [3, 5, 27, 28, 29, 30, 32, 33, 35, 40, 41, 43, 44, 45, 46, 47, 48],\n \"never\": [17, 28],\n- \"new\": [3, 28, 29, 30, 32, 33, 35, 40],\n- \"new_text\": [28, 29, 32, 33],\n+ \"new\": [3, 29, 30, 32, 33, 35, 40],\n+ \"new_text\": [32, 33],\n \"newer\": 8,\n \"next\": 4,\n \"nginx\": [4, 5, 42],\n \"nick\": 24,\n \"nick_chang\": [29, 33],\n \"nicknam\": [13, 28, 29, 30, 33, 35],\n \"nicoco\": [6, 31, 42],\n \"nicocool84\": 3,\n \"node\": [26, 42],\n \"non\": [8, 28, 29, 31, 33],\n \"none\": [26, 28, 29, 30, 32, 33, 35, 46],\n \"normal\": [0, 45, 46],\n \"notabl\": [30, 32],\n \"note\": 4,\n- \"notif\": [28, 29, 32, 33],\n+ \"notif\": [29, 32, 33],\n \"now\": [0, 3, 40, 41],\n \"number\": [29, 30, 32, 33, 44, 45],\n- \"object\": [28, 29, 30, 32, 33, 35],\n+ \"object\": [30, 32, 33, 35],\n \"obtain\": [29, 33],\n \"off\": 2,\n \"offici\": [8, 27, 28, 29, 32, 33, 41],\n- \"offlin\": [28, 29, 30, 33, 35, 42],\n+ \"offlin\": [30, 33, 35, 42],\n \"often\": [30, 44],\n- \"okish\": [28, 29, 33],\n+ \"okish\": 33,\n \"old\": [0, 41],\n \"older\": 0,\n \"on_act\": [30, 35, 42],\n \"on_avatar\": [29, 30, 33, 35, 42],\n \"on_compos\": [30, 35, 42],\n \"on_correct\": [30, 35, 42],\n \"on_create_group\": [30, 35, 42],\n@@ -2915,31 +2731,31 @@\n \"on_retract\": [30, 35, 42],\n \"on_search\": [30, 35, 42],\n \"on_set_affili\": [29, 30, 33, 35, 42],\n \"on_set_config\": [29, 33, 42],\n \"on_set_subject\": [29, 33, 42],\n \"on_stick\": [30, 35, 42],\n \"on_text\": [30, 35, 42],\n- \"onc\": [28, 29, 30, 32, 33, 35],\n- \"one\": [0, 28, 29, 30, 32, 33, 35],\n+ \"onc\": [29, 30, 32, 33, 35],\n+ \"one\": [0, 29, 30, 32, 33, 35],\n \"onli\": [0, 8, 26, 27, 28, 29, 30, 32, 33, 35],\n- \"onlin\": [28, 29, 30, 33, 35, 42],\n+ \"onlin\": [29, 30, 33, 35, 42],\n \"open\": [30, 32],\n \"oper\": [28, 29, 33],\n- \"oppos\": [28, 29, 33],\n+ \"oppos\": 33,\n \"opt\": 2,\n \"option\": [0, 1, 2, 3, 4, 5, 7, 26, 27, 28, 29, 30, 32, 33, 35],\n \"order\": [0, 28],\n \"org\": [0, 1, 3, 4, 8, 28, 30, 32, 40, 41, 45],\n \"other\": [0, 1, 3, 4, 8, 28, 30, 40, 42, 45],\n \"otherwis\": 30,\n \"our\": 40,\n \"out\": [0, 30, 35],\n \"outcast\": [29, 33],\n- \"outgo\": [4, 8, 28, 29, 32, 33, 41],\n+ \"outgo\": [4, 8, 32, 33, 41],\n \"outsid\": [29, 33, 36],\n \"overlap\": 3,\n \"overrid\": [28, 29, 30, 32, 33, 35, 37, 40],\n \"overridden\": [28, 29, 30, 33, 35],\n \"overriden\": 30,\n \"overview\": 42,\n \"own\": [2, 5, 7, 28],\n@@ -2947,24 +2763,24 @@\n \"p\": [3, 29, 33, 36],\n \"packag\": [2, 5, 6, 39, 42],\n \"page\": [3, 42],\n \"paramet\": [26, 28, 29, 30, 32, 33, 35],\n \"pars\": 26,\n \"part\": [1, 4, 9, 28, 29, 33, 39, 40, 41, 42, 44],\n \"particip\": [19, 29, 30, 33, 35, 42],\n- \"pass\": [3, 26, 28, 29, 30, 32, 33, 35, 36],\n- \"password\": [1, 4, 28, 29, 30, 32, 33, 35, 36, 40],\n- \"path\": [0, 2, 4, 28, 29, 30, 31, 32, 33],\n- \"pathlib\": [28, 29, 32, 33],\n- \"paus\": [28, 29, 30, 32, 33, 35, 42],\n+ \"pass\": [3, 26, 28, 30, 32, 33, 35, 36],\n+ \"password\": [1, 4, 30, 32, 33, 35, 36, 40],\n+ \"path\": [0, 2, 4, 30, 31, 32, 33],\n+ \"pathlib\": [32, 33],\n+ \"paus\": [30, 32, 33, 35, 42],\n \"pc\": 28,\n \"pend\": [30, 32],\n \"per\": [0, 3, 24, 29, 30, 32, 33],\n \"perform\": [28, 30, 35],\n- \"period\": [28, 29, 32, 33],\n+ \"period\": [32, 33],\n \"perman\": [29, 33],\n \"permiss\": 3,\n \"permit\": 32,\n \"persist\": [5, 22, 25, 29, 30, 32, 33, 42],\n \"pfrom\": 30,\n \"phone\": [30, 32, 44, 45],\n \"pictur\": 41,\n@@ -2980,46 +2796,46 @@\n \"popul\": 28,\n \"port\": [0, 1, 4, 36],\n \"posit\": 28,\n \"possibl\": [3, 28, 29, 30, 33, 35, 36],\n \"post\": 42,\n \"potenti\": [30, 35],\n \"pre\": [26, 39, 42],\n- \"prefer\": [28, 29, 33, 48],\n+ \"prefer\": [33, 48],\n \"prefix\": [0, 31],\n \"presenc\": [28, 29, 30, 33, 35, 44],\n \"presence_id\": [29, 33],\n \"presenceshow\": [30, 35],\n \"present\": [26, 29, 30, 32, 33, 35, 43],\n \"preserv\": [29, 33],\n \"pretti\": [41, 46],\n \"prevent\": 46,\n- \"preview\": [28, 29, 30, 32, 33, 35],\n- \"previous\": [28, 29, 32, 33],\n+ \"preview\": [30, 32, 33, 35],\n+ \"previous\": [32, 33],\n \"privat\": [26, 29, 42],\n \"privileg\": [1, 4, 5, 29, 33, 42],\n \"privileged_ent\": [4, 8],\n \"pro\": 0,\n \"probabl\": [29, 33, 37],\n \"problem\": 45,\n \"process\": [1, 5, 30, 32],\n- \"processinghint\": [28, 29, 32, 33],\n+ \"processinghint\": [32, 33],\n \"processon\": 8,\n \"profil\": [28, 36, 41, 42, 45],\n \"profound\": [30, 35],\n \"promot\": [29, 33],\n \"prompt\": [26, 30, 32, 35, 42],\n \"proper\": [29, 30, 32, 33, 37],\n \"proper_receipt\": [30, 32, 42],\n \"properli\": 28,\n \"properti\": [28, 29, 33],\n \"prosodi\": [5, 36, 42],\n \"prosodyctl\": 8,\n \"protocol\": [4, 5, 8, 30, 32],\n- \"provid\": [6, 28, 29, 30, 32, 33, 40, 41, 43],\n+ \"provid\": [6, 29, 30, 32, 33, 40, 41, 43],\n \"proxi\": 46,\n \"pseudo\": [0, 29, 33],\n \"pseudopresenceshow\": [30, 35],\n \"pto\": 30,\n \"public\": [29, 30],\n \"pubsub\": [4, 8],\n \"puppet\": [8, 45],\n@@ -3027,76 +2843,76 @@\n \"push\": [6, 29, 33],\n \"put\": [31, 40],\n \"put_url\": [0, 4],\n \"py\": [26, 30, 40],\n \"pypi\": 6,\n \"pyproject\": 36,\n \"pytest\": 36,\n- \"python\": [28, 29, 33, 40, 42],\n+ \"python\": [33, 40, 42],\n \"python3\": 6,\n \"qr\": [26, 27, 30, 32, 35],\n \"qrcode\": [27, 30, 32, 42],\n \"queri\": [28, 30, 35],\n- \"quot\": [28, 29, 30, 32, 33, 35],\n+ \"quot\": [30, 32, 33, 35],\n \"quota\": 0,\n \"r\": [29, 33],\n \"rais\": [26, 27, 29, 30, 32, 33, 35, 37],\n \"raise_if_not_author\": [26, 42],\n \"raise_if_not_found\": [29, 33],\n- \"random\": [28, 29, 32, 33, 44],\n+ \"random\": [32, 33, 44],\n \"rang\": 3,\n \"rather\": [4, 28],\n \"raver\": 6,\n \"re\": [4, 6, 29, 33],\n \"reach\": 45,\n- \"react\": [28, 29, 30, 32, 33, 35, 42],\n- \"reaction\": [8, 28, 29, 30, 32, 33, 35],\n- \"read\": [0, 4, 8, 28, 29, 30, 32, 33, 35],\n+ \"react\": [30, 32, 33, 35, 42],\n+ \"reaction\": [8, 29, 30, 32, 33, 35],\n+ \"read\": [0, 4, 8, 28, 30, 32, 33, 35],\n \"readabl\": [0, 30, 35, 44],\n \"readm\": 6,\n \"real\": [1, 30, 32],\n \"realist\": [29, 33],\n \"realli\": [29, 33, 40],\n \"reason\": [28, 29, 30, 32, 33, 35],\n \"rebas\": 9,\n- \"receipt\": [28, 29, 30, 32, 33],\n+ \"receipt\": [30, 32, 33],\n \"receiv\": [0, 26, 27, 28, 29, 30, 32, 33, 35, 40, 42, 45],\n \"recent\": [29, 33],\n- \"recipi\": [28, 29, 30, 32, 33, 35, 40],\n+ \"recipi\": [30, 32, 33, 35, 40],\n \"recipienttyp\": [30, 35],\n \"reciproc\": 28,\n \"recommend\": [0, 2, 3, 8, 28, 29, 30, 33, 35],\n \"red\": [30, 35],\n- \"refer\": [2, 5, 6, 7, 28, 29, 30, 32, 33, 35, 36, 40, 41],\n- \"reflect\": [8, 28, 29, 32, 33],\n+ \"refer\": [2, 5, 6, 7, 30, 32, 33, 35, 36, 40, 41],\n+ \"reflect\": [8, 32, 33],\n \"refus\": 28,\n \"regist\": [0, 26, 30, 32, 35, 36, 41, 42, 48],\n \"registr\": [27, 30, 32, 35, 40, 42, 44, 45],\n \"registrar\": [28, 30, 32],\n \"registration_field\": [27, 30, 32, 40, 42],\n \"registration_form\": [26, 30, 32, 40],\n \"registration_instruct\": [27, 30, 32, 42],\n \"registration_typ\": [30, 32, 42],\n \"registrationtyp\": [27, 30, 32, 42],\n \"regularli\": 0,\n \"reject_friend_request\": [28, 42],\n \"reject_subscript\": 28,\n- \"rel\": [28, 29, 32, 33],\n+ \"rel\": [32, 33],\n \"relat\": [28, 29, 30],\n \"releas\": 6,\n \"relev\": 4,\n \"reli\": [19, 28],\n \"reload\": [3, 8, 36],\n \"remov\": [0, 3, 8, 10, 16, 28, 29, 30, 32, 33, 35, 42, 43],\n \"remove_particip\": [29, 33, 42],\n \"renam\": [29, 33],\n \"repeat\": 4,\n \"replac\": 1,\n \"repli\": [28, 30, 32, 35],\n- \"reply_to\": [28, 29, 30, 32, 33, 35],\n+ \"reply_to\": [30, 32, 33, 35],\n \"reply_to_fallback_text\": [30, 35],\n \"reply_to_msg_id\": [30, 35],\n \"repo\": [6, 36],\n \"report\": 26,\n \"repres\": [26, 28, 29, 30, 33, 35, 37, 40, 41],\n \"request\": [0, 26, 28, 29, 30, 32, 33, 35, 41, 44],\n \"request_handl\": [0, 4],\n@@ -3104,17 +2920,17 @@\n \"resourc\": [0, 28, 29, 30, 33, 35, 42],\n \"resourcedict\": [30, 35],\n \"respect\": [30, 35],\n \"respond\": 28,\n \"respons\": [29, 30, 32, 33, 35],\n \"responsetyp\": 26,\n \"restart\": [8, 29, 33],\n- \"restrict\": [0, 28, 29, 30, 32, 33, 35],\n+ \"restrict\": [0, 30, 32, 33, 35],\n \"result\": [26, 30, 32],\n- \"retract\": [8, 28, 29, 30, 32, 33, 35, 42],\n+ \"retract\": [8, 30, 32, 33, 35, 42],\n \"retriev\": [26, 28, 29, 33, 40],\n \"return\": [6, 26, 28, 29, 30, 32, 33, 35],\n \"rev\": 16,\n \"revis\": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25],\n \"right\": 40,\n \"rm\": 3,\n \"rock\": 8,\n@@ -3141,35 +2957,35 @@\n \"section\": [0, 4, 40],\n \"secur\": [45, 46],\n \"see\": [0, 1, 4, 6, 26, 27, 30, 32, 35, 40, 41, 45, 48],\n \"seen\": [30, 32],\n \"select\": [36, 48],\n \"self\": [26, 28, 29, 30, 33, 35, 36, 40],\n \"send\": [26, 28, 29, 30, 32, 33, 35, 40, 43, 45],\n- \"send_fil\": [28, 29, 30, 32, 33, 42],\n+ \"send_fil\": [30, 32, 33, 42],\n \"send_gateway_invit\": [30, 35, 42],\n \"send_gateway_messag\": [30, 35, 42],\n \"send_gateway_statu\": [30, 35, 42],\n \"send_initial_pres\": [29, 33, 42],\n- \"send_kwarg\": [28, 29, 32, 33],\n+ \"send_kwarg\": [32, 33],\n \"send_messag\": 40,\n \"send_pres\": 30,\n \"send_qr\": [27, 30, 32, 35, 42],\n- \"send_text\": [28, 29, 30, 32, 33, 35, 40, 42],\n+ \"send_text\": [30, 32, 33, 35, 40, 42],\n \"send_xxxx\": [29, 33],\n- \"sender\": [28, 29, 30, 32, 33, 35, 40],\n- \"sens\": [28, 29, 32, 33],\n+ \"sender\": [30, 32, 33, 35, 40],\n+ \"sens\": [32, 33],\n \"sensit\": [26, 28],\n \"sent\": [8, 28, 29, 30, 32, 33, 35, 41],\n \"separ\": 3,\n \"sequenc\": [26, 28, 30, 32],\n \"seri\": 41,\n \"serialis\": [30, 32],\n \"serv\": [0, 40],\n- \"server\": [0, 3, 5, 8, 28, 29, 32, 33, 36, 40, 41, 42, 45, 46, 48],\n+ \"server\": [0, 3, 5, 8, 29, 32, 33, 36, 40, 41, 42, 45, 46, 48],\n \"server_nam\": 0,\n \"server_user_rol\": 0,\n \"servic\": [0, 3, 5, 8, 28, 29, 30, 32, 33, 35, 39, 42, 48],\n \"session\": [26, 28, 29, 30, 32, 33, 34, 42],\n \"set\": [0, 1, 3, 4, 8, 28, 29, 30, 32, 33, 35, 36, 46, 48],\n \"set_avatar\": [28, 29, 33, 42],\n \"setter\": [12, 13],\n@@ -3190,15 +3006,15 @@\n \"signal\": [43, 45, 46, 47, 48],\n \"signatur\": 40,\n \"signifi\": 28,\n \"sigterminterrupt\": [31, 42],\n \"similar\": [0, 40],\n \"simpl\": [30, 32],\n \"sinc\": [4, 29, 30, 32, 33, 36, 41, 44],\n- \"singl\": [0, 26, 28, 29, 32, 33],\n+ \"singl\": [0, 26, 28, 32, 33],\n \"single_step_form\": [27, 30, 42],\n \"singleton\": [28, 30, 35],\n \"size\": 0,\n \"skidg\": [2, 5, 7],\n \"skype\": [43, 45, 47, 48],\n \"sleamdg\": [2, 5, 7],\n \"slidcord\": [2, 5, 7],\n@@ -3208,15 +3024,15 @@\n \"slidge_prosody_1\": 36,\n \"slidge_rul\": [4, 8],\n \"slidger\": 32,\n \"slidgetest\": 36,\n \"slidgnal\": [2, 5, 7],\n \"slidgram\": [2, 5, 7],\n \"slix_form\": 26,\n- \"slixmpp\": [26, 28, 29, 30, 32, 33],\n+ \"slixmpp\": [26, 29, 30, 32, 33],\n \"slot\": 0,\n \"sm\": [27, 30, 35],\n \"so\": [0, 3, 30, 32, 35, 41],\n \"socks5\": 46,\n \"softwar\": 43,\n \"some\": [2, 4, 9, 26, 28, 29, 30, 33, 35, 36, 45, 46],\n \"somebodi\": 30,\n@@ -3227,103 +3043,103 @@\n \"somewher\": [29, 33],\n \"soon\": [2, 38],\n \"sophist\": [30, 32],\n \"sort\": [30, 35],\n \"sound\": 41,\n \"sourc\": 23,\n \"sourcehut\": 42,\n- \"spear\": [28, 29, 33],\n+ \"spear\": 33,\n \"spec\": [30, 35],\n \"special_msg_id_prefix\": [30, 35, 42],\n \"specif\": [2, 3, 5, 7, 28, 29, 30, 31, 33, 35, 43, 45, 47, 48],\n- \"specifi\": [2, 28, 29, 30, 32, 33],\n+ \"specifi\": [2, 30, 32, 33],\n \"spoke\": [29, 33],\n \"sql\": [30, 32],\n \"sr\": [6, 31, 42],\n \"ssh\": 46,\n \"stabil\": [29, 33],\n \"stable_arch\": [29, 33, 42],\n \"stanza\": [29, 30, 33, 35],\n \"start\": [0, 3, 8, 30, 32, 35, 40],\n \"startup\": [2, 3, 28, 29, 30, 33, 35],\n- \"state\": [8, 28, 29, 30, 32, 33, 35],\n+ \"state\": [8, 28, 30, 32, 33, 35],\n \"static\": [0, 30, 35],\n- \"statu\": [28, 29, 30, 33, 35],\n+ \"statu\": [30, 33, 35],\n \"steam\": [43, 45, 47, 48],\n \"step\": [1, 27, 30],\n \"sticker\": [30, 35],\n \"still\": [30, 32],\n \"stop\": [3, 43],\n- \"store\": [2, 11, 12, 13, 19, 21, 25, 28, 29, 30, 32, 33],\n+ \"store\": [2, 11, 12, 13, 19, 21, 25, 29, 30, 32, 33],\n \"str\": [26, 28, 29, 30, 32, 33, 35, 40],\n- \"stream\": [28, 29, 32, 33, 36],\n+ \"stream\": [32, 33, 36],\n \"strictli\": [29, 33],\n \"string\": [26, 28, 30, 32, 35],\n \"structur\": 26,\n \"stuff\": [26, 28, 30, 32, 36, 43],\n \"su\": 3,\n \"subclass\": [26, 28, 30, 35, 37, 40],\n \"subdomain\": [0, 1],\n \"subgid\": 3,\n \"subject\": [12, 13, 29, 33],\n \"submiss\": 26,\n \"submodul\": [39, 42],\n \"subscrib\": [28, 40, 44],\n \"subscript\": 26,\n- \"subset\": [28, 29, 33],\n+ \"subset\": 33,\n \"subtl\": [29, 33],\n \"subuid\": 3,\n \"success\": [26, 29, 30, 33, 35, 42],\n \"successfulli\": [28, 30],\n \"sudo\": [3, 36],\n \"suggest\": [30, 35],\n \"summari\": [30, 35],\n \"super\": [3, 5, 36, 40],\n \"super_dup\": 40,\n \"superdup\": [0, 1, 2, 3, 4, 5, 8, 39, 40, 42],\n \"superdupercli\": 40,\n- \"support\": [28, 29, 30, 33, 35, 43, 44],\n- \"sure\": [0, 3, 6, 8, 26, 28, 29, 30, 32, 33, 43],\n+ \"support\": [29, 30, 33, 35, 43, 44],\n+ \"sure\": [0, 3, 6, 8, 26, 30, 32, 33, 43],\n \"surnam\": 44,\n \"sync\": [4, 41, 42, 45],\n- \"synchron\": [8, 28, 29, 32, 33],\n- \"system\": [3, 6, 28, 29, 32, 33],\n+ \"synchron\": [8, 32, 33],\n+ \"system\": [3, 6, 32, 33],\n \"systemctl\": 3,\n \"systemd\": [0, 2, 5, 6, 42],\n \"sysv\": 3,\n \"t\": [28, 29, 30, 32, 33, 35, 36, 40, 48],\n \"tabl\": [10, 16, 18, 21, 26],\n \"tableresult\": [26, 42],\n- \"tag\": [6, 28, 29, 32, 33],\n+ \"tag\": [6, 32, 33],\n \"take\": [0, 28, 29, 33],\n \"taken\": 8,\n \"talk\": 5,\n \"target\": [30, 32],\n \"task\": [30, 35],\n \"telegram\": [1, 3, 41, 43, 45, 46, 47, 48],\n \"temporarili\": 3,\n \"term\": [28, 45],\n- \"test\": [3, 26, 28, 29, 33, 36],\n- \"text\": [26, 28, 29, 30, 32, 33, 35, 40],\n+ \"test\": [3, 26, 33, 36],\n+ \"text\": [26, 28, 30, 32, 33, 35, 40],\n \"than\": [0, 30, 32],\n \"thank\": [30, 32],\n \"thei\": [3, 28, 29, 30, 32, 33, 41],\n \"them\": [26, 29, 33, 37, 43, 45],\n \"themselv\": 37,\n \"theori\": [29, 33],\n \"therefor\": 1,\n \"thi\": [0, 1, 2, 3, 4, 5, 6, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37, 40, 41, 43, 44, 45, 46, 48],\n \"thing\": [28, 40],\n \"those\": [28, 30, 32, 37],\n \"though\": 44,\n- \"thread\": [28, 29, 30, 32, 33, 35],\n+ \"thread\": [30, 32, 33, 35],\n \"through\": [28, 30, 32, 36],\n \"thrown\": [30, 32],\n \"thu\": [29, 33],\n- \"time\": [28, 29, 30, 32, 33, 35, 44],\n+ \"time\": [30, 32, 33, 35, 44],\n \"timer\": 0,\n \"titl\": [29, 30, 32, 33],\n \"tl\": [0, 4],\n \"tmp\": 36,\n \"todo\": 42,\n \"toler\": 46,\n \"toml\": 36,\n@@ -3334,22 +3150,22 @@\n \"tracker\": 42,\n \"traffic\": 46,\n \"transform\": 28,\n \"translat\": 28,\n \"translated_group_nam\": [30, 35],\n \"translated_user_nam\": [30, 35],\n \"transmit\": [28, 30, 35, 40],\n- \"transport\": [28, 29, 32, 33, 40],\n+ \"transport\": [32, 33, 40],\n \"tree\": 31,\n \"tri\": [29, 33],\n \"trigger\": [26, 29, 30, 33, 35, 41, 44, 45],\n \"true\": [0, 2, 4, 8, 28, 29, 30, 31, 32, 33, 35],\n- \"try\": [26, 28, 29, 32, 33, 36, 44],\n+ \"try\": [26, 29, 32, 33, 36, 44],\n \"tty\": 3,\n- \"tupl\": [28, 29, 32, 33],\n+ \"tupl\": [32, 33],\n \"turn\": [2, 29, 30, 32, 33],\n \"tutori\": [39, 42],\n \"twice\": 28,\n \"two\": [0, 8],\n \"two_factor_cod\": [27, 30, 42],\n \"twofactornotrequir\": [27, 42],\n \"type\": [0, 26, 28, 29, 30, 32, 33, 35, 42, 45],\n@@ -3363,29 +3179,29 @@\n \"un\": 30,\n \"unavail\": 28,\n \"uncom\": 4,\n \"under\": [0, 26],\n \"unescap\": 28,\n \"unicod\": [30, 35],\n \"unifi\": 26,\n- \"union\": [26, 28, 29, 30, 32, 33, 35],\n- \"uniqu\": [10, 16, 28, 29, 30, 32, 33],\n+ \"union\": [26, 29, 30, 32, 33, 35],\n+ \"uniqu\": [10, 16, 29, 30, 32, 33],\n \"unit\": [5, 42],\n \"unless\": [30, 32],\n \"unlik\": 36,\n \"unpublish\": [30, 35],\n \"unregist\": [30, 32, 42, 45],\n \"unsubscrib\": [28, 42],\n \"until\": [29, 33, 40],\n \"up\": [0, 1, 3, 4, 8, 9, 28, 29, 30, 33, 36, 46],\n \"updat\": [3, 28, 29, 33, 36, 37],\n \"update_info\": [28, 29, 33, 37, 42],\n \"upload\": [5, 6, 30, 35, 42],\n \"upon\": [30, 35],\n- \"url\": [0, 28, 29, 30, 32, 33, 35],\n+ \"url\": [0, 30, 32, 33, 35],\n \"us\": [0, 1, 2, 3, 4, 5, 8, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48],\n \"usabl\": [30, 35],\n \"usag\": 0,\n \"user\": [0, 3, 8, 24, 25, 26, 27, 28, 29, 30, 32, 33, 35, 36, 37, 40, 41, 42, 43, 47, 48],\n \"user_bare_jid\": [30, 32],\n \"user_jid\": [30, 32],\n \"user_stor\": 20,\n@@ -3430,23 +3246,23 @@\n \"well\": [29, 33],\n \"were\": [29, 30, 33, 35],\n \"what\": [1, 26, 28, 29, 30, 32, 33, 40, 42],\n \"whatsapp\": [1, 2, 5, 6, 7, 32, 43, 45, 47, 48],\n \"when\": [4, 26, 28, 29, 30, 32, 33, 35, 36, 37, 40, 44],\n \"whenev\": [0, 46],\n \"where\": [3, 26, 27, 28, 29, 30, 32, 33, 35],\n- \"whether\": [26, 28, 29, 32, 33],\n+ \"whether\": [26, 29, 32, 33],\n \"which\": [0, 3, 6, 27, 28, 29, 30, 32, 33, 35, 36, 37, 48],\n \"while\": [3, 26, 29, 33],\n \"who\": [26, 41],\n \"whole\": [27, 30],\n \"whose\": [29, 30, 32, 33],\n- \"why\": [28, 29, 32, 33],\n+ \"why\": [29, 32, 33],\n \"width\": [30, 35],\n- \"window\": [28, 29, 30, 32, 33],\n+ \"window\": [30, 32, 33],\n \"wise\": 28,\n \"within\": [29, 33],\n \"without\": [1, 30, 31, 35, 39, 40, 42],\n \"won\": [28, 30, 35, 48],\n \"word\": [26, 44],\n \"work\": [0, 1, 4, 8, 28, 30, 32, 40, 48],\n \"workaround\": [2, 29, 33, 36],\n"}]}]}]}]}]}