--- /srv/reproducible-results/rbuild-debian/r-b-build.EelcdNlm/b1/slidge_0.2.4-1_amd64.changes
+++ /srv/reproducible-results/rbuild-debian/r-b-build.EelcdNlm/b2/slidge_0.2.4-1_amd64.changes
├── Files
│ @@ -1,3 +1,3 @@
│
│ - 6d19f129f6f54df41534a4a836fb908f 2041508 python optional python-slidge-doc_0.2.4-1_all.deb
│ + 6397479738829f60b451da0d77a5f807 2042644 python optional python-slidge-doc_0.2.4-1_all.deb
│ 67a8399616cd98ae00c126a95e8d6119 128336 python optional python3-slidge_0.2.4-1_all.deb
├── python-slidge-doc_0.2.4-1_all.deb
│ ├── file list
│ │ @@ -1,3 +1,3 @@
│ │ -rw-r--r-- 0 0 0 4 2025-01-27 15:25:29.000000 debian-binary
│ │ --rw-r--r-- 0 0 0 4100 2025-01-27 15:25:29.000000 control.tar.xz
│ │ --rw-r--r-- 0 0 0 2037216 2025-01-27 15:25:29.000000 data.tar.xz
│ │ +-rw-r--r-- 0 0 0 4096 2025-01-27 15:25:29.000000 control.tar.xz
│ │ +-rw-r--r-- 0 0 0 2038356 2025-01-27 15:25:29.000000 data.tar.xz
│ ├── control.tar.xz
│ │ ├── control.tar
│ │ │ ├── ./control
│ │ │ │ @@ -1,13 +1,13 @@
│ │ │ │ Package: python-slidge-doc
│ │ │ │ Source: slidge
│ │ │ │ Version: 0.2.4-1
│ │ │ │ Architecture: all
│ │ │ │ Maintainer: Debian XMPP Maintainers
│ │ │ │ -Installed-Size: 4463
│ │ │ │ +Installed-Size: 4539
│ │ │ │ Depends: libjs-sphinxdoc (>= 8.1)
│ │ │ │ Section: python
│ │ │ │ Priority: optional
│ │ │ │ Multi-Arch: foreign
│ │ │ │ Homepage: https://slidge.im/
│ │ │ │ Description: XMPP puppeteer gateway library in Python (documentation)
│ │ │ │ Slidge makes writing gateways to other chat networks (legacy modules)
│ │ │ ├── ./md5sums
│ │ │ │ ├── ./md5sums
│ │ │ │ │┄ Files differ
│ ├── data.tar.xz
│ │ ├── data.tar
│ │ │ ├── file list
│ │ │ │ @@ -64,15 +64,15 @@
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 6513 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/index.rst.txt
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/register/
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 1502 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/register/index.rst.txt
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 9564 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/index.rst.txt
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/
│ │ │ │ --rw-r--r-- 0 root (0) root (0) 13782 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/index.rst.txt
│ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23585 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/index.rst.txt
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 27204 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/index.rst.txt
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/main/
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 883 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/main/index.rst.txt
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/superduper/
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/superduper/gateway/
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 15819 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/superduper/gateway/index.rst.txt
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/superduper/group/
│ │ │ │ @@ -162,38 +162,38 @@
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 66332 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/index.html
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/register/
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 29758 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/register/index.html
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 52919 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/index.html
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/
│ │ │ │ --rw-r--r-- 0 root (0) root (0) 82884 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/index.html
│ │ │ │ --rw-r--r-- 0 root (0) root (0) 155784 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/index.html
│ │ │ │ +-rw-r--r-- 0 root (0) root (0) 135406 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/index.html
│ │ │ │ +-rw-r--r-- 0 root (0) root (0) 155916 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/index.html
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/main/
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 23840 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/main/index.html
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/gateway/
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 93230 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/gateway/index.html
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/
│ │ │ │ --rw-r--r-- 0 root (0) root (0) 130691 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/index.html
│ │ │ │ +-rw-r--r-- 0 root (0) root (0) 130838 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/index.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 21610 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/index.html
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/
│ │ │ │ --rw-r--r-- 0 root (0) root (0) 103263 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/index.html
│ │ │ │ +-rw-r--r-- 0 root (0) root (0) 103424 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/index.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 26048 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/contributing.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 28959 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/design.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 20421 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/howto.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 22949 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/index.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 37114 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/dev/tutorial.html
│ │ │ │ --rw-r--r-- 0 root (0) root (0) 81659 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/genindex.html
│ │ │ │ +-rw-r--r-- 0 root (0) root (0) 85190 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/genindex.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 24930 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/glossary.html
│ │ │ │ --rw-r--r-- 0 root (0) root (0) 101219 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/index.html
│ │ │ │ --rw-r--r-- 0 root (0) root (0) 5288 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/objects.inv
│ │ │ │ +-rw-r--r-- 0 root (0) root (0) 106766 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/index.html
│ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5396 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/objects.inv
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 28097 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/py-modindex.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 18987 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/search.html
│ │ │ │ --rw-r--r-- 0 root (0) root (0) 98901 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/searchindex.js
│ │ │ │ +-rw-r--r-- 0 root (0) root (0) 102659 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/searchindex.js
│ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/user/
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 24401 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/user/commands.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 22245 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/user/contacts.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 24447 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/user/index.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 21578 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/user/low_profile.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 20444 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/user/note.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 24641 2025-01-27 15:25:29.000000 ./usr/share/doc/python-slidge-doc/html/user/register.html
│ │ │ ├── ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/index.rst.txt
│ │ │ │ @@ -153,14 +153,233 @@
│ │ │ │
│ │ │ │ .. py:method:: ban(reason = None)
│ │ │ │
│ │ │ │ Call this when the participant is banned from the room
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ + .. py:method:: online(status = None, last_seen = None)
│ │ │ │ +
│ │ │ │ + Send an "online" presence from this contact to the user.
│ │ │ │ +
│ │ │ │ + :param status: Arbitrary text, details of the status, eg: "Listening to Britney Spears"
│ │ │ │ + :param last_seen: For :xep:`0319`
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: away(status = None, last_seen = None)
│ │ │ │ +
│ │ │ │ + Send an "away" presence from this contact to the user.
│ │ │ │ +
│ │ │ │ + This is a global status, as opposed to :meth:`.LegacyContact.inactive`
│ │ │ │ + which concerns a specific conversation, ie a specific "chat window"
│ │ │ │ +
│ │ │ │ + :param status: Arbitrary text, details of the status, eg: "Gone to fight capitalism"
│ │ │ │ + :param last_seen: For :xep:`0319`
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: extended_away(status = None, last_seen = None)
│ │ │ │ +
│ │ │ │ + Send an "extended away" presence from this contact to the user.
│ │ │ │ +
│ │ │ │ + This is a global status, as opposed to :meth:`.LegacyContact.inactive`
│ │ │ │ + which concerns a specific conversation, ie a specific "chat window"
│ │ │ │ +
│ │ │ │ + :param status: Arbitrary text, details of the status, eg: "Gone to fight capitalism"
│ │ │ │ + :param last_seen: For :xep:`0319`
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: busy(status = None, last_seen = None)
│ │ │ │ +
│ │ │ │ + Send a "busy" (ie, "dnd") presence from this contact to the user,
│ │ │ │ +
│ │ │ │ + :param status: eg: "Trying to make sense of XEP-0100"
│ │ │ │ + :param last_seen: For :xep:`0319`
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: offline(status = None, last_seen = None)
│ │ │ │ +
│ │ │ │ + Send an "offline" presence from this contact to the user.
│ │ │ │ +
│ │ │ │ + :param status: eg: "Trying to make sense of XEP-0100"
│ │ │ │ + :param last_seen: For :xep:`0319`
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: invite_to(muc, reason = None, password = None, **send_kwargs)
│ │ │ │ +
│ │ │ │ + Send an invitation to join a group (:xep:`0249`) from this :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ + :param muc: the muc the user is invited to
│ │ │ │ + :param reason: a text explaining why the user should join this muc
│ │ │ │ + :param password: maybe this will make sense later? not sure
│ │ │ │ + :param send_kwargs: additional kwargs to be passed to _send()
│ │ │ │ + (internal use by slidge)
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: active(**kwargs)
│ │ │ │ +
│ │ │ │ + Send an "active" chat state (:xep:`0085`) from this
│ │ │ │ + :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: composing(**kwargs)
│ │ │ │ +
│ │ │ │ + Send a "composing" (ie "typing notification") chat state (:xep:`0085`)
│ │ │ │ + from this :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: paused(**kwargs)
│ │ │ │ +
│ │ │ │ + Send a "paused" (ie "typing paused notification") chat state
│ │ │ │ + (:xep:`0085`) from this :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: inactive(**kwargs)
│ │ │ │ +
│ │ │ │ + Send an "inactive" (ie "contact has not interacted with the chat session
│ │ │ │ + interface for an intermediate period of time") chat state (:xep:`0085`)
│ │ │ │ + from this :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: gone(**kwargs)
│ │ │ │ +
│ │ │ │ + Send a "gone" (ie "contact has not interacted with the chat session interface,
│ │ │ │ + system, or device for a relatively long period of time") chat state
│ │ │ │ + (:xep:`0085`) from this :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: ack(legacy_msg_id, **kwargs)
│ │ │ │ +
│ │ │ │ + Send an "acknowledged" message marker (:xep:`0333`) from this :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ + :param legacy_msg_id: The message this marker refers to
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: received(legacy_msg_id, **kwargs)
│ │ │ │ +
│ │ │ │ + Send a "received" message marker (:xep:`0333`) from this :term:`XMPP Entity`.
│ │ │ │ + If called on a :class:`LegacyContact`, also send a delivery receipt
│ │ │ │ + marker (:xep:`0184`).
│ │ │ │ +
│ │ │ │ + :param legacy_msg_id: The message this marker refers to
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: displayed(legacy_msg_id, **kwargs)
│ │ │ │ +
│ │ │ │ + Send a "displayed" message marker (:xep:`0333`) from this :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ + :param legacy_msg_id: The message this marker refers to
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. 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)
│ │ │ │ + :async:
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + Send a single file from this :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ + :param file_path: Path to the attachment
│ │ │ │ + :param async_data_stream: Alternatively (and ideally) an AsyncIterator yielding bytes
│ │ │ │ + :param data_stream: Alternatively, a stream of bytes (such as a File object)
│ │ │ │ + :param data: Alternatively, a bytes object
│ │ │ │ + :param file_url: Alternatively, a URL
│ │ │ │ + :param file_name: How the file should be named.
│ │ │ │ + :param content_type: MIME type, inferred from filename if not given
│ │ │ │ + :param legacy_msg_id: If you want to be able to transport read markers from the gateway
│ │ │ │ + user to the legacy network, specify this
│ │ │ │ + :param reply_to: Quote another message (:xep:`0461`)
│ │ │ │ + :param when: when the file was sent, for a "delay" tag (:xep:`0203`)
│ │ │ │ + :param caption: an optional text that is linked to the file
│ │ │ │ + :param legacy_file_id: A unique identifier for the file on the legacy network.
│ │ │ │ + Plugins should try their best to provide it, to avoid duplicates.
│ │ │ │ + :param thread:
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. 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)
│ │ │ │ +
│ │ │ │ + Send a text message from this :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ + :param body: Content of the message
│ │ │ │ + :param legacy_msg_id: If you want to be able to transport read markers from the gateway
│ │ │ │ + user to the legacy network, specify this
│ │ │ │ + :param when: when the message was sent, for a "delay" tag (:xep:`0203`)
│ │ │ │ + :param reply_to: Quote another message (:xep:`0461`)
│ │ │ │ + :param hints:
│ │ │ │ + :param thread:
│ │ │ │ + :param carbon: (only used if called on a :class:`LegacyContact`)
│ │ │ │ + Set this to ``True`` if this is actually a message sent **to** the
│ │ │ │ + :class:`LegacyContact` by the :term:`User`.
│ │ │ │ + Use this to synchronize outgoing history for legacy official apps.
│ │ │ │ + :param correction: whether this message is a correction or not
│ │ │ │ + :param correction_event_id: in the case where an ID is associated with the legacy
│ │ │ │ + 'correction event', specify it here to use it on the XMPP side. If not specified,
│ │ │ │ + a random ID will be used.
│ │ │ │ + :param link_previews: A little of sender (or server, or gateway)-generated
│ │ │ │ + previews of URLs linked in the body.
│ │ │ │ + :param archive_only: (only in groups) Do not send this message to user,
│ │ │ │ + but store it in the archive. Meant to be used during ``MUC.backfill()``
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. 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)
│ │ │ │ +
│ │ │ │ + Modify a message that was previously sent by this :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ + Uses last message correction (:xep:`0308`)
│ │ │ │ +
│ │ │ │ + :param new_text: New content of the message
│ │ │ │ + :param legacy_msg_id: The legacy message ID of the message to correct
│ │ │ │ + :param when: when the message was sent, for a "delay" tag (:xep:`0203`)
│ │ │ │ + :param reply_to: Quote another message (:xep:`0461`)
│ │ │ │ + :param hints:
│ │ │ │ + :param thread:
│ │ │ │ + :param carbon: (only in 1:1) Reflect a message sent to this ``Contact`` by the user.
│ │ │ │ + Use this to synchronize outgoing history for legacy official apps.
│ │ │ │ + :param archive_only: (only in groups) Do not send this message to user,
│ │ │ │ + but store it in the archive. Meant to be used during ``MUC.backfill()``
│ │ │ │ + :param correction_event_id: in the case where an ID is associated with the legacy
│ │ │ │ + 'correction event', specify it here to use it on the XMPP side. If not specified,
│ │ │ │ + a random ID will be used.
│ │ │ │ + :param link_previews: A little of sender (or server, or gateway)-generated
│ │ │ │ + previews of URLs linked in the body.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: react(legacy_msg_id, emojis = (), thread = None, **kwargs)
│ │ │ │ +
│ │ │ │ + Send a reaction (:xep:`0444`) from this :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ + :param legacy_msg_id: The message which the reaction refers to.
│ │ │ │ + :param emojis: An iterable of emojis used as reactions
│ │ │ │ + :param thread:
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: retract(legacy_msg_id, thread = None, **kwargs)
│ │ │ │ +
│ │ │ │ + Send a message retraction (:XEP:`0424`) from this :term:`XMPP Entity`.
│ │ │ │ +
│ │ │ │ + :param legacy_msg_id: Legacy ID of the message to delete
│ │ │ │ + :param thread:
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ .. py:class:: LegacyMUC(session, legacy_id, jid)
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ A room, a.k.a. a Multi-User Chat.
│ │ │ │
│ │ │ │ MUC instances are obtained by calling :py:meth:`slidge.group.bookmarks.LegacyBookmarks`
│ │ │ │ @@ -485,7 +704,58 @@
│ │ │ │ The legacy module is responsible for updating :attr:`.subject` of this
│ │ │ │ instance.
│ │ │ │
│ │ │ │ :param subject: The new subject for this room.
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ + .. py:property:: avatar_id
│ │ │ │ + :type: Optional[slidge.util.types.AvatarIdType]
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + The unique ID of this entity's avatar.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:property:: avatar
│ │ │ │ + :type: Optional[slidge.util.types.AvatarIdType]
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + This property can be used to set the avatar, but
│ │ │ │ + :py:meth:`~.AvatarMixin.set_avatar()` should be preferred because you can
│ │ │ │ + provide a unique ID for the avatar for efficient caching.
│ │ │ │ + Setting this is OKish in case the avatar type is a URL or a local path
│ │ │ │ + that can act as a legacy ID.
│ │ │ │ +
│ │ │ │ + Python's ``property`` is abused here to maintain backwards
│ │ │ │ + compatibility, but when getting it you actually get the avatar legacy
│ │ │ │ + ID.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: set_avatar(a, avatar_unique_id = None, delete = False, blocking=False, cancel=True)
│ │ │ │ + :async:
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + Set an avatar for this entity
│ │ │ │ +
│ │ │ │ + :param a: The avatar, in one of the types slidge supports
│ │ │ │ + :param avatar_unique_id: A globally unique ID for the avatar on the
│ │ │ │ + legacy network
│ │ │ │ + :param delete: If the avatar is provided as a Path, whether to delete
│ │ │ │ + it once used or not.
│ │ │ │ + :param blocking: Internal use by slidge for tests, do not use!
│ │ │ │ + :param cancel: Internal use by slidge, do not use!
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + .. py:method:: available_emojis(legacy_msg_id = None)
│ │ │ │ + :async:
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + Override this to restrict the subset of reactions this recipient
│ │ │ │ + can handle.
│ │ │ │ +
│ │ │ │ + :return: A set of emojis or None if any emoji is allowed
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ ├── ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/index.html
│ │ │ │ @@ -467,14 +467,295 @@
│ │ │ │
│ │ │ │ - Parameters:
│ │ │ │ reason (str | None)
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +online(status=None, last_seen=None)
│ │ │ │ +Send an “online” presence from this contact to the user.
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +
│ │ │ │ +status (Optional[str]) – Arbitrary text, details of the status, eg: “Listening to Britney Spears”
│ │ │ │ +last_seen (Optional[datetime.datetime]) – For XEP-0319
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +away(status=None, last_seen=None)
│ │ │ │ +Send an “away” presence from this contact to the user.
│ │ │ │ +This is a global status, as opposed to LegacyContact.inactive()
│ │ │ │ +which concerns a specific conversation, ie a specific “chat window”
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +
│ │ │ │ +status (Optional[str]) – Arbitrary text, details of the status, eg: “Gone to fight capitalism”
│ │ │ │ +last_seen (Optional[datetime.datetime]) – For XEP-0319
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +extended_away(status=None, last_seen=None)
│ │ │ │ +Send an “extended away” presence from this contact to the user.
│ │ │ │ +This is a global status, as opposed to LegacyContact.inactive()
│ │ │ │ +which concerns a specific conversation, ie a specific “chat window”
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +
│ │ │ │ +status (Optional[str]) – Arbitrary text, details of the status, eg: “Gone to fight capitalism”
│ │ │ │ +last_seen (Optional[datetime.datetime]) – For XEP-0319
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +busy(status=None, last_seen=None)
│ │ │ │ +Send a “busy” (ie, “dnd”) presence from this contact to the user,
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +-
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +offline(status=None, last_seen=None)
│ │ │ │ +Send an “offline” presence from this contact to the user.
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +-
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +invite_to(muc, reason=None, password=None, **send_kwargs)
│ │ │ │ +Send an invitation to join a group (XEP-0249) from this XMPP Entity.
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +
│ │ │ │ +muc (slidge.group.LegacyMUC) – the muc the user is invited to
│ │ │ │ +reason (Optional[str]) – a text explaining why the user should join this muc
│ │ │ │ +password (Optional[str]) – maybe this will make sense later? not sure
│ │ │ │ +send_kwargs – additional kwargs to be passed to _send()
│ │ │ │ +(internal use by slidge)
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +active(**kwargs)
│ │ │ │ +Send an “active” chat state (XEP-0085) from this
│ │ │ │ +XMPP Entity.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +composing(**kwargs)
│ │ │ │ +Send a “composing” (ie “typing notification”) chat state (XEP-0085)
│ │ │ │ +from this XMPP Entity.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +paused(**kwargs)
│ │ │ │ +Send a “paused” (ie “typing paused notification”) chat state
│ │ │ │ +(XEP-0085) from this XMPP Entity.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +inactive(**kwargs)
│ │ │ │ +Send an “inactive” (ie “contact has not interacted with the chat session
│ │ │ │ +interface for an intermediate period of time”) chat state (XEP-0085)
│ │ │ │ +from this XMPP Entity.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +gone(**kwargs)
│ │ │ │ +Send a “gone” (ie “contact has not interacted with the chat session interface,
│ │ │ │ +system, or device for a relatively long period of time”) chat state
│ │ │ │ +(XEP-0085) from this XMPP Entity.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +ack(legacy_msg_id, **kwargs)
│ │ │ │ +Send an “acknowledged” message marker (XEP-0333) from this XMPP Entity.
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +legacy_msg_id (slidge.util.types.LegacyMessageType) – The message this marker refers to
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +received(legacy_msg_id, **kwargs)
│ │ │ │ +Send a “received” message marker (XEP-0333) from this XMPP Entity.
│ │ │ │ +If called on a LegacyContact
, also send a delivery receipt
│ │ │ │ +marker (XEP-0184).
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +legacy_msg_id (slidge.util.types.LegacyMessageType) – The message this marker refers to
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +displayed(legacy_msg_id, **kwargs)
│ │ │ │ +Send a “displayed” message marker (XEP-0333) from this XMPP Entity.
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +legacy_msg_id (slidge.util.types.LegacyMessageType) – The message this marker refers to
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +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)
│ │ │ │ +Send a single file from this XMPP Entity.
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +
│ │ │ │ +file_path (Optional[Union[pathlib.Path, str]]) – Path to the attachment
│ │ │ │ +async_data_stream (Optional[AsyncIterator[bytes]]) – Alternatively (and ideally) an AsyncIterator yielding bytes
│ │ │ │ +data_stream (Optional[IO[bytes]]) – Alternatively, a stream of bytes (such as a File object)
│ │ │ │ +data (Optional[bytes]) – Alternatively, a bytes object
│ │ │ │ +file_url (Optional[str]) – Alternatively, a URL
│ │ │ │ +file_name (Optional[str]) – How the file should be named.
│ │ │ │ +content_type (Optional[str]) – MIME type, inferred from filename if not given
│ │ │ │ +legacy_msg_id (Optional[slidge.util.types.LegacyMessageType]) – If you want to be able to transport read markers from the gateway
│ │ │ │ +user to the legacy network, specify this
│ │ │ │ +reply_to (Optional[slidge.util.types.MessageReference]) – Quote another message (XEP-0461)
│ │ │ │ +when (Optional[datetime.datetime]) – when the file was sent, for a “delay” tag (XEP-0203)
│ │ │ │ +caption (Optional[str]) – an optional text that is linked to the file
│ │ │ │ +legacy_file_id (Optional[Union[str, int]]) – A unique identifier for the file on the legacy network.
│ │ │ │ +Plugins should try their best to provide it, to avoid duplicates.
│ │ │ │ +thread (Optional[slidge.util.types.LegacyThreadType])
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +- Return type:
│ │ │ │ +tuple[Optional[str], list[slixmpp.Message]]
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +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)
│ │ │ │ +Send a text message from this XMPP Entity.
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +
│ │ │ │ +body (str) – Content of the message
│ │ │ │ +legacy_msg_id (Optional[slidge.util.types.LegacyMessageType]) – If you want to be able to transport read markers from the gateway
│ │ │ │ +user to the legacy network, specify this
│ │ │ │ +when (Optional[datetime.datetime]) – when the message was sent, for a “delay” tag (XEP-0203)
│ │ │ │ +reply_to (Optional[slidge.util.types.MessageReference]) – Quote another message (XEP-0461)
│ │ │ │ +hints (Optional[Iterable[slidge.util.types.ProcessingHint]])
│ │ │ │ +thread (Optional[slidge.util.types.LegacyThreadType])
│ │ │ │ +carbon – (only used if called on a LegacyContact
)
│ │ │ │ +Set this to True
if this is actually a message sent to the
│ │ │ │ +LegacyContact
by the User.
│ │ │ │ +Use this to synchronize outgoing history for legacy official apps.
│ │ │ │ +correction – whether this message is a correction or not
│ │ │ │ +correction_event_id (Optional[slidge.util.types.LegacyMessageType]) – in the case where an ID is associated with the legacy
│ │ │ │ +‘correction event’, specify it here to use it on the XMPP side. If not specified,
│ │ │ │ +a random ID will be used.
│ │ │ │ +link_previews (Optional[list[slidge.util.types.LinkPreview]]) – A little of sender (or server, or gateway)-generated
│ │ │ │ +previews of URLs linked in the body.
│ │ │ │ +archive_only – (only in groups) Do not send this message to user,
│ │ │ │ +but store it in the archive. Meant to be used during MUC.backfill()
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +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)
│ │ │ │ +Modify a message that was previously sent by this XMPP Entity.
│ │ │ │ +Uses last message correction (XEP-0308)
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +
│ │ │ │ +new_text (str) – New content of the message
│ │ │ │ +legacy_msg_id (slidge.util.types.LegacyMessageType) – The legacy message ID of the message to correct
│ │ │ │ +when (Optional[datetime.datetime]) – when the message was sent, for a “delay” tag (XEP-0203)
│ │ │ │ +reply_to (Optional[slidge.util.types.MessageReference]) – Quote another message (XEP-0461)
│ │ │ │ +hints (Optional[Iterable[slidge.util.types.ProcessingHint]])
│ │ │ │ +thread (Optional[slidge.util.types.LegacyThreadType])
│ │ │ │ +carbon – (only in 1:1) Reflect a message sent to this Contact
by the user.
│ │ │ │ +Use this to synchronize outgoing history for legacy official apps.
│ │ │ │ +archive_only – (only in groups) Do not send this message to user,
│ │ │ │ +but store it in the archive. Meant to be used during MUC.backfill()
│ │ │ │ +correction_event_id (Optional[slidge.util.types.LegacyMessageType]) – in the case where an ID is associated with the legacy
│ │ │ │ +‘correction event’, specify it here to use it on the XMPP side. If not specified,
│ │ │ │ +a random ID will be used.
│ │ │ │ +link_previews (Optional[list[slidge.util.types.LinkPreview]]) – A little of sender (or server, or gateway)-generated
│ │ │ │ +previews of URLs linked in the body.
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +react(legacy_msg_id, emojis=(), thread=None, **kwargs)
│ │ │ │ +Send a reaction (XEP-0444) from this XMPP Entity.
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +
│ │ │ │ +legacy_msg_id (slidge.util.types.LegacyMessageType) – The message which the reaction refers to.
│ │ │ │ +emojis (Iterable[str]) – An iterable of emojis used as reactions
│ │ │ │ +thread (Optional[slidge.util.types.LegacyThreadType])
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +retract(legacy_msg_id, thread=None, **kwargs)
│ │ │ │ +Send a message retraction (XEP-0424) from this XMPP Entity.
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +-
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ -
│ │ │ │ class slidge.group.LegacyMUC(session, legacy_id, jid)
│ │ │ │ A room, a.k.a. a Multi-User Chat.
│ │ │ │ MUC instances are obtained by calling slidge.group.bookmarks.LegacyBookmarks()
│ │ │ │ @@ -768,15 +1049,15 @@
│ │ │ │ the XMPP client, there is no guarantee that this is valid or
│ │ │ │ correct.
│ │ │ │
│ │ │ │
│ │ │ │ - Returns:
│ │ │ │ A unique avatar identifier, which will trigger
│ │ │ │ slidge.group.room.LegacyMUC.set_avatar()
. Alternatively, None, if
│ │ │ │ -LegacyMUC.set_avatar()
is meant to be awaited somewhere else.
│ │ │ │ +LegacyMUC.set_avatar()
is meant to be awaited somewhere else.
│ │ │ │
│ │ │ │ Return type:
│ │ │ │ Optional[Union[int, str]]
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ @@ -904,14 +1185,83 @@
│ │ │ │
│ │ │ │ Return type:
│ │ │ │ None
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +property avatar_id: slidge.util.types.AvatarIdType | None
│ │ │ │ +The unique ID of this entity’s avatar.
│ │ │ │ +
│ │ │ │ +- Return type:
│ │ │ │ +Optional[slidge.util.types.AvatarIdType]
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +property avatar: slidge.util.types.AvatarIdType | None
│ │ │ │ +This property can be used to set the avatar, but
│ │ │ │ +set_avatar()
should be preferred because you can
│ │ │ │ +provide a unique ID for the avatar for efficient caching.
│ │ │ │ +Setting this is OKish in case the avatar type is a URL or a local path
│ │ │ │ +that can act as a legacy ID.
│ │ │ │ +Python’s property
is abused here to maintain backwards
│ │ │ │ +compatibility, but when getting it you actually get the avatar legacy
│ │ │ │ +ID.
│ │ │ │ +
│ │ │ │ +- Return type:
│ │ │ │ +Optional[slidge.util.types.AvatarIdType]
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +async set_avatar(a, avatar_unique_id=None, delete=False, blocking=False, cancel=True)
│ │ │ │ +Set an avatar for this entity
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +
│ │ │ │ +a (Optional[slidge.util.types.AvatarType]) – The avatar, in one of the types slidge supports
│ │ │ │ +avatar_unique_id (Optional[slidge.util.types.LegacyFileIdType]) – A globally unique ID for the avatar on the
│ │ │ │ +legacy network
│ │ │ │ +delete (bool) – If the avatar is provided as a Path, whether to delete
│ │ │ │ +it once used or not.
│ │ │ │ +blocking – Internal use by slidge for tests, do not use!
│ │ │ │ +cancel – Internal use by slidge, do not use!
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +- Return type:
│ │ │ │ +None
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +-
│ │ │ │ +async available_emojis(legacy_msg_id=None)
│ │ │ │ +Override this to restrict the subset of reactions this recipient
│ │ │ │ +can handle.
│ │ │ │ +
│ │ │ │ +- Returns:
│ │ │ │ +A set of emojis or None if any emoji is allowed
│ │ │ │ +
│ │ │ │ +- Parameters:
│ │ │ │ +legacy_msg_id (Optional[slidge.util.types.LegacyMessageType])
│ │ │ │ +
│ │ │ │ +- Return type:
│ │ │ │ +Optional[set[str]]
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ @@ -1005,14 +1355,33 @@
│ │ │ │
│ │ │ │
│ │ │ │ LegacyParticipant
│ │ │ │
│ │ │ │ LegacyMUC
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -129,14 +129,211 @@
│ │ │ │ │ Call this when the participant is kicked from the room
│ │ │ │ │ Parameters:
│ │ │ │ │ rreeaassoonn (_ss_tt_rr || NNoonnee)
│ │ │ │ │ ban(rreeaassoonn==NNoonnee)_¶
│ │ │ │ │ Call this when the participant is banned from the room
│ │ │ │ │ Parameters:
│ │ │ │ │ rreeaassoonn (_ss_tt_rr || NNoonnee)
│ │ │ │ │ + online(ssttaattuuss==NNoonnee, llaasstt__sseeeenn==NNoonnee)_¶
│ │ │ │ │ + Send an “online” presence from this contact to the user.
│ │ │ │ │ + Parameters:
│ │ │ │ │ + * ssttaattuuss (OOppttiioonnaall[[_ss_tt_rr]]) – Arbitrary text, details of the
│ │ │ │ │ + status, eg: “Listening to Britney Spears”
│ │ │ │ │ + * llaasstt__sseeeenn (OOppttiioonnaall[[_dd_aa_tt_ee_tt_ii_mm_ee_.._dd_aa_tt_ee_tt_ii_mm_ee]]) – For _X_E_P_-_0_3_1_9
│ │ │ │ │ + away(ssttaattuuss==NNoonnee, llaasstt__sseeeenn==NNoonnee)_¶
│ │ │ │ │ + Send an “away” presence from this contact to the user.
│ │ │ │ │ + This is a global status, as opposed to LegacyContact.inactive()
│ │ │ │ │ + which concerns a specific conversation, ie a specific “chat window”
│ │ │ │ │ + Parameters:
│ │ │ │ │ + * ssttaattuuss (OOppttiioonnaall[[_ss_tt_rr]]) – Arbitrary text, details of the
│ │ │ │ │ + status, eg: “Gone to fight capitalism”
│ │ │ │ │ + * llaasstt__sseeeenn (OOppttiioonnaall[[_dd_aa_tt_ee_tt_ii_mm_ee_.._dd_aa_tt_ee_tt_ii_mm_ee]]) – For _X_E_P_-_0_3_1_9
│ │ │ │ │ + extended_away(ssttaattuuss==NNoonnee, llaasstt__sseeeenn==NNoonnee)_¶
│ │ │ │ │ + Send an “extended away” presence from this contact to the user.
│ │ │ │ │ + This is a global status, as opposed to LegacyContact.inactive()
│ │ │ │ │ + which concerns a specific conversation, ie a specific “chat window”
│ │ │ │ │ + Parameters:
│ │ │ │ │ + * ssttaattuuss (OOppttiioonnaall[[_ss_tt_rr]]) – Arbitrary text, details of the
│ │ │ │ │ + status, eg: “Gone to fight capitalism”
│ │ │ │ │ + * llaasstt__sseeeenn (OOppttiioonnaall[[_dd_aa_tt_ee_tt_ii_mm_ee_.._dd_aa_tt_ee_tt_ii_mm_ee]]) – For _X_E_P_-_0_3_1_9
│ │ │ │ │ + busy(ssttaattuuss==NNoonnee, llaasstt__sseeeenn==NNoonnee)_¶
│ │ │ │ │ + Send a “busy” (ie, “dnd”) presence from this contact to the user,
│ │ │ │ │ + Parameters:
│ │ │ │ │ + * ssttaattuuss (OOppttiioonnaall[[_ss_tt_rr]]) – eg: “Trying to make sense of
│ │ │ │ │ + XEP-0100”
│ │ │ │ │ + * llaasstt__sseeeenn (OOppttiioonnaall[[_dd_aa_tt_ee_tt_ii_mm_ee_.._dd_aa_tt_ee_tt_ii_mm_ee]]) – For _X_E_P_-_0_3_1_9
│ │ │ │ │ + offline(ssttaattuuss==NNoonnee, llaasstt__sseeeenn==NNoonnee)_¶
│ │ │ │ │ + Send an “offline” presence from this contact to the user.
│ │ │ │ │ + Parameters:
│ │ │ │ │ + * ssttaattuuss (OOppttiioonnaall[[_ss_tt_rr]]) – eg: “Trying to make sense of
│ │ │ │ │ + XEP-0100”
│ │ │ │ │ + * llaasstt__sseeeenn (OOppttiioonnaall[[_dd_aa_tt_ee_tt_ii_mm_ee_.._dd_aa_tt_ee_tt_ii_mm_ee]]) – For _X_E_P_-_0_3_1_9
│ │ │ │ │ + invite_to(mmuucc, rreeaassoonn==NNoonnee, ppaasssswwoorrdd==NNoonnee, ****sseenndd__kkwwaarrggss)_¶
│ │ │ │ │ + Send an invitation to join a group (_X_E_P_-_0_2_4_9) from this _X_M_P_P
│ │ │ │ │ + _E_n_t_i_t_y.
│ │ │ │ │ + Parameters:
│ │ │ │ │ + * mmuucc (_ss_ll_ii_dd_gg_ee_.._gg_rr_oo_uu_pp_.._LL_ee_gg_aa_cc_yy_MM_UU_CC) – the muc the user is
│ │ │ │ │ + invited to
│ │ │ │ │ + * rreeaassoonn (OOppttiioonnaall[[_ss_tt_rr]]) – a text explaining why the user
│ │ │ │ │ + should join this muc
│ │ │ │ │ + * ppaasssswwoorrdd (OOppttiioonnaall[[_ss_tt_rr]]) – maybe this will make sense
│ │ │ │ │ + later? not sure
│ │ │ │ │ + * sseenndd__kkwwaarrggss – additional kwargs to be passed to _send()
│ │ │ │ │ + (internal use by slidge)
│ │ │ │ │ + active(****kkwwaarrggss)_¶
│ │ │ │ │ + Send an “active” chat state (_X_E_P_-_0_0_8_5) from this _X_M_P_P_ _E_n_t_i_t_y.
│ │ │ │ │ + composing(****kkwwaarrggss)_¶
│ │ │ │ │ + Send a “composing” (ie “typing notification”) chat state (_X_E_P_-_0_0_8_5)
│ │ │ │ │ + from this _X_M_P_P_ _E_n_t_i_t_y.
│ │ │ │ │ + paused(****kkwwaarrggss)_¶
│ │ │ │ │ + Send a “paused” (ie “typing paused notification”) chat state (_X_E_P_-
│ │ │ │ │ + _0_0_8_5) from this _X_M_P_P_ _E_n_t_i_t_y.
│ │ │ │ │ + inactive(****kkwwaarrggss)_¶
│ │ │ │ │ + Send an “inactive” (ie “contact has not interacted with the chat
│ │ │ │ │ + session interface for an intermediate period of time”) chat state
│ │ │ │ │ + (_X_E_P_-_0_0_8_5) from this _X_M_P_P_ _E_n_t_i_t_y.
│ │ │ │ │ + gone(****kkwwaarrggss)_¶
│ │ │ │ │ + Send a “gone” (ie “contact has not interacted with the chat session
│ │ │ │ │ + interface, system, or device for a relatively long period of time”)
│ │ │ │ │ + chat state (_X_E_P_-_0_0_8_5) from this _X_M_P_P_ _E_n_t_i_t_y.
│ │ │ │ │ + ack(lleeggaaccyy__mmssgg__iidd, ****kkwwaarrggss)_¶
│ │ │ │ │ + Send an “acknowledged” message marker (_X_E_P_-_0_3_3_3) from this _X_M_P_P
│ │ │ │ │ + _E_n_t_i_t_y.
│ │ │ │ │ + Parameters:
│ │ │ │ │ + lleeggaaccyy__mmssgg__iidd (sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee) – The
│ │ │ │ │ + message this marker refers to
│ │ │ │ │ + received(lleeggaaccyy__mmssgg__iidd, ****kkwwaarrggss)_¶
│ │ │ │ │ + Send a “received” message marker (_X_E_P_-_0_3_3_3) from this _X_M_P_P_ _E_n_t_i_t_y.
│ │ │ │ │ + If called on a LegacyContact, also send a delivery receipt marker
│ │ │ │ │ + (_X_E_P_-_0_1_8_4).
│ │ │ │ │ + Parameters:
│ │ │ │ │ + lleeggaaccyy__mmssgg__iidd (sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee) – The
│ │ │ │ │ + message this marker refers to
│ │ │ │ │ + displayed(lleeggaaccyy__mmssgg__iidd, ****kkwwaarrggss)_¶
│ │ │ │ │ + Send a “displayed” message marker (_X_E_P_-_0_3_3_3) from this _X_M_P_P_ _E_n_t_i_t_y.
│ │ │ │ │ + Parameters:
│ │ │ │ │ + lleeggaaccyy__mmssgg__iidd (sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee) – The
│ │ │ │ │ + message this marker refers to
│ │ │ │ │ + aassyynncc send_file(ffiillee__ppaatthh==NNoonnee, lleeggaaccyy__mmssgg__iidd==NNoonnee, **,
│ │ │ │ │ + aassyynncc__ddaattaa__ssttrreeaamm==NNoonnee, ddaattaa__ssttrreeaamm==NNoonnee, ddaattaa==NNoonnee, ffiillee__uurrll==NNoonnee,
│ │ │ │ │ + ffiillee__nnaammee==NNoonnee, ccoonntteenntt__ttyyppee==NNoonnee, rreeppllyy__ttoo==NNoonnee, wwhheenn==NNoonnee,
│ │ │ │ │ + ccaappttiioonn==NNoonnee, lleeggaaccyy__ffiillee__iidd==NNoonnee, tthhrreeaadd==NNoonnee, ****kkwwaarrggss)_¶
│ │ │ │ │ + Send a single file from this _X_M_P_P_ _E_n_t_i_t_y.
│ │ │ │ │ + Parameters:
│ │ │ │ │ + * ffiillee__ppaatthh (OOppttiioonnaall[[UUnniioonn[[_pp_aa_tt_hh_ll_ii_bb_.._PP_aa_tt_hh,, _ss_tt_rr]]]]) – Path
│ │ │ │ │ + to the attachment
│ │ │ │ │ + * aassyynncc__ddaattaa__ssttrreeaamm (OOppttiioonnaall[[AAssyynnccIItteerraattoorr[[_bb_yy_tt_ee_ss]]]]) –
│ │ │ │ │ + Alternatively (and ideally) an AsyncIterator yielding
│ │ │ │ │ + bytes
│ │ │ │ │ + * ddaattaa__ssttrreeaamm (OOppttiioonnaall[[IIOO[[_bb_yy_tt_ee_ss]]]]) – Alternatively, a
│ │ │ │ │ + stream of bytes (such as a File object)
│ │ │ │ │ + * ddaattaa (OOppttiioonnaall[[_bb_yy_tt_ee_ss]]) – Alternatively, a bytes object
│ │ │ │ │ + * ffiillee__uurrll (OOppttiioonnaall[[_ss_tt_rr]]) – Alternatively, a URL
│ │ │ │ │ + * ffiillee__nnaammee (OOppttiioonnaall[[_ss_tt_rr]]) – How the file should be
│ │ │ │ │ + named.
│ │ │ │ │ + * ccoonntteenntt__ttyyppee (OOppttiioonnaall[[_ss_tt_rr]]) – MIME type, inferred from
│ │ │ │ │ + filename if not given
│ │ │ │ │ + * lleeggaaccyy__mmssgg__iidd (OOppttiioonnaall
│ │ │ │ │ + [[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee]]) – If you want to
│ │ │ │ │ + be able to transport read markers from the gateway user
│ │ │ │ │ + to the legacy network, specify this
│ │ │ │ │ + * rreeppllyy__ttoo (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..MMeessssaaggeeRReeffeerreennccee]])
│ │ │ │ │ + – Quote another message (_X_E_P_-_0_4_6_1)
│ │ │ │ │ + * wwhheenn (OOppttiioonnaall[[_dd_aa_tt_ee_tt_ii_mm_ee_.._dd_aa_tt_ee_tt_ii_mm_ee]]) – when the file was
│ │ │ │ │ + sent, for a “delay” tag (_X_E_P_-_0_2_0_3)
│ │ │ │ │ + * ccaappttiioonn (OOppttiioonnaall[[_ss_tt_rr]]) – an optional text that is
│ │ │ │ │ + linked to the file
│ │ │ │ │ + * lleeggaaccyy__ffiillee__iidd (OOppttiioonnaall[[UUnniioonn[[_ss_tt_rr,, _ii_nn_tt]]]]) – A unique
│ │ │ │ │ + identifier for the file on the legacy network. Plugins
│ │ │ │ │ + should try their best to provide it, to avoid
│ │ │ │ │ + duplicates.
│ │ │ │ │ + * tthhrreeaadd (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyTThhrreeaaddTTyyppee]])
│ │ │ │ │ + Return type:
│ │ │ │ │ + _t_u_p_l_e[Optional[_s_t_r], _l_i_s_t[slixmpp.Message]]
│ │ │ │ │ + send_text(bbooddyy, lleeggaaccyy__mmssgg__iidd==NNoonnee, **, wwhheenn==NNoonnee, rreeppllyy__ttoo==NNoonnee,
│ │ │ │ │ + tthhrreeaadd==NNoonnee, hhiinnttss==NNoonnee, ccaarrbboonn==FFaallssee, aarrcchhiivvee__oonnllyy==FFaallssee,
│ │ │ │ │ + ccoorrrreeccttiioonn==FFaallssee, ccoorrrreeccttiioonn__eevveenntt__iidd==NNoonnee, lliinnkk__pprreevviieewwss==NNoonnee,
│ │ │ │ │ + ****sseenndd__kkwwaarrggss)_¶
│ │ │ │ │ + Send a text message from this _X_M_P_P_ _E_n_t_i_t_y.
│ │ │ │ │ + Parameters:
│ │ │ │ │ + * bbooddyy (_ss_tt_rr) – Content of the message
│ │ │ │ │ + * lleeggaaccyy__mmssgg__iidd (OOppttiioonnaall
│ │ │ │ │ + [[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee]]) – If you want to
│ │ │ │ │ + be able to transport read markers from the gateway user
│ │ │ │ │ + to the legacy network, specify this
│ │ │ │ │ + * wwhheenn (OOppttiioonnaall[[_dd_aa_tt_ee_tt_ii_mm_ee_.._dd_aa_tt_ee_tt_ii_mm_ee]]) – when the message
│ │ │ │ │ + was sent, for a “delay” tag (_X_E_P_-_0_2_0_3)
│ │ │ │ │ + * rreeppllyy__ttoo (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..MMeessssaaggeeRReeffeerreennccee]])
│ │ │ │ │ + – Quote another message (_X_E_P_-_0_4_6_1)
│ │ │ │ │ + * hhiinnttss (OOppttiioonnaall[[IItteerraabbllee
│ │ │ │ │ + [[sslliiddggee..uuttiill..ttyyppeess..PPrroocceessssiinnggHHiinntt]]]])
│ │ │ │ │ + * tthhrreeaadd (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyTThhrreeaaddTTyyppee]])
│ │ │ │ │ + * ccaarrbboonn – (only used if called on a LegacyContact) Set
│ │ │ │ │ + this to True if this is actually a message sent ttoo the
│ │ │ │ │ + LegacyContact by the _U_s_e_r. Use this to synchronize
│ │ │ │ │ + outgoing history for legacy official apps.
│ │ │ │ │ + * ccoorrrreeccttiioonn – whether this message is a correction or
│ │ │ │ │ + not
│ │ │ │ │ + * ccoorrrreeccttiioonn__eevveenntt__iidd (OOppttiioonnaall
│ │ │ │ │ + [[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee]]) – in the case
│ │ │ │ │ + where an ID is associated with the legacy ‘correction
│ │ │ │ │ + event’, specify it here to use it on the XMPP side. If
│ │ │ │ │ + not specified, a random ID will be used.
│ │ │ │ │ + * lliinnkk__pprreevviieewwss (OOppttiioonnaall[[_ll_ii_ss_tt
│ │ │ │ │ + [[sslliiddggee..uuttiill..ttyyppeess..LLiinnkkPPrreevviieeww]]]]) – A little of sender
│ │ │ │ │ + (or server, or gateway)-generated previews of URLs
│ │ │ │ │ + linked in the body.
│ │ │ │ │ + * aarrcchhiivvee__oonnllyy – (only in groups) Do not send this
│ │ │ │ │ + message to user, but store it in the archive. Meant to
│ │ │ │ │ + be used during MUC.backfill()
│ │ │ │ │ + correct(lleeggaaccyy__mmssgg__iidd, nneeww__tteexxtt, **, wwhheenn==NNoonnee, rreeppllyy__ttoo==NNoonnee,
│ │ │ │ │ + tthhrreeaadd==NNoonnee, hhiinnttss==NNoonnee, ccaarrbboonn==FFaallssee, aarrcchhiivvee__oonnllyy==FFaallssee,
│ │ │ │ │ + ccoorrrreeccttiioonn__eevveenntt__iidd==NNoonnee, lliinnkk__pprreevviieewwss==NNoonnee, ****sseenndd__kkwwaarrggss)_¶
│ │ │ │ │ + Modify a message that was previously sent by this _X_M_P_P_ _E_n_t_i_t_y.
│ │ │ │ │ + Uses last message correction (_X_E_P_-_0_3_0_8)
│ │ │ │ │ + Parameters:
│ │ │ │ │ + * nneeww__tteexxtt (_ss_tt_rr) – New content of the message
│ │ │ │ │ + * lleeggaaccyy__mmssgg__iidd (sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee) –
│ │ │ │ │ + The legacy message ID of the message to correct
│ │ │ │ │ + * wwhheenn (OOppttiioonnaall[[_dd_aa_tt_ee_tt_ii_mm_ee_.._dd_aa_tt_ee_tt_ii_mm_ee]]) – when the message
│ │ │ │ │ + was sent, for a “delay” tag (_X_E_P_-_0_2_0_3)
│ │ │ │ │ + * rreeppllyy__ttoo (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..MMeessssaaggeeRReeffeerreennccee]])
│ │ │ │ │ + – Quote another message (_X_E_P_-_0_4_6_1)
│ │ │ │ │ + * hhiinnttss (OOppttiioonnaall[[IItteerraabbllee
│ │ │ │ │ + [[sslliiddggee..uuttiill..ttyyppeess..PPrroocceessssiinnggHHiinntt]]]])
│ │ │ │ │ + * tthhrreeaadd (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyTThhrreeaaddTTyyppee]])
│ │ │ │ │ + * ccaarrbboonn – (only in 1:1) Reflect a message sent to this
│ │ │ │ │ + Contact by the user. Use this to synchronize outgoing
│ │ │ │ │ + history for legacy official apps.
│ │ │ │ │ + * aarrcchhiivvee__oonnllyy – (only in groups) Do not send this
│ │ │ │ │ + message to user, but store it in the archive. Meant to
│ │ │ │ │ + be used during MUC.backfill()
│ │ │ │ │ + * ccoorrrreeccttiioonn__eevveenntt__iidd (OOppttiioonnaall
│ │ │ │ │ + [[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee]]) – in the case
│ │ │ │ │ + where an ID is associated with the legacy ‘correction
│ │ │ │ │ + event’, specify it here to use it on the XMPP side. If
│ │ │ │ │ + not specified, a random ID will be used.
│ │ │ │ │ + * lliinnkk__pprreevviieewwss (OOppttiioonnaall[[_ll_ii_ss_tt
│ │ │ │ │ + [[sslliiddggee..uuttiill..ttyyppeess..LLiinnkkPPrreevviieeww]]]]) – A little of sender
│ │ │ │ │ + (or server, or gateway)-generated previews of URLs
│ │ │ │ │ + linked in the body.
│ │ │ │ │ + react(lleeggaaccyy__mmssgg__iidd, eemmoojjiiss==(()), tthhrreeaadd==NNoonnee, ****kkwwaarrggss)_¶
│ │ │ │ │ + Send a reaction (_X_E_P_-_0_4_4_4) from this _X_M_P_P_ _E_n_t_i_t_y.
│ │ │ │ │ + Parameters:
│ │ │ │ │ + * lleeggaaccyy__mmssgg__iidd (sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee) –
│ │ │ │ │ + The message which the reaction refers to.
│ │ │ │ │ + * eemmoojjiiss (IItteerraabbllee[[_ss_tt_rr]]) – An iterable of emojis used as
│ │ │ │ │ + reactions
│ │ │ │ │ + * tthhrreeaadd (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyTThhrreeaaddTTyyppee]])
│ │ │ │ │ + retract(lleeggaaccyy__mmssgg__iidd, tthhrreeaadd==NNoonnee, ****kkwwaarrggss)_¶
│ │ │ │ │ + Send a message retraction (_X_E_P_-_0_4_2_4) from this _X_M_P_P_ _E_n_t_i_t_y.
│ │ │ │ │ + Parameters:
│ │ │ │ │ + * lleeggaaccyy__mmssgg__iidd (sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee) –
│ │ │ │ │ + Legacy ID of the message to delete
│ │ │ │ │ + * tthhrreeaadd (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyTThhrreeaaddTTyyppee]])
│ │ │ │ │ ccllaassss slidge.group.LegacyMUC(sseessssiioonn, lleeggaaccyy__iidd, jjiidd)_¶
│ │ │ │ │ A room, a.k.a. a Multi-User Chat.
│ │ │ │ │ MUC instances are obtained by calling
│ │ │ │ │ slidge.group.bookmarks.LegacyBookmarks() on the user’s
│ │ │ │ │ slidge.core.session.BaseSession.
│ │ │ │ │ Parameters:
│ │ │ │ │ * sseessssiioonn (sslliiddggee..ccoorree..sseessssiioonn..BBaasseeSSeessssiioonn)
│ │ │ │ │ @@ -318,15 +515,15 @@
│ │ │ │ │ meant to remove the avatar
│ │ │ │ │ * mmiimmee (OOppttiioonnaall[[_ss_tt_rr]]) – the mime type of the image.
│ │ │ │ │ Since this is provided by the XMPP client, there is no
│ │ │ │ │ guarantee that this is valid or correct.
│ │ │ │ │ Returns:
│ │ │ │ │ A unique avatar identifier, which will trigger
│ │ │ │ │ slidge.group.room.LegacyMUC.set_avatar(). Alternatively,
│ │ │ │ │ - None, if LegacyMUC.set_avatar() is meant to be awaited
│ │ │ │ │ + None, if _L_e_g_a_c_y_M_U_C_._s_e_t___a_v_a_t_a_r_(_) is meant to be awaited
│ │ │ │ │ somewhere else.
│ │ │ │ │ Return type:
│ │ │ │ │ Optional[Union[_i_n_t, _s_t_r]]
│ │ │ │ │ aabbssttrraacctt on_set_affiliation(ccoonnttaacctt, aaffffiilliiaattiioonn, rreeaassoonn, nniicckknnaammee)_¶
│ │ │ │ │ Async:
│ │ │ │ │ Parameters:
│ │ │ │ │ * ccoonnttaacctt (sslliiddggee..ccoonnttaacctt..ccoonnttaacctt..LLeeggaaccyyCCoonnttaacctt)
│ │ │ │ │ @@ -387,14 +584,53 @@
│ │ │ │ │ Triggered when the user requests changing the room subject.
│ │ │ │ │ The legacy module is responsible for updating subject of this
│ │ │ │ │ instance.
│ │ │ │ │ Parameters:
│ │ │ │ │ ssuubbjjeecctt (_ss_tt_rr) – The new subject for this room.
│ │ │ │ │ Return type:
│ │ │ │ │ None
│ │ │ │ │ + pprrooppeerrttyy avatar_id:: sslliiddggee..uuttiill..ttyyppeess..AAvvaattaarrIIddTTyyppee || _NN_oo_nn_ee_¶
│ │ │ │ │ + The unique ID of this entity’s avatar.
│ │ │ │ │ + Return type:
│ │ │ │ │ + Optional[slidge.util.types.AvatarIdType]
│ │ │ │ │ + pprrooppeerrttyy avatar:: sslliiddggee..uuttiill..ttyyppeess..AAvvaattaarrIIddTTyyppee || _NN_oo_nn_ee_¶
│ │ │ │ │ + This property can be used to set the avatar, but set_avatar()
│ │ │ │ │ + should be preferred because you can provide a unique ID for the
│ │ │ │ │ + avatar for efficient caching. Setting this is OKish in case the
│ │ │ │ │ + avatar type is a URL or a local path that can act as a legacy ID.
│ │ │ │ │ + Python’s property is abused here to maintain backwards
│ │ │ │ │ + compatibility, but when getting it you actually get the avatar
│ │ │ │ │ + legacy ID.
│ │ │ │ │ + Return type:
│ │ │ │ │ + Optional[slidge.util.types.AvatarIdType]
│ │ │ │ │ + aassyynncc set_avatar(aa, aavvaattaarr__uunniiqquuee__iidd==NNoonnee, ddeelleettee==FFaallssee,
│ │ │ │ │ + bblloocckkiinngg==FFaallssee, ccaanncceell==TTrruuee)_¶
│ │ │ │ │ + Set an avatar for this entity
│ │ │ │ │ + Parameters:
│ │ │ │ │ + * aa (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..AAvvaattaarrTTyyppee]]) – The
│ │ │ │ │ + avatar, in one of the types slidge supports
│ │ │ │ │ + * aavvaattaarr__uunniiqquuee__iidd (OOppttiioonnaall
│ │ │ │ │ + [[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyFFiilleeIIddTTyyppee]]) – A globally
│ │ │ │ │ + unique ID for the avatar on the legacy network
│ │ │ │ │ + * ddeelleettee (_bb_oo_oo_ll) – If the avatar is provided as a Path,
│ │ │ │ │ + whether to delete it once used or not.
│ │ │ │ │ + * bblloocckkiinngg – Internal use by slidge for tests, do not
│ │ │ │ │ + use!
│ │ │ │ │ + * ccaanncceell – Internal use by slidge, do not use!
│ │ │ │ │ + Return type:
│ │ │ │ │ + None
│ │ │ │ │ + aassyynncc available_emojis(lleeggaaccyy__mmssgg__iidd==NNoonnee)_¶
│ │ │ │ │ + Override this to restrict the subset of reactions this recipient
│ │ │ │ │ + can handle.
│ │ │ │ │ + Returns:
│ │ │ │ │ + A set of emojis or None if any emoji is allowed
│ │ │ │ │ + Parameters:
│ │ │ │ │ + lleeggaaccyy__mmssgg__iidd (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee]])
│ │ │ │ │ + Return type:
│ │ │ │ │ + Optional[_s_e_t[_s_t_r]]
│ │ │ │ │ _N_e_x_t
│ │ │ │ │ _s_l_i_d_g_e_._m_a_i_n
│ │ │ │ │ _P_r_e_v_i_o_u_s
│ │ │ │ │ _s_l_i_d_g_e_._c_o_n_t_a_c_t
│ │ │ │ │ Copyright © 2025, the slidge contributors
│ │ │ │ │ Made with _S_p_h_i_n_x and _@_p_r_a_d_y_u_n_s_g's _F_u_r_o
│ │ │ │ │ On this page
│ │ │ │ │ @@ -411,14 +647,33 @@
│ │ │ │ │ # _L_e_g_a_c_y_B_o_o_k_m_a_r_k_s_._f_i_l_l_(_)
│ │ │ │ │ # _L_e_g_a_c_y_B_o_o_k_m_a_r_k_s_._r_e_m_o_v_e_(_)
│ │ │ │ │ # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._s_e_n_d___i_n_i_t_i_a_l___p_r_e_s_e_n_c_e_(_)
│ │ │ │ │ # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._l_e_a_v_e_(_)
│ │ │ │ │ # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._k_i_c_k_(_)
│ │ │ │ │ # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._b_a_n_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._o_n_l_i_n_e_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._a_w_a_y_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._e_x_t_e_n_d_e_d___a_w_a_y_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._b_u_s_y_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._o_f_f_l_i_n_e_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._i_n_v_i_t_e___t_o_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._a_c_t_i_v_e_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._c_o_m_p_o_s_i_n_g_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._p_a_u_s_e_d_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._i_n_a_c_t_i_v_e_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._g_o_n_e_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._a_c_k_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._r_e_c_e_i_v_e_d_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._d_i_s_p_l_a_y_e_d_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._s_e_n_d___f_i_l_e_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._s_e_n_d___t_e_x_t_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._c_o_r_r_e_c_t_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._r_e_a_c_t_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._r_e_t_r_a_c_t_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._S_T_A_B_L_E___A_R_C_H_I_V_E
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._K_E_E_P___B_A_C_K_F_I_L_L_E_D___P_A_R_T_I_C_I_P_A_N_T_S
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._H_A_S___D_E_S_C_R_I_P_T_I_O_N
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._H_A_S___S_U_B_J_E_C_T
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._u_p_d_a_t_e___i_n_f_o_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._b_a_c_k_f_i_l_l_(_)
│ │ │ │ │ @@ -432,7 +687,11 @@
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._a_d_d___t_o___b_o_o_k_m_a_r_k_s_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._o_n___a_v_a_t_a_r_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._o_n___s_e_t___a_f_f_i_l_i_a_t_i_o_n_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._o_n___k_i_c_k_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._o_n___s_e_t___c_o_n_f_i_g_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._o_n___d_e_s_t_r_o_y___r_e_q_u_e_s_t_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._o_n___s_e_t___s_u_b_j_e_c_t_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_M_U_C_._a_v_a_t_a_r___i_d
│ │ │ │ │ + # _L_e_g_a_c_y_M_U_C_._a_v_a_t_a_r
│ │ │ │ │ + # _L_e_g_a_c_y_M_U_C_._s_e_t___a_v_a_t_a_r_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_M_U_C_._a_v_a_i_l_a_b_l_e___e_m_o_j_i_s_(_)
│ │ │ ├── ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/index.html
│ │ │ │ @@ -345,15 +345,15 @@
│ │ │ │ validate()
│ │ │ │ validate_two_factor_code()
│ │ │ │ get_qr_text()
│ │ │ │ confirm_qr()
│ │ │ │
│ │ │ │ NB: Not all of these must be overridden, it depends on the
│ │ │ │ REGISTRATION_TYPE
.
│ │ │ │ -The other methods, such as send_text()
or react()
are the same
│ │ │ │ +
The other methods, such as send_text()
or react()
are the same
│ │ │ │ as those of LegacyContact
and LegacyParticipant
, because
│ │ │ │ the component itself is also a “messaging actor”, ie, an XMPP Entity.
│ │ │ │ For these methods, you need to specify the JID of the recipient with the
│ │ │ │ mto parameter.
│ │ │ │ Since it inherits from slixmpp.componentxmpp.ComponentXMPP
,you also
│ │ │ │ have a hand on low-level XMPP interactions via slixmpp methods, e.g.:
│ │ │ │ self.send_presence(
│ │ │ │ @@ -1031,15 +1031,15 @@
│ │ │ │
│ │ │ │
│ │ │ │ Triggered when the user reads a message in a legacy chat. (XEP-0333)
│ │ │ │ This is only possible if a valid legacy_msg_id
was passed when
│ │ │ │ transmitting a message from a legacy chat to the user, eg in
│ │ │ │ slidge.contact.LegacyContact.send_text()
│ │ │ │ or
│ │ │ │ -slidge.group.LegacyParticipant.send_text()
.
│ │ │ │ +slidge.group.LegacyParticipant.send_text()
.
│ │ │ │
│ │ │ │ - Parameters:
│ │ │ │
│ │ │ │ chat (slidge.util.types.RecipientType) – See BaseSession.on_text()
│ │ │ │ legacy_msg_id (slidge.util.types.LegacyMessageType) – Identifier of the message/
│ │ │ │ thread (Optional[slidge.util.types.LegacyThreadType])
│ │ │ │
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -496,15 +496,15 @@
│ │ │ │ │ * lleeggaaccyy__mmssgg__iidd (sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee)
│ │ │ │ │ * tthhrreeaadd (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyTThhrreeaaddTTyyppee]])
│ │ │ │ │ Triggered when the user reads a message in a legacy chat. (_X_E_P_-
│ │ │ │ │ _0_3_3_3)
│ │ │ │ │ This is only possible if a valid legacy_msg_id was passed when
│ │ │ │ │ transmitting a message from a legacy chat to the user, eg in
│ │ │ │ │ slidge.contact.LegacyContact.send_text() or
│ │ │ │ │ - slidge.group.LegacyParticipant.send_text().
│ │ │ │ │ + _s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._s_e_n_d___t_e_x_t_(_).
│ │ │ │ │ Parameters:
│ │ │ │ │ * cchhaatt (sslliiddggee..uuttiill..ttyyppeess..RReecciippiieennttTTyyppee) – See
│ │ │ │ │ _B_a_s_e_S_e_s_s_i_o_n_._o_n___t_e_x_t_(_)
│ │ │ │ │ * lleeggaaccyy__mmssgg__iidd (sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee) –
│ │ │ │ │ Identifier of the message/
│ │ │ │ │ * tthhrreeaadd (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyTThhrreeaaddTTyyppee]])
│ │ │ │ │ aabbssttrraacctt on_correct(cchhaatt, tteexxtt, lleeggaaccyy__mmssgg__iidd, **, tthhrreeaadd==NNoonnee,
│ │ │ ├── ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/index.html
│ │ │ │ @@ -657,15 +657,15 @@
│ │ │ │ the XMPP client, there is no guarantee that this is valid or
│ │ │ │ correct.
│ │ │ │
│ │ │ │
│ │ │ │ - Returns:
│ │ │ │ A unique avatar identifier, which will trigger
│ │ │ │ slidge.group.room.LegacyMUC.set_avatar()
. Alternatively, None, if
│ │ │ │ -LegacyMUC.set_avatar()
is meant to be awaited somewhere else.
│ │ │ │ +LegacyMUC.set_avatar()
is meant to be awaited somewhere else.
│ │ │ │
│ │ │ │ - Return type:
│ │ │ │ Optional[Union[int, str]]
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -270,15 +270,15 @@
│ │ │ │ │ meant to remove the avatar
│ │ │ │ │ * mmiimmee (OOppttiioonnaall[[_ss_tt_rr]]) – the mime type of the image.
│ │ │ │ │ Since this is provided by the XMPP client, there is no
│ │ │ │ │ guarantee that this is valid or correct.
│ │ │ │ │ Returns:
│ │ │ │ │ A unique avatar identifier, which will trigger
│ │ │ │ │ slidge.group.room.LegacyMUC.set_avatar(). Alternatively,
│ │ │ │ │ - None, if LegacyMUC.set_avatar() is meant to be awaited
│ │ │ │ │ + None, if _L_e_g_a_c_y_M_U_C_._s_e_t___a_v_a_t_a_r_(_) is meant to be awaited
│ │ │ │ │ somewhere else.
│ │ │ │ │ Return type:
│ │ │ │ │ Optional[Union[_i_n_t, _s_t_r]]
│ │ │ │ │ aabbssttrraacctt on_set_affiliation(ccoonnttaacctt, aaffffiilliiaattiioonn, rreeaassoonn, nniicckknnaammee)_¶
│ │ │ │ │ Async:
│ │ │ │ │ Parameters:
│ │ │ │ │ * ccoonnttaacctt (sslliiddggee..ccoonnttaacctt..ccoonnttaacctt..LLeeggaaccyyCCoonnttaacctt)
│ │ │ ├── ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/index.html
│ │ │ │ @@ -600,15 +600,15 @@
│ │ │ │
│ │ │ │
│ │ │ │
Triggered when the user reads a message in a legacy chat. (XEP-0333)
│ │ │ │
This is only possible if a valid legacy_msg_id
was passed when
│ │ │ │ transmitting a message from a legacy chat to the user, eg in
│ │ │ │ slidge.contact.LegacyContact.send_text()
│ │ │ │ or
│ │ │ │ -slidge.group.LegacyParticipant.send_text()
.
│ │ │ │ +
slidge.group.LegacyParticipant.send_text()
.
│ │ │ │
│ │ │ │ - Parameters:
│ │ │ │
│ │ │ │ chat (slidge.util.types.RecipientType) – See BaseSession.on_text()
│ │ │ │ legacy_msg_id (slidge.util.types.LegacyMessageType) – Identifier of the message/
│ │ │ │ thread (Optional[slidge.util.types.LegacyThreadType])
│ │ │ │
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -240,15 +240,15 @@
│ │ │ │ │ * lleeggaaccyy__mmssgg__iidd (sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee)
│ │ │ │ │ * tthhrreeaadd (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyTThhrreeaaddTTyyppee]])
│ │ │ │ │ Triggered when the user reads a message in a legacy chat. (_X_E_P_-
│ │ │ │ │ _0_3_3_3)
│ │ │ │ │ This is only possible if a valid legacy_msg_id was passed when
│ │ │ │ │ transmitting a message from a legacy chat to the user, eg in
│ │ │ │ │ slidge.contact.LegacyContact.send_text() or
│ │ │ │ │ - slidge.group.LegacyParticipant.send_text().
│ │ │ │ │ + _s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._s_e_n_d___t_e_x_t_(_).
│ │ │ │ │ Parameters:
│ │ │ │ │ * cchhaatt (sslliiddggee..uuttiill..ttyyppeess..RReecciippiieennttTTyyppee) – See
│ │ │ │ │ _B_a_s_e_S_e_s_s_i_o_n_._o_n___t_e_x_t_(_)
│ │ │ │ │ * lleeggaaccyy__mmssgg__iidd (sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyMMeessssaaggeeTTyyppee) –
│ │ │ │ │ Identifier of the message/
│ │ │ │ │ * tthhrreeaadd (OOppttiioonnaall[[sslliiddggee..uuttiill..ttyyppeess..LLeeggaaccyyTThhrreeaaddTTyyppee]])
│ │ │ │ │ aabbssttrraacctt on_correct(cchhaatt, tteexxtt, lleeggaaccyy__mmssgg__iidd, **, tthhrreeaadd==NNoonnee,
│ │ │ ├── ./usr/share/doc/python-slidge-doc/html/genindex.html
│ │ │ │ @@ -383,54 +383,74 @@
│ │ │ │ - module
│ │ │ │
│ │ │ │
│ │ │ │ - accept_friend_request() (slidge.contact.LegacyContact method)
│ │ │ │
│ │ │ │ - ACCESS (slidge.command.Command attribute)
│ │ │ │
│ │ │ │ - - ack() (superduper.gateway.Gateway method)
│ │ │ │ +
- ack() (slidge.group.LegacyParticipant method)
│ │ │ │
│ │ │ │
│ │ │ │ - - active() (superduper.gateway.Gateway method)
│ │ │ │ +
- active() (slidge.group.LegacyParticipant method)
│ │ │ │
│ │ │ │
│ │ │ │ -
│ │ │ │ - |
│ │ │ │ + |
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ B
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ @@ -562,17 +590,19 @@
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ |
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ @@ -587,16 +617,20 @@
│ │ │ │ - module
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ |
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ F
│ │ │ │
│ │ │ │ @@ -731,17 +767,19 @@
│ │ │ │
│ │ │ │
│ │ │ │ I
│ │ │ │
│ │ │ │ |
│ │ │ │
│ │ │ │ - - invite_to() (superduper.gateway.Gateway method)
│ │ │ │ +
- invite_to() (slidge.group.LegacyParticipant method)
│ │ │ │
│ │ │ │
│ │ │ │ - items (slidge.command.SearchResult attribute)
│ │ │ │
│ │ │ │
│ │ │ │ - (slidge.command.TableResult attribute)
│ │ │ │ @@ -998,16 +1038,20 @@
│ │ │ │
│ │ │ │
│ │ │ │
O
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ P
│ │ │ │
│ │ │ │ |
│ │ │ │
│ │ │ │ - private (slidge.command.FormField attribute)
│ │ │ │
│ │ │ │ @@ -1200,23 +1250,27 @@
│ │ │ │
│ │ │ │
│ │ │ │ R
│ │ │ │
│ │ │ │ |
│ │ │ │
│ │ │ │ + - SigTermInterrupt
│ │ │ │ +
│ │ │ │ - SINGLE_STEP_FORM (slidge.command.register.RegistrationType attribute)
│ │ │ │
│ │ │ │ -
│ │ │ │ slidge
│ │ │ │
│ │ │ │
│ │ │ │ - module
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -59,91 +59,98 @@
│ │ │ │ │ * 29f5280c61aa_store_subject_setter_in_room * 8b993243a536_add_vcard_content_to_contact_table
│ │ │ │ │ o _m_o_d_u_l_e o _m_o_d_u_l_e
│ │ │ │ │ * 2b1f45ab7379_store_room_subject_setter_by_nickname * 8d2ced764698_rely_on_db_to_store_contacts_rooms_and_
│ │ │ │ │ o _m_o_d_u_l_e o _m_o_d_u_l_e
│ │ │ │ │ * 3071e0fa69d4_add_contact_client_type
│ │ │ │ │ o _m_o_d_u_l_e
│ │ │ │ │ ********** AA **********
│ │ │ │ │ - * aa9d82a7f6ef_db_creation * _AA_dd_--_hh_oo_cc_ _CC_oo_mm_mm_aa_nn_dd
│ │ │ │ │ - o _m_o_d_u_l_e * _a_d_d___t_o___b_o_o_k_m_a_r_k_s_(_)_
│ │ │ │ │ - * abba1ae0edb3_store_avatar_legacy_id_in_the_contact_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ - o _m_o_d_u_l_e o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ - * _a_c_c_e_p_t___f_r_i_e_n_d___r_e_q_u_e_s_t_(_)_ _m_e_t_h_o_d_)
│ │ │ │ │ - _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t_ _m_e_t_h_o_d_) * _a_d_d___t_o___r_o_s_t_e_r_(_)_
│ │ │ │ │ - * _A_C_C_E_S_S_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_m_m_a_n_d_ _a_t_t_r_i_b_u_t_e_) _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t
│ │ │ │ │ - * _a_c_k_(_)_ _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t_ _m_e_t_h_o_d_) * _a_v_a_i_l_a_b_l_e___e_m_o_j_i_s_(_)_
│ │ │ │ │ - * _a_c_t_i_v_e_(_)_ _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_) _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + * aa9d82a7f6ef_db_creation * _a_d_d___t_o___b_o_o_k_m_a_r_k_s_(_)_
│ │ │ │ │ + o _m_o_d_u_l_e _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + * abba1ae0edb3_store_avatar_legacy_id_in_the_contact_ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + o _m_o_d_u_l_e * _a_d_d___t_o___r_o_s_t_e_r_(_)_
│ │ │ │ │ + * _a_c_c_e_p_t___f_r_i_e_n_d___r_e_q_u_e_s_t_(_)_ _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t
│ │ │ │ │ + _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + * _A_C_C_E_S_S_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_m_m_a_n_d_ _a_t_t_r_i_b_u_t_e_) * _a_v_a_i_l_a_b_l_e___e_m_o_j_i_s_(_)_
│ │ │ │ │ + * _a_c_k_(_)_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_ _m_e_t_h_o_d_) _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t_ _m_e_t_h_o_d_) * _AA_vv_aa_tt_aa_rr
│ │ │ │ │ - * _a_v_a_t_a_r_ _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ + * _a_c_t_i_v_e_(_)_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_ _m_e_t_h_o_d_) * _a_v_a_t_a_r_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_) _p_r_o_p_e_r_t_y_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t_ _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ + * _AA_dd_--_hh_oo_cc_ _CC_oo_mm_mm_aa_nn_dd _p_r_o_p_e_r_t_y_)
│ │ │ │ │ + * _a_v_a_t_a_r___i_d_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C
│ │ │ │ │ _p_r_o_p_e_r_t_y_)
│ │ │ │ │ - * _a_v_a_t_a_r___i_d_ _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ - _p_r_o_p_e_r_t_y_)
│ │ │ │ │ - * _A_V_A_T_A_R___I_D___T_Y_P_E_
│ │ │ │ │ - _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ + _p_r_o_p_e_r_t_y_)
│ │ │ │ │ + * _A_V_A_T_A_R___I_D___T_Y_P_E_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ * _a_w_a_y_(_)_
│ │ │ │ │ - _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _m_e_t_h_o_d_)
│ │ │ │ │ ********** BB **********
│ │ │ │ │ - * b33993e87db3_move_everything_to_persistent_db * _b_a_n_(_)_
│ │ │ │ │ - o _m_o_d_u_l_e _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ - * b64b1a793483_add_source_and_legacy_id_for_archived_ _m_e_t_h_o_d_)
│ │ │ │ │ - o _m_o_d_u_l_e o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ - * _b_a_c_k_f_i_l_l_(_)_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_) * _B_a_s_e_G_a_t_e_w_a_y_ _(_c_l_a_s_s_ _i_n_ _s_l_i_d_g_e_)
│ │ │ │ │ - * _B_a_s_e_S_e_s_s_i_o_n_ _(_c_l_a_s_s_ _i_n_ _s_l_i_d_g_e_)
│ │ │ │ │ - * _B_o_o_k_m_a_r_k_s_ _(_c_l_a_s_s_ _i_n
│ │ │ │ │ - _s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_)
│ │ │ │ │ - * _b_u_s_y_(_)_
│ │ │ │ │ - _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ - _m_e_t_h_o_d_)
│ │ │ │ │ + * b33993e87db3_move_everything_to_persistent_db * _B_a_s_e_G_a_t_e_w_a_y_ _(_c_l_a_s_s_ _i_n_ _s_l_i_d_g_e_)
│ │ │ │ │ + o _m_o_d_u_l_e * _B_a_s_e_S_e_s_s_i_o_n_ _(_c_l_a_s_s_ _i_n_ _s_l_i_d_g_e_)
│ │ │ │ │ + * b64b1a793483_add_source_and_legacy_id_for_archived_ * _B_o_o_k_m_a_r_k_s_ _(_c_l_a_s_s_ _i_n
│ │ │ │ │ + o _m_o_d_u_l_e _s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_)
│ │ │ │ │ + * _b_a_c_k_f_i_l_l_(_)_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_) * _b_u_s_y_(_)_
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_) _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + * _b_a_n_(_)_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t_ _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _m_e_t_h_o_d_)
│ │ │ │ │ * _b_y___l_e_g_a_c_y___i_d_(_)_
│ │ │ │ │ _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_R_o_s_t_e_r
│ │ │ │ │ _m_e_t_h_o_d_)
│ │ │ │ │ ********** CC **********
│ │ │ │ │ - * c4a8ec35a0e8_per_room_user_nick * _C_O_M_P_O_N_E_N_T___A_V_A_T_A_R_
│ │ │ │ │ - o _m_o_d_u_l_e _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - * _CC_aa_rr_bb_oo_nn_ss o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ - * _C_A_T_E_G_O_R_Y_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_m_m_a_n_d * _C_O_M_P_O_N_E_N_T___N_A_M_E_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - * _C_H_A_N_N_E_L_ _(_s_l_i_d_g_e_._g_r_o_u_p_._M_u_c_T_y_p_e o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - * _C_H_A_N_N_E_L___N_O_N___A_N_O_N_Y_M_O_U_S_ * _C_O_M_P_O_N_E_N_T___T_Y_P_E_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y
│ │ │ │ │ - _(_s_l_i_d_g_e_._g_r_o_u_p_._M_u_c_T_y_p_e _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ - * _C_H_A_T___C_O_M_M_A_N_D_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_m_m_a_n_d * _c_o_m_p_o_s_i_n_g_(_)_
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_)
│ │ │ │ │ - * _CC_hh_aa_tt_bb_oo_tt_ _CC_oo_mm_mm_aa_nn_dd o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ - * _c_l_i_e_n_t___t_y_p_e_ _m_e_t_h_o_d_)
│ │ │ │ │ - _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t * _c_o_n_f_i_r_m___q_r_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y
│ │ │ │ │ - _p_r_o_p_e_r_t_y_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _CC_oo_mm_mm_aa_nn_dd o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ - o _(_c_l_a_s_s_ _i_n_ _s_l_i_d_g_e_._c_o_m_m_a_n_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _C_o_m_m_a_n_d_A_c_c_e_s_s_ _(_c_l_a_s_s_ _i_n * _C_o_n_f_i_r_m_a_t_i_o_n_ _(_c_l_a_s_s_ _i_n
│ │ │ │ │ - _s_l_i_d_g_e_._c_o_m_m_a_n_d_) _s_l_i_d_g_e_._c_o_m_m_a_n_d_)
│ │ │ │ │ - * _c_o_r_r_e_c_t_(_)_
│ │ │ │ │ - _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ - _m_e_t_h_o_d_)
│ │ │ │ │ + * c4a8ec35a0e8_per_room_user_nick * _C_O_M_P_O_N_E_N_T___N_A_M_E_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y
│ │ │ │ │ + o _m_o_d_u_l_e _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + * _CC_aa_rr_bb_oo_nn_ss o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ + * _C_A_T_E_G_O_R_Y_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_m_m_a_n_d _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) * _C_O_M_P_O_N_E_N_T___T_Y_P_E_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y
│ │ │ │ │ + * _C_H_A_N_N_E_L_ _(_s_l_i_d_g_e_._g_r_o_u_p_._M_u_c_T_y_p_e _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ + * _C_H_A_N_N_E_L___N_O_N___A_N_O_N_Y_M_O_U_S_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._M_u_c_T_y_p_e_ _a_t_t_r_i_b_u_t_e_) * _c_o_m_p_o_s_i_n_g_(_)_
│ │ │ │ │ + * _C_H_A_T___C_O_M_M_A_N_D_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_m_m_a_n_d _m_e_t_h_o_d_)
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ + * _CC_hh_aa_tt_bb_oo_tt_ _CC_oo_mm_mm_aa_nn_dd _m_e_t_h_o_d_)
│ │ │ │ │ + * _c_l_i_e_n_t___t_y_p_e_ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t _m_e_t_h_o_d_)
│ │ │ │ │ + _p_r_o_p_e_r_t_y_) * _c_o_n_f_i_r_m___q_r_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y
│ │ │ │ │ + * _CC_oo_mm_mm_aa_nn_dd _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_c_l_a_s_s_ _i_n_ _s_l_i_d_g_e_._c_o_m_m_a_n_d_) o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ + * _C_o_m_m_a_n_d_A_c_c_e_s_s_ _(_c_l_a_s_s_ _i_n _m_e_t_h_o_d_)
│ │ │ │ │ + _s_l_i_d_g_e_._c_o_m_m_a_n_d_) * _C_o_n_f_i_r_m_a_t_i_o_n_ _(_c_l_a_s_s_ _i_n
│ │ │ │ │ + * _C_O_M_P_O_N_E_N_T___A_V_A_T_A_R_ _s_l_i_d_g_e_._c_o_m_m_a_n_d_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _a_t_t_r_i_b_u_t_e_) * _c_o_r_r_e_c_t_(_)_
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ + _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _m_e_t_h_o_d_)
│ │ │ │ │ ********** DD **********
│ │ │ │ │ * _d_e_s_c_r_i_p_t_i_o_n_ * _d_i_s_p_l_a_y_e_d_(_)_
│ │ │ │ │ - _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._S_e_a_r_c_h_R_e_s_u_l_t _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_)
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ - o _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._T_a_b_l_e_R_e_s_u_l_t _m_e_t_h_o_d_)
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._S_e_a_r_c_h_R_e_s_u_l_t _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._T_a_b_l_e_R_e_s_u_l_t o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _m_e_t_h_o_d_)
│ │ │ │ │ ********** EE **********
│ │ │ │ │ - * e91195719c2c_store_users_avatars_persistently * _e_n_t_r_y_p_o_i_n_t_(_)_ _(_i_n_ _m_o_d_u_l_e
│ │ │ │ │ - o _m_o_d_u_l_e _s_l_i_d_g_e_)
│ │ │ │ │ - * _e_x_t_e_n_d_e_d___a_w_a_y_(_)_
│ │ │ │ │ - _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + * e91195719c2c_store_users_avatars_persistently * _e_n_t_r_y_p_o_i_n_t_(_)_ _(_i_n_ _m_o_d_u_l_e_ _s_l_i_d_g_e_)
│ │ │ │ │ + o _m_o_d_u_l_e * _e_x_t_e_n_d_e_d___a_w_a_y_(_)_
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _m_e_t_h_o_d_)
│ │ │ │ │ ********** FF **********
│ │ │ │ │ * _f_e_t_c_h___v_c_a_r_d_(_)_ * _f_i_l_l___p_a_r_t_i_c_i_p_a_n_t_s_(_)_
│ │ │ │ │ _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ * _f_i_e_l_d_s_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._S_e_a_r_c_h_R_e_s_u_l_t _m_e_t_h_o_d_)
│ │ │ │ │ _a_t_t_r_i_b_u_t_e_) * _F_o_r_m_ _(_c_l_a_s_s_ _i_n_ _s_l_i_d_g_e_._c_o_m_m_a_n_d_)
│ │ │ │ │ o _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._T_a_b_l_e_R_e_s_u_l_t * _F_o_r_m_F_i_e_l_d_ _(_c_l_a_s_s_ _i_n
│ │ │ │ │ @@ -164,23 +171,23 @@
│ │ │ │ │ _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t _m_e_t_h_o_d_)
│ │ │ │ │ _m_e_t_h_o_d_) o _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._F_o_r_m_F_i_e_l_d
│ │ │ │ │ * _g_e_t___p_a_r_t_i_c_i_p_a_n_t_(_)_ _m_e_t_h_o_d_)
│ │ │ │ │ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_) o _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._S_e_a_r_c_h_R_e_s_u_l_t
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C _m_e_t_h_o_d_)
│ │ │ │ │ _m_e_t_h_o_d_) o _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._T_a_b_l_e_R_e_s_u_l_t
│ │ │ │ │ * _g_e_t___p_a_r_t_i_c_i_p_a_n_t___b_y___c_o_n_t_a_c_t_(_)_ _m_e_t_h_o_d_)
│ │ │ │ │ - _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_) * _g_o_n_e_(_)_ _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C _m_e_t_h_o_d_)
│ │ │ │ │ - _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ - * _g_e_t___q_r___t_e_x_t_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y _m_e_t_h_o_d_)
│ │ │ │ │ - _m_e_t_h_o_d_) * _G_R_O_U_P_ _(_s_l_i_d_g_e_._g_r_o_u_p_._M_u_c_T_y_p_e
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - _m_e_t_h_o_d_)
│ │ │ │ │ - * _g_e_t___s_y_s_t_e_m___p_a_r_t_i_c_i_p_a_n_t_(_)_
│ │ │ │ │ - _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_) * _g_o_n_e_(_)_
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + * _g_e_t___q_r___t_e_x_t_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + * _g_e_t___s_y_s_t_e_m___p_a_r_t_i_c_i_p_a_n_t_(_)_ * _G_R_O_U_P_ _(_s_l_i_d_g_e_._g_r_o_u_p_._M_u_c_T_y_p_e
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ _m_e_t_h_o_d_)
│ │ │ │ │ ********** HH **********
│ │ │ │ │ * _h_a_n_d_l_e_r_ * _H_A_S___S_U_B_J_E_C_T_
│ │ │ │ │ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_n_f_i_r_m_a_t_i_o_n _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ _a_t_t_r_i_b_u_t_e_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ * _h_a_n_d_l_e_r___a_r_g_s_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ @@ -192,17 +199,20 @@
│ │ │ │ │ * _H_A_S___D_E_S_C_R_I_P_T_I_O_N_
│ │ │ │ │ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C
│ │ │ │ │ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ ********** II **********
│ │ │ │ │ * _i_m_a_g_e___u_r_l_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._F_o_r_m_F_i_e_l_d * _i_n_v_i_t_e___t_o_(_)_
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_)
│ │ │ │ │ - * _i_n_a_c_t_i_v_e_(_)_ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ - _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + * _i_n_a_c_t_i_v_e_(_)_ _m_e_t_h_o_d_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t * _i_t_e_m_s_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._S_e_a_r_c_h_R_e_s_u_l_t
│ │ │ │ │ _m_e_t_h_o_d_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ * _i_n_p_u_t_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _m_e_t_h_o_d_) o _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._T_a_b_l_e_R_e_s_u_l_t
│ │ │ │ │ o _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ _m_e_t_h_o_d_)
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ @@ -286,163 +296,172 @@
│ │ │ │ │ o _s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n
│ │ │ │ │ ********** NN **********
│ │ │ │ │ * _N_A_M_E_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_m_m_a_n_d * _n_a_m_e_ _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t
│ │ │ │ │ _a_t_t_r_i_b_u_t_e_) _p_r_o_p_e_r_t_y_)
│ │ │ │ │ * _N_O_D_E_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_m_m_a_n_d
│ │ │ │ │ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ ********** OO **********
│ │ │ │ │ - * _OO_ff_ff_ii_cc_ii_aa_ll_ _CC_ll_ii_ee_nn_tt * _o_n___k_i_c_k_(_)_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C
│ │ │ │ │ - * _o_f_f_l_i_n_e_(_)_ _m_e_t_h_o_d_)
│ │ │ │ │ - _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _o_n___a_c_t_i_v_e_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n * _o_n___l_e_a_v_e___g_r_o_u_p_(_)_
│ │ │ │ │ - _m_e_t_h_o_d_) _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _o_n___a_v_a_t_a_r_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n * _o_n___m_o_d_e_r_a_t_e_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C * _o_n___p_a_u_s_e_d_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _o_n___c_o_m_p_o_s_i_n_g_(_)_ * _o_n___p_r_e_s_e_n_c_e_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ - _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _o_n___c_o_r_r_e_c_t_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n * _o_n___r_e_a_c_t_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _o_n___c_r_e_a_t_e___g_r_o_u_p_(_)_ * _o_n___r_e_t_r_a_c_t_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ - _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _o_n___d_e_s_t_r_o_y___r_e_q_u_e_s_t_(_)_ * _o_n___s_e_a_r_c_h_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ - _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _o_n___d_i_s_p_l_a_y_e_d_(_)_ * _o_n___s_e_t___a_f_f_i_l_i_a_t_i_o_n_(_)_
│ │ │ │ │ - _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_) _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _o_n___f_i_l_e_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n * _o_n___s_e_t___c_o_n_f_i_g_(_)_
│ │ │ │ │ - _m_e_t_h_o_d_) _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _o_n___f_r_i_e_n_d___a_c_c_e_p_t_(_)_ * _o_n___s_e_t___s_u_b_j_e_c_t_(_)_
│ │ │ │ │ - _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ - _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ - * _o_n___f_r_i_e_n_d___d_e_l_e_t_e_(_)_ _m_e_t_h_o_d_)
│ │ │ │ │ - _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t * _o_n___s_t_i_c_k_e_r_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _o_n___f_r_i_e_n_d___r_e_q_u_e_s_t_(_)_ o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ - _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t _m_e_t_h_o_d_)
│ │ │ │ │ - _m_e_t_h_o_d_) * _o_n___t_e_x_t_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ - * _o_n___i_n_a_c_t_i_v_e_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n _m_e_t_h_o_d_)
│ │ │ │ │ - _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n _m_e_t_h_o_d_)
│ │ │ │ │ - _m_e_t_h_o_d_) * _o_n_l_i_n_e_(_)_
│ │ │ │ │ - * _o_n___i_n_v_i_t_a_t_i_o_n_(_)_ _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ - _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + * _OO_ff_ff_ii_cc_ii_aa_ll_ _CC_ll_ii_ee_nn_tt * _o_n___k_i_c_k_(_)_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C
│ │ │ │ │ + * _o_f_f_l_i_n_e_(_)_ _m_e_t_h_o_d_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) * _o_n___l_e_a_v_e___g_r_o_u_p_(_)_
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ + * _o_n___a_c_t_i_v_e_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) * _o_n___m_o_d_e_r_a_t_e_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ + * _o_n___a_v_a_t_a_r_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) * _o_n___p_a_u_s_e_d_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ + o _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n * _o_n___p_r_e_s_e_n_c_e_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + * _o_n___c_o_m_p_o_s_i_n_g_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n * _o_n___r_e_a_c_t_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + * _o_n___c_o_r_r_e_c_t_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n * _o_n___r_e_t_r_a_c_t_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + * _o_n___c_r_e_a_t_e___g_r_o_u_p_(_)_ o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ + _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n * _o_n___s_e_a_r_c_h_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + * _o_n___d_e_s_t_r_o_y___r_e_q_u_e_s_t_(_)_ o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_) * _o_n___s_e_t___a_f_f_i_l_i_a_t_i_o_n_(_)_
│ │ │ │ │ + * _o_n___d_i_s_p_l_a_y_e_d_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n * _o_n___s_e_t___c_o_n_f_i_g_(_)_
│ │ │ │ │ + _m_e_t_h_o_d_) _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + * _o_n___f_i_l_e_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) * _o_n___s_e_t___s_u_b_j_e_c_t_(_)_
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + * _o_n___f_r_i_e_n_d___a_c_c_e_p_t_(_)_ * _o_n___s_t_i_c_k_e_r_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ + _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ + * _o_n___f_r_i_e_n_d___d_e_l_e_t_e_(_)_ _m_e_t_h_o_d_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t * _o_n___t_e_x_t_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + * _o_n___f_r_i_e_n_d___r_e_q_u_e_s_t_(_)_ o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ + _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) * _o_n_l_i_n_e_(_)_
│ │ │ │ │ + * _o_n___i_n_a_c_t_i_v_e_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ + * _o_n___i_n_v_i_t_a_t_i_o_n_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ + _m_e_t_h_o_d_)
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ _m_e_t_h_o_d_)
│ │ │ │ │ ********** PP **********
│ │ │ │ │ * _P_a_r_t_i_c_i_p_a_n_t_ _(_c_l_a_s_s_ _i_n * _p_r_i_v_a_t_e_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._F_o_r_m_F_i_e_l_d
│ │ │ │ │ _s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ * _p_a_u_s_e_d_(_)_ * _p_r_o_m_p_t_
│ │ │ │ │ - _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_) _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_n_f_i_r_m_a_t_i_o_n
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - _m_e_t_h_o_d_) * _P_R_O_P_E_R___R_E_C_E_I_P_T_S_
│ │ │ │ │ - _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_n_f_i_r_m_a_t_i_o_n
│ │ │ │ │ + _m_e_t_h_o_d_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y * _P_R_O_P_E_R___R_E_C_E_I_P_T_S_
│ │ │ │ │ + _m_e_t_h_o_d_) _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ + _m_e_t_h_o_d_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ ********** QQ **********
│ │ │ │ │ * _Q_R_C_O_D_E_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._r_e_g_i_s_t_e_r_._R_e_g_i_s_t_r_a_t_i_o_n_T_y_p_e_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ ********** RR **********
│ │ │ │ │ * _r_a_i_s_e___i_f___n_o_t___a_u_t_h_o_r_i_z_e_d_(_)_ * _r_e_j_e_c_t___f_r_i_e_n_d___r_e_q_u_e_s_t_(_)_
│ │ │ │ │ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_m_m_a_n_d_ _m_e_t_h_o_d_) _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t
│ │ │ │ │ - * _r_e_a_c_t_(_)_ _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y _m_e_t_h_o_d_)
│ │ │ │ │ - _m_e_t_h_o_d_) * _r_e_m_o_v_e_(_)_
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_B_o_o_k_m_a_r_k_s
│ │ │ │ │ - _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - * _r_e_c_e_i_v_e_d_(_)_ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._B_o_o_k_m_a_r_k_s
│ │ │ │ │ - _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_) _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t * _r_e_m_o_v_e___p_a_r_t_i_c_i_p_a_n_t_(_)_
│ │ │ │ │ - _m_e_t_h_o_d_) _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ - * _R_E_G_I_S_T_R_A_T_I_O_N___F_I_E_L_D_S_ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ - _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _a_t_t_r_i_b_u_t_e_) * _r_e_q_u_i_r_e_d_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._F_o_r_m_F_i_e_l_d
│ │ │ │ │ + * _r_e_a_c_t_(_)_ _m_e_t_h_o_d_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t * _r_e_m_o_v_e_(_)_
│ │ │ │ │ + _m_e_t_h_o_d_) _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_B_o_o_k_m_a_r_k_s
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._B_o_o_k_m_a_r_k_s
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) * _r_e_m_o_v_e___p_a_r_t_i_c_i_p_a_n_t_(_)_
│ │ │ │ │ + * _r_e_c_e_i_v_e_d_(_)_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + _m_e_t_h_o_d_) * _r_e_q_u_i_r_e_d_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._F_o_r_m_F_i_e_l_d
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) * _R_E_S_O_U_R_C_E_
│ │ │ │ │ - * _R_E_G_I_S_T_R_A_T_I_O_N___I_N_S_T_R_U_C_T_I_O_N_S_ _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t
│ │ │ │ │ + _m_e_t_h_o_d_) * _R_E_S_O_U_R_C_E_
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t _(_s_l_i_d_g_e_._c_o_n_t_a_c_t_._L_e_g_a_c_y_C_o_n_t_a_c_t
│ │ │ │ │ + _m_e_t_h_o_d_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + * _R_E_G_I_S_T_R_A_T_I_O_N___F_I_E_L_D_S_ * _r_e_t_r_a_c_t_(_)_
│ │ │ │ │ + _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _a_t_t_r_i_b_u_t_e_) _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y _m_e_t_h_o_d_)
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ + * _R_E_G_I_S_T_R_A_T_I_O_N___I_N_S_T_R_U_C_T_I_O_N_S_ _m_e_t_h_o_d_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _a_t_t_r_i_b_u_t_e_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y _m_e_t_h_o_d_)
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) * _RR_oo_ss_tt_ee_rr
│ │ │ │ │ + * _R_E_G_I_S_T_R_A_T_I_O_N___T_Y_P_E_ * _R_O_S_T_E_R___G_R_O_U_P_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y
│ │ │ │ │ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _a_t_t_r_i_b_u_t_e_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y * _r_e_t_r_a_c_t_(_)_
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_)
│ │ │ │ │ - * _R_E_G_I_S_T_R_A_T_I_O_N___T_Y_P_E_ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ - _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _a_t_t_r_i_b_u_t_e_) _m_e_t_h_o_d_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y * _RR_oo_ss_tt_ee_rr
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) * _R_O_S_T_E_R___G_R_O_U_P_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y
│ │ │ │ │ - * _R_e_g_i_s_t_r_a_t_i_o_n_T_y_p_e_ _(_c_l_a_s_s_ _i_n _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - _s_l_i_d_g_e_._c_o_m_m_a_n_d_._r_e_g_i_s_t_e_r_) o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - * _r_u_n_(_)_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_m_m_a_n_d
│ │ │ │ │ - _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + * _R_e_g_i_s_t_r_a_t_i_o_n_T_y_p_e_ _(_c_l_a_s_s_ _i_n * _r_u_n_(_)_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_m_m_a_n_d
│ │ │ │ │ + _s_l_i_d_g_e_._c_o_m_m_a_n_d_._r_e_g_i_s_t_e_r_) _m_e_t_h_o_d_)
│ │ │ │ │ ********** SS **********
│ │ │ │ │ - * _S_E_A_R_C_H___F_I_E_L_D_S_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y * _S_I_N_G_L_E___S_T_E_P___F_O_R_M_
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._r_e_g_i_s_t_e_r_._R_e_g_i_s_t_r_a_t_i_o_n_T_y_p_e
│ │ │ │ │ + * _S_E_A_R_C_H___F_I_E_L_D_S_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y * _S_i_g_T_e_r_m_I_n_t_e_r_r_u_p_t
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) * _S_I_N_G_L_E___S_T_E_P___F_O_R_M_
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._r_e_g_i_s_t_e_r_._R_e_g_i_s_t_r_a_t_i_o_n_T_y_p_e
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + * _S_E_A_R_C_H___I_N_S_T_R_U_C_T_I_O_N_S_ * slidge
│ │ │ │ │ + _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _a_t_t_r_i_b_u_t_e_) o _m_o_d_u_l_e
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y * slidge.command
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) o _m_o_d_u_l_e
│ │ │ │ │ + * _S_E_A_R_C_H___T_I_T_L_E_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y * slidge.command.register
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) o _m_o_d_u_l_e
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y * slidge.contact
│ │ │ │ │ + _a_t_t_r_i_b_u_t_e_) o _m_o_d_u_l_e
│ │ │ │ │ + * _S_e_a_r_c_h_R_e_s_u_l_t_ _(_c_l_a_s_s_ _i_n * slidge.group
│ │ │ │ │ + _s_l_i_d_g_e_._c_o_m_m_a_n_d_) o _m_o_d_u_l_e
│ │ │ │ │ + * _s_e_n_d___f_i_l_e_(_)_ * slidge.main
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t o _m_o_d_u_l_e
│ │ │ │ │ + _m_e_t_h_o_d_) * _S_P_E_C_I_A_L___M_S_G___I_D___P_R_E_F_I_X_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) * slidge
│ │ │ │ │ - * _S_E_A_R_C_H___I_N_S_T_R_U_C_T_I_O_N_S_ o _m_o_d_u_l_e
│ │ │ │ │ - _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y_ _a_t_t_r_i_b_u_t_e_) * slidge.command
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y o _m_o_d_u_l_e
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) * slidge.command.register
│ │ │ │ │ - * _S_E_A_R_C_H___T_I_T_L_E_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y o _m_o_d_u_l_e
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) * slidge.contact
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y o _m_o_d_u_l_e
│ │ │ │ │ - _a_t_t_r_i_b_u_t_e_) * slidge.group
│ │ │ │ │ - * _S_e_a_r_c_h_R_e_s_u_l_t_ _(_c_l_a_s_s_ _i_n o _m_o_d_u_l_e
│ │ │ │ │ - _s_l_i_d_g_e_._c_o_m_m_a_n_d_) * slidge.main
│ │ │ │ │ - * _s_e_n_d___f_i_l_e_(_)_ o _m_o_d_u_l_e
│ │ │ │ │ - _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_) * _S_P_E_C_I_A_L___M_S_G___I_D___P_R_E_F_I_X_ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ - * _s_e_n_d___g_a_t_e_w_a_y___i_n_v_i_t_e_(_)_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_) * _S_T_A_B_L_E___A_R_C_H_I_V_E_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - * _s_e_n_d___g_a_t_e_w_a_y___m_e_s_s_a_g_e_(_)_ * _s_u_c_c_e_s_s_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_n_f_i_r_m_a_t_i_o_n
│ │ │ │ │ - _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n * superduper
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + _m_e_t_h_o_d_) * _S_T_A_B_L_E___A_R_C_H_I_V_E_ _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C
│ │ │ │ │ + * _s_e_n_d___g_a_t_e_w_a_y___i_n_v_i_t_e_(_)_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_) o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n * _s_u_c_c_e_s_s_ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._C_o_n_f_i_r_m_a_t_i_o_n
│ │ │ │ │ + _m_e_t_h_o_d_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ + * _s_e_n_d___g_a_t_e_w_a_y___m_e_s_s_a_g_e_(_)_ * superduper
│ │ │ │ │ + _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_) o _m_o_d_u_l_e
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n * superduper.gateway
│ │ │ │ │ _m_e_t_h_o_d_) o _m_o_d_u_l_e
│ │ │ │ │ - * _s_e_n_d___g_a_t_e_w_a_y___s_t_a_t_u_s_(_)_ * superduper.gateway
│ │ │ │ │ + * _s_e_n_d___g_a_t_e_w_a_y___s_t_a_t_u_s_(_)_ * superduper.group
│ │ │ │ │ _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_) o _m_o_d_u_l_e
│ │ │ │ │ - o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n * superduper.group
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n * superduper.session
│ │ │ │ │ _m_e_t_h_o_d_) o _m_o_d_u_l_e
│ │ │ │ │ - * _s_e_n_d___i_n_i_t_i_a_l___p_r_e_s_e_n_c_e_(_)_ * superduper.session
│ │ │ │ │ - _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t o _m_o_d_u_l_e
│ │ │ │ │ + * _s_e_n_d___i_n_i_t_i_a_l___p_r_e_s_e_n_c_e_(_)_
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ _m_e_t_h_o_d_)
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ _m_e_t_h_o_d_)
│ │ │ │ │ * _s_e_n_d___q_r_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y
│ │ │ │ │ _m_e_t_h_o_d_)
│ │ │ │ │ o _(_s_l_i_d_g_e_._B_a_s_e_S_e_s_s_i_o_n_ _m_e_t_h_o_d_)
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ _m_e_t_h_o_d_)
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_._S_e_s_s_i_o_n
│ │ │ │ │ _m_e_t_h_o_d_)
│ │ │ │ │ * _s_e_n_d___t_e_x_t_(_)_
│ │ │ │ │ - _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y_ _m_e_t_h_o_d_)
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ + _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_a_t_e_w_a_y_._G_a_t_e_w_a_y
│ │ │ │ │ + _m_e_t_h_o_d_)
│ │ │ │ │ o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ _m_e_t_h_o_d_)
│ │ │ │ │ * _S_e_s_s_i_o_n_ _(_c_l_a_s_s_ _i_n
│ │ │ │ │ _s_u_p_e_r_d_u_p_e_r_._s_e_s_s_i_o_n_)
│ │ │ │ │ - * _s_e_t___a_v_a_t_a_r_(_)_ _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C
│ │ │ │ │ - _m_e_t_h_o_d_)
│ │ │ │ │ - * _S_i_g_T_e_r_m_I_n_t_e_r_r_u_p_t
│ │ │ │ │ + * _s_e_t___a_v_a_t_a_r_(_)_
│ │ │ │ │ + _(_s_l_i_d_g_e_._g_r_o_u_p_._L_e_g_a_c_y_M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ + o _(_s_u_p_e_r_d_u_p_e_r_._g_r_o_u_p_._M_U_C_ _m_e_t_h_o_d_)
│ │ │ │ │ ********** TT **********
│ │ │ │ │ * _T_a_b_l_e_R_e_s_u_l_t_ _(_c_l_a_s_s_ _i_n_ _s_l_i_d_g_e_._c_o_m_m_a_n_d_) * _T_w_o_F_a_c_t_o_r_N_o_t_R_e_q_u_i_r_e_d
│ │ │ │ │ * _T_W_O___F_A_C_T_O_R___C_O_D_E_ * _t_y_p_e_
│ │ │ │ │ _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._r_e_g_i_s_t_e_r_._R_e_g_i_s_t_r_a_t_i_o_n_T_y_p_e _(_s_l_i_d_g_e_._c_o_m_m_a_n_d_._F_o_r_m_F_i_e_l_d
│ │ │ │ │ _a_t_t_r_i_b_u_t_e_) _a_t_t_r_i_b_u_t_e_)
│ │ │ │ │ ********** UU **********
│ │ │ │ │ * _u_n_r_e_g_i_s_t_e_r_(_)_ _(_s_l_i_d_g_e_._B_a_s_e_G_a_t_e_w_a_y * _u_p_d_a_t_e___i_n_f_o_(_)_
│ │ │ ├── ./usr/share/doc/python-slidge-doc/html/index.html
│ │ │ │ @@ -534,14 +534,33 @@
│ │ │ │
│ │ │ │
│ │ │ │ LegacyParticipant
│ │ │ │
│ │ │ │ LegacyMUC
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ - slidge.main
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -220,14 +220,33 @@
│ │ │ │ │ # _L_e_g_a_c_y_B_o_o_k_m_a_r_k_s_._r_e_m_o_v_e_(_)
│ │ │ │ │ # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t
│ │ │ │ │ # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._s_e_n_d___i_n_i_t_i_a_l___p_r_e_s_e_n_c_e
│ │ │ │ │ _(_)
│ │ │ │ │ # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._l_e_a_v_e_(_)
│ │ │ │ │ # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._k_i_c_k_(_)
│ │ │ │ │ # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._b_a_n_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._o_n_l_i_n_e_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._a_w_a_y_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._e_x_t_e_n_d_e_d___a_w_a_y_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._b_u_s_y_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._o_f_f_l_i_n_e_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._i_n_v_i_t_e___t_o_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._a_c_t_i_v_e_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._c_o_m_p_o_s_i_n_g_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._p_a_u_s_e_d_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._i_n_a_c_t_i_v_e_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._g_o_n_e_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._a_c_k_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._r_e_c_e_i_v_e_d_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._d_i_s_p_l_a_y_e_d_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._s_e_n_d___f_i_l_e_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._s_e_n_d___t_e_x_t_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._c_o_r_r_e_c_t_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._r_e_a_c_t_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_P_a_r_t_i_c_i_p_a_n_t_._r_e_t_r_a_c_t_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._S_T_A_B_L_E___A_R_C_H_I_V_E
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._K_E_E_P___B_A_C_K_F_I_L_L_E_D___P_A_R_T_I_C_I_P_A_N_T_S
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._H_A_S___D_E_S_C_R_I_P_T_I_O_N
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._H_A_S___S_U_B_J_E_C_T
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._u_p_d_a_t_e___i_n_f_o_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._b_a_c_k_f_i_l_l_(_)
│ │ │ │ │ @@ -242,14 +261,18 @@
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._a_d_d___t_o___b_o_o_k_m_a_r_k_s_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._o_n___a_v_a_t_a_r_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._o_n___s_e_t___a_f_f_i_l_i_a_t_i_o_n_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._o_n___k_i_c_k_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._o_n___s_e_t___c_o_n_f_i_g_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._o_n___d_e_s_t_r_o_y___r_e_q_u_e_s_t_(_)
│ │ │ │ │ # _L_e_g_a_c_y_M_U_C_._o_n___s_e_t___s_u_b_j_e_c_t_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_M_U_C_._a_v_a_t_a_r___i_d
│ │ │ │ │ + # _L_e_g_a_c_y_M_U_C_._a_v_a_t_a_r
│ │ │ │ │ + # _L_e_g_a_c_y_M_U_C_._s_e_t___a_v_a_t_a_r_(_)
│ │ │ │ │ + # _L_e_g_a_c_y_M_U_C_._a_v_a_i_l_a_b_l_e___e_m_o_j_i_s_(_)
│ │ │ │ │ # _s_l_i_d_g_e_._m_a_i_n
│ │ │ │ │ # _E_x_c_e_p_t_i_o_n_s
│ │ │ │ │ # _M_o_d_u_l_e_ _C_o_n_t_e_n_t_s
│ │ │ │ │ # _S_i_g_T_e_r_m_I_n_t_e_r_r_u_p_t
│ │ │ │ │ # _C_l_a_s_s_e_s
│ │ │ │ │ # _F_u_n_c_t_i_o_n_s
│ │ │ │ │ # _P_a_c_k_a_g_e_ _C_o_n_t_e_n_t_s
│ │ │ ├── ./usr/share/doc/python-slidge-doc/html/objects.inv
│ │ │ │ ├── Sphinx inventory
│ │ │ │ │ @@ -1,31 +1,503 @@
│ │ │ │ │ # Sphinx inventory version 2
│ │ │ │ │ # Project: Slidge
│ │ │ │ │ # Version:
│ │ │ │ │ # The remainder of this file is compressed using zlib.
│ │ │ │ │ -#3XT F۪%S[ST'/sAK(ϏjՖG(up}
│ │ │ │ │
│ │ │ │ │ -xŝr:Jf悊%SS3Ȳ>>} I%RbG}կ1/0O2HqIrn\bǏvu~:Y`w^yqz$v;sd3Ӆot&.]wc}4-<[7g.x2X'ޏNGq?y1.">t#gɓ6`=x|Fa4W&NghfFxPFb6X'xx9~FZRh6/P|>&/Se|4
FF/#-FiV~wT0g
cİc3Vy>QDD!\R3
│ │ │ │ │ -uP \IFvnle@Tmld/F;S:Ot4Ӗf:ݏLUX)Qonw#ꗡaT'!Me]i !t㇌頽dsh*_=<_S{*-oT`(] @{Tꉶ!ju{PԐC:8iuLPғX6mCZ'1Be/4 (>n[lȢƖ5-jJvw,Hs
W
Cԗjn`1z6Xh4x
│ │ │ │ │ -6zj
│ │ │ │ │ -8e:'wz!"h{+b$(;?
│ │ │ │ │ -_l8Djds;_nГ-m4$|lp~>D}X?7J|gA)a[hH=weڽ%vc'V[R,n>0A#5?/Fl:)⬒`&S+ɀed+< }ij+*4k4V=lijK~~xhjOfOJ}?.&3xDsr-$@ZU.yir$PGjm6@hh>y
#;88"Ua(n0$.vфAL
<0z+;^Mݸr*\;n,JL':Q1g+hfYSw.¶^
│ │ │ │ │ -D)di$~,qg==>*
.Pxn5#
│ │ │ │ │ -$!.9ovӏ#Ry=-^%oǩFhnI_u&OfjMDF*[?t0^RQzsn4SīJ|hHmF _Ǐ;{:-tܺb7j_G@
ΫyeA{~P!qOucMjv?s^QZ>^D{ɯ=X2. kPMmc2]i#]J}i*
│ │ │ │ │ -ipӦ@tPToPlQC7Tc7QQAeT rG5r95,LQ;-nڣmku >m=*`2x>EED)m[U+2uŶwT?q4MޕX橻h3aNqN^Q |
|
|