Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-Telethon for openSUSE:Factory 
checked in at 2025-03-18 17:42:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Telethon (Old)
 and      /work/SRC/openSUSE:Factory/.python-Telethon.new.19136 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-Telethon"

Tue Mar 18 17:42:16 2025 rev:13 rq:1253928 version:1.39.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Telethon/python-Telethon.changes  
2025-01-14 16:24:35.526838437 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-Telethon.new.19136/python-Telethon.changes   
    2025-03-18 17:44:36.313844277 +0100
@@ -1,0 +2,37 @@
+Mon Mar 17 13:11:04 UTC 2025 - John Paul Adrian Glaubitz 
<adrian.glaub...@suse.com>
+
+- Update to 1.39.0
+  * fix(session): persist session after `session.set_dc`
+  * Update to layer 195
+  * Avoid error when trying to reset deadline for no msgbox entries
+  * Updated to Layer 196 (#4525)
+  * Add missing parameters to Message constructor (#4529)
+  * Fix IOError with some image modes in photo resize This fixes image
+    compression with mode "P" (potentially others) which is necessary
+    as the server has erroneous alpha color with some types of images
+    (mode "P" for example). This also properly applies the background
+    argument that may be passed to _resize_photo_if_needed by always
+    compressing images with alpha regardless of whether the server
+    will compress the image for us.
+  * Document drop_author and add drop_media_captions drop_author is
+    already supported but is undocumented. drop_media_captions for
+    consistency with drop_author being implemented.
+  * Respect receive_updates=False
+  * Improve edit_message message type hint This also allows
+    utils.get_message_id to get the ID of InputMessageID.
+  * Update to layer 198
+  * Unconditionally match text and link text in markdown Fixes cases
+    where there's a nested [] in the text by matching until "](" is
+    reached. This doesn't match newlines in URLs because that makes
+    no sense.
+  * Fix overlapping URLs and improve overlapping in md Also remove the
+    unused overlap function.
+  * Make markdown URL regex less greedy Fixes multiple URLs in a single
+    message.
+  * fix: support batch sending of image URLs and video URLs in albums
+  * Consider range list-like This allows you to pass range() to things
+    such as get_messages as ids= without first explicitly converting it
+    to a list.
+  * Update to layer 199
+
+-------------------------------------------------------------------

Old:
----
  Telethon-1.38.1.tar.gz

New:
----
  Telethon-1.39.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-Telethon.spec ++++++
--- /var/tmp/diff_new_pack.VDahK9/_old  2025-03-18 17:44:36.789864280 +0100
+++ /var/tmp/diff_new_pack.VDahK9/_new  2025-03-18 17:44:36.789864280 +0100
@@ -19,7 +19,7 @@
 %define modname Telethon
 %{?sle15_python_module_pythons}
 Name:           python-Telethon
-Version:        1.38.1
+Version:        1.39.0
 Release:        0
 Summary:        Full-featured Telegram client library for Python 3
 License:        MIT

++++++ Telethon-1.38.1.tar.gz -> Telethon-1.39.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Telethon-1.38.1/readthedocs/misc/changelog.rst 
new/Telethon-1.39.0/readthedocs/misc/changelog.rst
--- old/Telethon-1.38.1/readthedocs/misc/changelog.rst  2024-11-18 
17:04:07.000000000 +0100
+++ new/Telethon-1.39.0/readthedocs/misc/changelog.rst  2025-02-20 
18:26:00.000000000 +0100
@@ -13,6 +13,37 @@
 
 .. contents:: List of All Versions
 
+New layer (v1.39)
+=================
+
++------------------------+
+| Scheme layer used: 199 |
++------------------------+
+
+`View new and changed raw API methods 
<https://diff.telethon.dev/?from=193&to=199>`__.
+
+Additions
+~~~~~~~~~
+
+* ``drop_media_captions`` added to ``forward_messages``, and documented 
together with ``drop_author``.
+* :tl:`InputMediaDocumentExternal` is now recognized when sending albums.
+
+Enhancements
+~~~~~~~~~~~~
+
+* ``receive_updates=False`` now covers more cases, however, Telegram is still 
free to ignore it.
+* Better type-hints in several methods.
+* Markdown parsing of inline links should cover more cases.
+* ``range`` is now considered "list-like" and can be used on e.g. ``ids`` 
parameters.
+
+Bug fixes
+~~~~~~~~~
+
+* Session is now saved after setting the DC.
+* Fixed rare crash in entity cache handling when iterating through dialogs.
+* Fixed IOError that could occur during automatic resizing of some photos.
+
+
 New layer (v1.38)
 =================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Telethon-1.38.1/telethon/_updates/messagebox.py 
new/Telethon-1.39.0/telethon/_updates/messagebox.py
--- old/Telethon-1.38.1/telethon/_updates/messagebox.py 2024-11-18 
17:04:07.000000000 +0100
+++ new/Telethon-1.39.0/telethon/_updates/messagebox.py 2025-02-20 
18:26:00.000000000 +0100
@@ -295,6 +295,8 @@
     #
     # It also updates the next deadline time to reflect the new closest 
deadline.
     def reset_deadlines(self, entries, deadline):
+        if not entries:
+            return
         for entry in entries:
             if entry not in self.map:
                 raise RuntimeError('Called reset_deadline on an entry for 
which we do not have state')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Telethon-1.38.1/telethon/client/messages.py 
new/Telethon-1.39.0/telethon/client/messages.py
--- old/Telethon-1.38.1/telethon/client/messages.py     2024-11-18 
17:04:07.000000000 +0100
+++ new/Telethon-1.39.0/telethon/client/messages.py     2025-02-20 
18:26:00.000000000 +0100
@@ -936,6 +936,7 @@
             as_album: bool = None,
             schedule: 'hints.DateLike' = None,
             drop_author: bool = None,
+            drop_media_captions: bool = None,
     ) -> 'typing.Sequence[types.Message]':
         """
         Forwards the given messages to the specified entity.
@@ -979,6 +980,12 @@
                 instead they will be scheduled to be automatically sent
                 at a later time.
 
+            drop_author (`bool`, optional):
+                Whether to forward messages without quoting the original 
author.
+
+            drop_media_captions (`bool`, optional):
+                Whether to strip captions from media. Setting this to `True` 
requires that `drop_author` also be set to `True`.
+
         Returns
             The list of forwarded `Message 
<telethon.tl.custom.message.Message>`,
             or a single one if a list wasn't provided as input.
@@ -1048,7 +1055,8 @@
                 background=background,
                 with_my_score=with_my_score,
                 schedule_date=schedule,
-                drop_author=drop_author
+                drop_author=drop_author,
+                drop_media_captions=drop_media_captions
             )
             result = await self(req)
             sent.extend(self._get_response_message(req, result, entity))
@@ -1058,7 +1066,7 @@
     async def edit_message(
             self: 'TelegramClient',
             entity: 'typing.Union[hints.EntityLike, types.Message]',
-            message: 'hints.MessageLike' = None,
+            message: 'typing.Union[int, types.Message, types.InputMessageID, 
str]' = None,
             text: str = None,
             *,
             parse_mode: str = (),
@@ -1088,7 +1096,7 @@
                 which is the only way to edit messages that were sent
                 after the user selects an inline query result.
 
-            message (`int` | `Message <telethon.tl.custom.message.Message>` | 
`str`):
+            message (`int` | `Message <telethon.tl.custom.message.Message>` | 
:tl:`InputMessageID` | `str`):
                 The ID of the message (or `Message
                 <telethon.tl.custom.message.Message>` itself) to be edited.
                 If the `entity` was a `Message
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Telethon-1.38.1/telethon/client/telegrambaseclient.py 
new/Telethon-1.39.0/telethon/client/telegrambaseclient.py
--- old/Telethon-1.38.1/telethon/client/telegrambaseclient.py   2024-11-18 
17:04:07.000000000 +0100
+++ new/Telethon-1.39.0/telethon/client/telegrambaseclient.py   2025-02-20 
18:26:00.000000000 +0100
@@ -313,6 +313,7 @@
                 DEFAULT_IPV6_IP if self._use_ipv6 else DEFAULT_IPV4_IP,
                 DEFAULT_PORT
             )
+            session.save()
 
         self.flood_sleep_threshold = flood_sleep_threshold
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Telethon-1.38.1/telethon/client/uploads.py 
new/Telethon-1.39.0/telethon/client/uploads.py
--- old/Telethon-1.38.1/telethon/client/uploads.py      2024-11-18 
17:04:07.000000000 +0100
+++ new/Telethon-1.39.0/telethon/client/uploads.py      2025-02-20 
18:26:00.000000000 +0100
@@ -67,24 +67,31 @@
         except KeyError:
             kwargs = {}
 
-        # Check if image is within acceptable bounds, if so, check if the 
image is at or below 10 MB, or assume it isn't if size is None or 0
-        if image.width <= width and image.height <= height and (before <= 
10000000 if before else False):
-            return file
-
-        image.thumbnail((width, height), PIL.Image.LANCZOS)
-
-        alpha_index = image.mode.find('A')
-        if alpha_index == -1:
-            # If the image mode doesn't have alpha
-            # channel then don't bother masking it away.
+        if image.mode == 'RGB':
+            # Check if image is within acceptable bounds, if so, check if the 
image is at or below 10 MB, or assume it isn't if size is None or 0
+            if image.width <= width and image.height <= height and (before <= 
10000000 if before else False):
+                return file
+
+            # If the image is already RGB, don't convert it
+            # certain modes such as 'P' have no alpha index but can't be saved 
as JPEG directly
+            image.thumbnail((width, height), PIL.Image.LANCZOS)
             result = image
         else:
             # We could save the resized image with the original format, but
             # JPEG often compresses better -> smaller size -> faster upload
             # We need to mask away the alpha channel ([3]), since otherwise
             # IOError is raised when trying to save alpha channels in JPEG.
+            image.thumbnail((width, height), PIL.Image.LANCZOS)
             result = PIL.Image.new('RGB', image.size, background)
-            result.paste(image, mask=image.split()[alpha_index])
+            mask = None
+
+            if image.has_transparency_data:
+                if image.mode == 'RGBA':
+                    mask = image.getchannel('A')
+                else:
+                    mask = image.convert('RGBA').getchannel('A')
+
+            result.paste(image, mask=mask)
 
         buffer = io.BytesIO()
         result.save(buffer, 'JPEG', progressive=True, **kwargs)
@@ -509,7 +516,7 @@
                 ))
 
                 fm = utils.get_input_media(r.photo)
-            elif isinstance(fm, types.InputMediaUploadedDocument):
+            elif isinstance(fm, (types.InputMediaUploadedDocument, 
types.InputMediaDocumentExternal)):
                 r = await self(functions.messages.UploadMediaRequest(
                     entity, media=fm
                 ))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Telethon-1.38.1/telethon/client/users.py 
new/Telethon-1.39.0/telethon/client/users.py
--- old/Telethon-1.38.1/telethon/client/users.py        2024-11-18 
17:04:07.000000000 +0100
+++ new/Telethon-1.39.0/telethon/client/users.py        2025-02-20 
18:26:00.000000000 +0100
@@ -36,8 +36,9 @@
 
         if flood_sleep_threshold is None:
             flood_sleep_threshold = self.flood_sleep_threshold
-        requests = (request if utils.is_list_like(request) else (request,))
-        for r in requests:
+        requests = list(request) if utils.is_list_like(request) else [request]
+        request = list(request) if utils.is_list_like(request) else request
+        for i, r in enumerate(requests):
             if not isinstance(r, TLRequest):
                 raise _NOT_A_REQUEST()
             await r.resolve(self, utils)
@@ -56,7 +57,11 @@
                     raise errors.FloodWaitError(request=r, capture=diff)
 
             if self._no_updates:
-                r = functions.InvokeWithoutUpdatesRequest(r)
+                if utils.is_list_like(request):
+                    request[i] = functions.InvokeWithoutUpdatesRequest(r)
+                else:
+                    # This should only run once as requests should be a list 
of 1 item
+                    request = functions.InvokeWithoutUpdatesRequest(r)
 
         request_index = 0
         last_error = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Telethon-1.38.1/telethon/extensions/markdown.py 
new/Telethon-1.39.0/telethon/extensions/markdown.py
--- old/Telethon-1.38.1/telethon/extensions/markdown.py 2024-11-18 
17:04:07.000000000 +0100
+++ new/Telethon-1.39.0/telethon/extensions/markdown.py 2025-02-20 
18:26:00.000000000 +0100
@@ -22,14 +22,10 @@
     '```': MessageEntityPre
 }
 
-DEFAULT_URL_RE = re.compile(r'\[([^\]]+)\]\(([^)]+)\)')
+DEFAULT_URL_RE = re.compile(r'\[([\s\S]+?)\]\((.+?)\)')
 DEFAULT_URL_FORMAT = '[{0}]({1})'
 
 
-def overlap(a, b, x, y):
-    return max(a, x) < min(b, y)
-
-
 def parse(message, delimiters=None, url_re=None):
     """
     Parses the given markdown message and returns its stripped representation
@@ -90,8 +86,8 @@
                 for ent in result:
                     # If the end is after our start, it is affected
                     if ent.offset + ent.length > i:
-                        # If the old start is also before ours, it is fully 
enclosed
-                        if ent.offset <= i:
+                        # If the old start is before ours and the old end is 
after ours, we are fully enclosed
+                        if ent.offset <= i and ent.offset + ent.length >= end 
+ len(delim):
                             ent.length -= len(delim) * 2
                         else:
                             ent.length -= len(delim)
@@ -119,7 +115,7 @@
                     message[m.end():]
                 ))
 
-                delim_size = m.end() - m.start() - len(m.group())
+                delim_size = m.end() - m.start() - len(m.group(1))
                 for ent in result:
                     # If the end is after our start, it is affected
                     if ent.offset + ent.length > m.start():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Telethon-1.38.1/telethon/tl/custom/message.py 
new/Telethon-1.39.0/telethon/tl/custom/message.py
--- old/Telethon-1.38.1/telethon/tl/custom/message.py   2024-11-18 
17:04:07.000000000 +0100
+++ new/Telethon-1.39.0/telethon/tl/custom/message.py   2025-02-20 
18:26:00.000000000 +0100
@@ -177,9 +177,9 @@
             id: int, peer_id: types.TypePeer,
             date: Optional[datetime]=None, message: Optional[str]=None,
             # Copied from Message.__init__ signature
-            out: Optional[bool]=None, mentioned: Optional[bool]=None, 
media_unread: Optional[bool]=None, silent: Optional[bool]=None, post: 
Optional[bool]=None, from_scheduled: Optional[bool]=None, legacy: 
Optional[bool]=None, edit_hide: Optional[bool]=None, pinned: 
Optional[bool]=None, noforwards: Optional[bool]=None, invert_media: 
Optional[bool]=None, offline: Optional[bool]=None, video_processing_pending: 
Optional[bool]=None, from_id: Optional[types.TypePeer]=None, 
from_boosts_applied: Optional[int]=None, saved_peer_id: 
Optional[types.TypePeer]=None, fwd_from: 
Optional[types.TypeMessageFwdHeader]=None, via_bot_id: Optional[int]=None, 
via_business_bot_id: Optional[int]=None, reply_to: 
Optional[types.TypeMessageReplyHeader]=None, media: 
Optional[types.TypeMessageMedia]=None, reply_markup: 
Optional[types.TypeReplyMarkup]=None, entities: 
Optional[List[types.TypeMessageEntity]]=None, views: Optional[int]=None, 
forwards: Optional[int]=None, replies: Optional[types.TypeMessageReplies]=N
 one, edit_date: Optional[datetime]=None, post_author: Optional[str]=None, 
grouped_id: Optional[int]=None, reactions: 
Optional[types.TypeMessageReactions]=None, restriction_reason: 
Optional[List[types.TypeRestrictionReason]]=None, ttl_period: 
Optional[int]=None, quick_reply_shortcut_id: Optional[int]=None, effect: 
Optional[int]=None, factcheck: Optional[types.TypeFactCheck]=None,
+            out: Optional[bool]=None, mentioned: Optional[bool]=None, 
media_unread: Optional[bool]=None, silent: Optional[bool]=None, post: 
Optional[bool]=None, from_scheduled: Optional[bool]=None, legacy: 
Optional[bool]=None, edit_hide: Optional[bool]=None, pinned: 
Optional[bool]=None, noforwards: Optional[bool]=None, invert_media: 
Optional[bool]=None, offline: Optional[bool]=None, video_processing_pending: 
Optional[bool]=None, from_id: Optional[types.TypePeer]=None, 
from_boosts_applied: Optional[int]=None, saved_peer_id: 
Optional[types.TypePeer]=None, fwd_from: 
Optional[types.TypeMessageFwdHeader]=None, via_bot_id: Optional[int]=None, 
via_business_bot_id: Optional[int]=None, reply_to: 
Optional[types.TypeMessageReplyHeader]=None, media: 
Optional[types.TypeMessageMedia]=None, reply_markup: 
Optional[types.TypeReplyMarkup]=None, entities: 
Optional[List[types.TypeMessageEntity]]=None, views: Optional[int]=None, 
forwards: Optional[int]=None, replies: Optional[types.TypeMessageReplies]=N
 one, edit_date: Optional[datetime]=None, post_author: Optional[str]=None, 
grouped_id: Optional[int]=None, reactions: 
Optional[types.TypeMessageReactions]=None, restriction_reason: 
Optional[List[types.TypeRestrictionReason]]=None, ttl_period: 
Optional[int]=None, quick_reply_shortcut_id: Optional[int]=None, effect: 
Optional[int]=None, factcheck: Optional[types.TypeFactCheck]=None, 
report_delivery_until_date: Optional[datetime]=None,
             # Copied from MessageService.__init__ signature
-            action: Optional[types.TypeMessageAction]=None
+            action: Optional[types.TypeMessageAction]=None, 
reactions_are_possible: Optional[bool]=None
     ):
         # Copied from Message.__init__ body
         self.id = id
@@ -221,8 +221,10 @@
         self.quick_reply_shortcut_id = quick_reply_shortcut_id
         self.effect = effect
         self.factcheck = factcheck
+        self.report_delivery_until_date = report_delivery_until_date
         # Copied from MessageService.__init__ body
         self.action = action
+        self.reactions_are_possible = reactions_are_possible
 
         # Convenient storage for custom functions
         # TODO This is becoming a bit of bloat
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Telethon-1.38.1/telethon/utils.py 
new/Telethon-1.39.0/telethon/utils.py
--- old/Telethon-1.38.1/telethon/utils.py       2024-11-18 17:04:07.000000000 
+0100
+++ new/Telethon-1.39.0/telethon/utils.py       2025-02-20 18:26:00.000000000 
+0100
@@ -600,6 +600,9 @@
     if isinstance(message, int):
         return message
 
+    if isinstance(message, types.InputMessageID):
+        return message.id
+
     try:
         if message.SUBCLASS_OF_ID == 0x790009e3:
             # hex(crc32(b'Message')) = 0x790009e3
@@ -896,7 +899,7 @@
     enough. Things like ``open()`` are also iterable (and probably many
     other things), so just support the commonly known list-like objects.
     """
-    return isinstance(obj, (list, tuple, set, dict, GeneratorType))
+    return isinstance(obj, (list, tuple, set, dict, range, GeneratorType))
 
 
 def parse_phone(phone):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Telethon-1.38.1/telethon/version.py 
new/Telethon-1.39.0/telethon/version.py
--- old/Telethon-1.38.1/telethon/version.py     2024-11-18 17:04:07.000000000 
+0100
+++ new/Telethon-1.39.0/telethon/version.py     2025-02-20 18:26:00.000000000 
+0100
@@ -1,3 +1,3 @@
 # Versions should comply with PEP440.
 # This line is parsed in setup.py:
-__version__ = '1.38.1'
+__version__ = '1.39.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Telethon-1.38.1/telethon_generator/data/api.tl 
new/Telethon-1.39.0/telethon_generator/data/api.tl
--- old/Telethon-1.38.1/telethon_generator/data/api.tl  2024-11-18 
17:04:07.000000000 +0100
+++ new/Telethon-1.39.0/telethon_generator/data/api.tl  2025-02-20 
18:26:00.000000000 +0100
@@ -33,11 +33,11 @@
 inputMediaPhoto#b3ba0635 flags:# spoiler:flags.1?true id:InputPhoto 
ttl_seconds:flags.0?int = InputMedia;
 inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
 inputMediaContact#f8ab7dfb phone_number:string first_name:string 
last_name:string vcard:string = InputMedia;
-inputMediaUploadedDocument#5b38c6c1 flags:# nosound_video:flags.3?true 
force_file:flags.4?true spoiler:flags.5?true file:InputFile 
thumb:flags.2?InputFile mime_type:string attributes:Vector<DocumentAttribute> 
stickers:flags.0?Vector<InputDocument> ttl_seconds:flags.1?int = InputMedia;
-inputMediaDocument#33473058 flags:# spoiler:flags.2?true id:InputDocument 
ttl_seconds:flags.0?int query:flags.1?string = InputMedia;
+inputMediaUploadedDocument#37c9330 flags:# nosound_video:flags.3?true 
force_file:flags.4?true spoiler:flags.5?true file:InputFile 
thumb:flags.2?InputFile mime_type:string attributes:Vector<DocumentAttribute> 
stickers:flags.0?Vector<InputDocument> video_cover:flags.6?InputPhoto 
video_timestamp:flags.7?int ttl_seconds:flags.1?int = InputMedia;
+inputMediaDocument#a8763ab5 flags:# spoiler:flags.2?true id:InputDocument 
video_cover:flags.3?InputPhoto video_timestamp:flags.4?int 
ttl_seconds:flags.0?int query:flags.1?string = InputMedia;
 inputMediaVenue#c13d1c11 geo_point:InputGeoPoint title:string address:string 
provider:string venue_id:string venue_type:string = InputMedia;
 inputMediaPhotoExternal#e5bbfe1a flags:# spoiler:flags.1?true url:string 
ttl_seconds:flags.0?int = InputMedia;
-inputMediaDocumentExternal#fb52dc99 flags:# spoiler:flags.1?true url:string 
ttl_seconds:flags.0?int = InputMedia;
+inputMediaDocumentExternal#779600f9 flags:# spoiler:flags.1?true url:string 
ttl_seconds:flags.0?int video_cover:flags.2?InputPhoto 
video_timestamp:flags.3?int = InputMedia;
 inputMediaGame#d33f43f3 id:InputGame = InputMedia;
 inputMediaInvoice#405fef0d flags:# title:string description:string 
photo:flags.0?InputWebDocument invoice:Invoice payload:bytes 
provider:flags.3?string provider_data:DataJSON start_param:flags.1?string 
extended_media:flags.2?InputMedia = InputMedia;
 inputMediaGeoLive#971fa843 flags:# stopped:flags.0?true 
geo_point:InputGeoPoint heading:flags.2?int period:flags.1?int 
proximity_notification_radius:flags.3?int = InputMedia;
@@ -84,7 +84,7 @@
 storage.fileWebp#1081464c = storage.FileType;
 
 userEmpty#d3bc4b7a id:long = User;
-user#83314fca flags:# self:flags.10?true contact:flags.11?true 
mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true 
bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true 
restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true 
support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true 
fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true 
attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true 
close_friend:flags2.2?true stories_hidden:flags2.3?true 
stories_unavailable:flags2.4?true contact_require_premium:flags2.10?true 
bot_business:flags2.11?true bot_has_main_app:flags2.13?true id:long 
access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string 
username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto 
status:flags.6?UserStatus bot_info_version:flags.14?int 
restriction_reason:flags.18?Vector<RestrictionReason> 
bot_inline_placeholder:flags.19?string lan
 g_code:flags.22?string emoji_status:flags.30?EmojiStatus 
usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?int 
color:flags2.8?PeerColor profile_color:flags2.9?PeerColor 
bot_active_users:flags2.12?int = User;
+user#4b46c37e flags:# self:flags.10?true contact:flags.11?true 
mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true 
bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true 
restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true 
support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true 
fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true 
attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true 
close_friend:flags2.2?true stories_hidden:flags2.3?true 
stories_unavailable:flags2.4?true contact_require_premium:flags2.10?true 
bot_business:flags2.11?true bot_has_main_app:flags2.13?true id:long 
access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string 
username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto 
status:flags.6?UserStatus bot_info_version:flags.14?int 
restriction_reason:flags.18?Vector<RestrictionReason> 
bot_inline_placeholder:flags.19?string lan
 g_code:flags.22?string emoji_status:flags.30?EmojiStatus 
usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?int 
color:flags2.8?PeerColor profile_color:flags2.9?PeerColor 
bot_active_users:flags2.12?int bot_verification_icon:flags2.14?long = User;
 
 userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
 userProfilePhoto#82d1f706 flags:# has_video:flags.0?true personal:flags.2?true 
photo_id:long stripped_thumb:flags.1?bytes dc_id:int = UserProfilePhoto;
@@ -99,11 +99,11 @@
 chatEmpty#29562865 id:long = Chat;
 chat#41cbf256 flags:# creator:flags.0?true left:flags.2?true 
deactivated:flags.5?true call_active:flags.23?true call_not_empty:flags.24?true 
noforwards:flags.25?true id:long title:string photo:ChatPhoto 
participants_count:int date:int version:int migrated_to:flags.6?InputChannel 
admin_rights:flags.14?ChatAdminRights 
default_banned_rights:flags.18?ChatBannedRights = Chat;
 chatForbidden#6592a1a7 id:long title:string = Chat;
-channel#fe4478bd flags:# creator:flags.0?true left:flags.2?true 
broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true 
restricted:flags.9?true signatures:flags.11?true min:flags.12?true 
scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true 
slowmode_enabled:flags.22?true call_active:flags.23?true 
call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true 
noforwards:flags.27?true join_to_send:flags.28?true join_request:flags.29?true 
forum:flags.30?true flags2:# stories_hidden:flags2.1?true 
stories_hidden_min:flags2.2?true stories_unavailable:flags2.3?true 
signature_profiles:flags2.12?true id:long access_hash:flags.13?long 
title:string username:flags.6?string photo:ChatPhoto date:int 
restriction_reason:flags.9?Vector<RestrictionReason> 
admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights 
default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int 
usernames:flags2.0?Vector<Username> stories_max_id:flags2.4?
 int color:flags2.7?PeerColor profile_color:flags2.8?PeerColor 
emoji_status:flags2.9?EmojiStatus level:flags2.10?int 
subscription_until_date:flags2.11?int = Chat;
+channel#e00998b7 flags:# creator:flags.0?true left:flags.2?true 
broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true 
restricted:flags.9?true signatures:flags.11?true min:flags.12?true 
scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true 
slowmode_enabled:flags.22?true call_active:flags.23?true 
call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true 
noforwards:flags.27?true join_to_send:flags.28?true join_request:flags.29?true 
forum:flags.30?true flags2:# stories_hidden:flags2.1?true 
stories_hidden_min:flags2.2?true stories_unavailable:flags2.3?true 
signature_profiles:flags2.12?true id:long access_hash:flags.13?long 
title:string username:flags.6?string photo:ChatPhoto date:int 
restriction_reason:flags.9?Vector<RestrictionReason> 
admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights 
default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int 
usernames:flags2.0?Vector<Username> stories_max_id:flags2.4?
 int color:flags2.7?PeerColor profile_color:flags2.8?PeerColor 
emoji_status:flags2.9?EmojiStatus level:flags2.10?int 
subscription_until_date:flags2.11?int bot_verification_icon:flags2.13?long = 
Chat;
 channelForbidden#17d493d5 flags:# broadcast:flags.5?true 
megagroup:flags.8?true id:long access_hash:long title:string 
until_date:flags.16?int = Chat;
 
 chatFull#2633421b flags:# can_set_username:flags.7?true 
has_scheduled:flags.8?true translations_disabled:flags.19?true id:long 
about:string participants:ChatParticipants chat_photo:flags.2?Photo 
notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite 
bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int 
folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int 
groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string 
requests_pending:flags.17?int recent_requesters:flags.17?Vector<long> 
available_reactions:flags.18?ChatReactions reactions_limit:flags.20?int = 
ChatFull;
-channelFull#bbab348d flags:# can_view_participants:flags.3?true 
can_set_username:flags.6?true can_set_stickers:flags.7?true 
hidden_prehistory:flags.10?true can_set_location:flags.16?true 
has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true 
flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true 
participants_hidden:flags2.2?true translations_disabled:flags2.3?true 
stories_pinned_available:flags2.5?true view_forum_as_messages:flags2.6?true 
restricted_sponsored:flags2.11?true can_view_revenue:flags2.12?true 
paid_media_allowed:flags2.14?true can_view_stars_revenue:flags2.15?true 
paid_reactions_available:flags2.16?true id:long about:string 
participants_count:flags.0?int admins_count:flags.1?int 
kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int 
read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo 
notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite 
bot_info:Vector<BotInfo> migr
 ated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int 
pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet 
available_min_id:flags.9?int folder_id:flags.11?int 
linked_chat_id:flags.14?long location:flags.15?ChannelLocation 
slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int 
stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall 
ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> 
groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string 
requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> 
default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions 
reactions_limit:flags2.13?int stories:flags2.4?PeerStories 
wallpaper:flags2.7?WallPaper boosts_applied:flags2.8?int 
boosts_unrestrict:flags2.9?int emojiset:flags2.10?StickerSet = ChatFull;
+channelFull#52d6806b flags:# can_view_participants:flags.3?true 
can_set_username:flags.6?true can_set_stickers:flags.7?true 
hidden_prehistory:flags.10?true can_set_location:flags.16?true 
has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true 
flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true 
participants_hidden:flags2.2?true translations_disabled:flags2.3?true 
stories_pinned_available:flags2.5?true view_forum_as_messages:flags2.6?true 
restricted_sponsored:flags2.11?true can_view_revenue:flags2.12?true 
paid_media_allowed:flags2.14?true can_view_stars_revenue:flags2.15?true 
paid_reactions_available:flags2.16?true stargifts_available:flags2.19?true 
id:long about:string participants_count:flags.0?int admins_count:flags.1?int 
kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int 
read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo 
notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatI
 nvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long 
migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int 
stickerset:flags.8?StickerSet available_min_id:flags.9?int 
folder_id:flags.11?int linked_chat_id:flags.14?long 
location:flags.15?ChannelLocation slowmode_seconds:flags.17?int 
slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int 
call:flags.21?InputGroupCall ttl_period:flags.24?int 
pending_suggestions:flags.25?Vector<string> 
groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string 
requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> 
default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions 
reactions_limit:flags2.13?int stories:flags2.4?PeerStories 
wallpaper:flags2.7?WallPaper boosts_applied:flags2.8?int 
boosts_unrestrict:flags2.9?int emojiset:flags2.10?StickerSet 
bot_verification:flags2.17?BotVerification stargifts_count:flags2.18?int = 
ChatFull;
 
 chatParticipant#c02d4007 user_id:long inviter_id:long date:int = 
ChatParticipant;
 chatParticipantCreator#e46bcee4 user_id:long = ChatParticipant;
@@ -116,15 +116,15 @@
 chatPhoto#1c6e1c11 flags:# has_video:flags.0?true photo_id:long 
stripped_thumb:flags.1?bytes dc_id:int = ChatPhoto;
 
 messageEmpty#90a6ca84 flags:# id:int peer_id:flags.0?Peer = Message;
-message#94345242 flags:# out:flags.1?true mentioned:flags.4?true 
media_unread:flags.5?true silent:flags.13?true post:flags.14?true 
from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true 
pinned:flags.24?true noforwards:flags.26?true invert_media:flags.27?true 
flags2:# offline:flags2.1?true video_processing_pending:flags2.4?true id:int 
from_id:flags.8?Peer from_boosts_applied:flags.29?int peer_id:Peer 
saved_peer_id:flags.28?Peer fwd_from:flags.2?MessageFwdHeader 
via_bot_id:flags.11?long via_business_bot_id:flags2.0?long 
reply_to:flags.3?MessageReplyHeader date:int message:string 
media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup 
entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int 
replies:flags.23?MessageReplies edit_date:flags.15?int 
post_author:flags.16?string grouped_id:flags.17?long 
reactions:flags.20?MessageReactions 
restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int 
quick_reply_shortcut_id:flags.30
 ?int effect:flags2.2?long factcheck:flags2.3?FactCheck = Message;
-messageService#2b085862 flags:# out:flags.1?true mentioned:flags.4?true 
media_unread:flags.5?true silent:flags.13?true post:flags.14?true 
legacy:flags.19?true id:int from_id:flags.8?Peer peer_id:Peer 
reply_to:flags.3?MessageReplyHeader date:int action:MessageAction 
ttl_period:flags.25?int = Message;
+message#96fdbbe9 flags:# out:flags.1?true mentioned:flags.4?true 
media_unread:flags.5?true silent:flags.13?true post:flags.14?true 
from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true 
pinned:flags.24?true noforwards:flags.26?true invert_media:flags.27?true 
flags2:# offline:flags2.1?true video_processing_pending:flags2.4?true id:int 
from_id:flags.8?Peer from_boosts_applied:flags.29?int peer_id:Peer 
saved_peer_id:flags.28?Peer fwd_from:flags.2?MessageFwdHeader 
via_bot_id:flags.11?long via_business_bot_id:flags2.0?long 
reply_to:flags.3?MessageReplyHeader date:int message:string 
media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup 
entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int 
replies:flags.23?MessageReplies edit_date:flags.15?int 
post_author:flags.16?string grouped_id:flags.17?long 
reactions:flags.20?MessageReactions 
restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int 
quick_reply_shortcut_id:flags.30
 ?int effect:flags2.2?long factcheck:flags2.3?FactCheck 
report_delivery_until_date:flags2.5?int = Message;
+messageService#d3d28540 flags:# out:flags.1?true mentioned:flags.4?true 
media_unread:flags.5?true reactions_are_possible:flags.9?true 
silent:flags.13?true post:flags.14?true legacy:flags.19?true id:int 
from_id:flags.8?Peer peer_id:Peer reply_to:flags.3?MessageReplyHeader date:int 
action:MessageAction reactions:flags.20?MessageReactions 
ttl_period:flags.25?int = Message;
 
 messageMediaEmpty#3ded6320 = MessageMedia;
 messageMediaPhoto#695150d7 flags:# spoiler:flags.3?true photo:flags.0?Photo 
ttl_seconds:flags.2?int = MessageMedia;
 messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
 messageMediaContact#70322949 phone_number:string first_name:string 
last_name:string vcard:string user_id:long = MessageMedia;
 messageMediaUnsupported#9f84f49e = MessageMedia;
-messageMediaDocument#dd570bd5 flags:# nopremium:flags.3?true 
spoiler:flags.4?true video:flags.6?true round:flags.7?true voice:flags.8?true 
document:flags.0?Document alt_documents:flags.5?Vector<Document> 
ttl_seconds:flags.2?int = MessageMedia;
+messageMediaDocument#52d8ccd9 flags:# nopremium:flags.3?true 
spoiler:flags.4?true video:flags.6?true round:flags.7?true voice:flags.8?true 
document:flags.0?Document alt_documents:flags.5?Vector<Document> 
video_cover:flags.9?Photo video_timestamp:flags.10?int ttl_seconds:flags.2?int 
= MessageMedia;
 messageMediaWebPage#ddf10c3b flags:# force_large_media:flags.0?true 
force_small_media:flags.1?true manual:flags.3?true safe:flags.4?true 
webpage:WebPage = MessageMedia;
 messageMediaVenue#2ec0533f geo:GeoPoint title:string address:string 
provider:string venue_id:string venue_type:string = MessageMedia;
 messageMediaGame#fdb19008 game:Game = MessageMedia;
@@ -151,8 +151,8 @@
 messageActionPinMessage#94bd38ed = MessageAction;
 messageActionHistoryClear#9fbab604 = MessageAction;
 messageActionGameScore#92a72876 game_id:long score:int = MessageAction;
-messageActionPaymentSentMe#8f31b327 flags:# recurring_init:flags.2?true 
recurring_used:flags.3?true currency:string total_amount:long payload:bytes 
info:flags.0?PaymentRequestedInfo shipping_option_id:flags.1?string 
charge:PaymentCharge = MessageAction;
-messageActionPaymentSent#96163f56 flags:# recurring_init:flags.2?true 
recurring_used:flags.3?true currency:string total_amount:long 
invoice_slug:flags.0?string = MessageAction;
+messageActionPaymentSentMe#ffa00ccc flags:# recurring_init:flags.2?true 
recurring_used:flags.3?true currency:string total_amount:long payload:bytes 
info:flags.0?PaymentRequestedInfo shipping_option_id:flags.1?string 
charge:PaymentCharge subscription_until_date:flags.4?int = MessageAction;
+messageActionPaymentSent#c624b16e flags:# recurring_init:flags.2?true 
recurring_used:flags.3?true currency:string total_amount:long 
invoice_slug:flags.0?string subscription_until_date:flags.4?int = MessageAction;
 messageActionPhoneCall#80e11a7f flags:# video:flags.2?true call_id:long 
reason:flags.0?PhoneCallDiscardReason duration:flags.1?int = MessageAction;
 messageActionScreenshotTaken#4792929b = MessageAction;
 messageActionCustomAction#fae69f56 message:string = MessageAction;
@@ -183,7 +183,8 @@
 messageActionPaymentRefunded#41b3e202 flags:# peer:Peer currency:string 
total_amount:long payload:flags.0?bytes charge:PaymentCharge = MessageAction;
 messageActionGiftStars#45d5b021 flags:# currency:string amount:long stars:long 
crypto_currency:flags.0?string crypto_amount:flags.0?long 
transaction_id:flags.1?string = MessageAction;
 messageActionPrizeStars#b00c47a2 flags:# unclaimed:flags.0?true stars:long 
transaction_id:string boost_peer:Peer giveaway_msg_id:int = MessageAction;
-messageActionStarGift#8557637 flags:# name_hidden:flags.0?true 
saved:flags.2?true converted:flags.3?true gift:StarGift 
message:flags.1?TextWithEntities convert_stars:flags.4?long = MessageAction;
+messageActionStarGift#4717e8a4 flags:# name_hidden:flags.0?true 
saved:flags.2?true converted:flags.3?true upgraded:flags.5?true 
refunded:flags.9?true can_upgrade:flags.10?true gift:StarGift 
message:flags.1?TextWithEntities convert_stars:flags.4?long 
upgrade_msg_id:flags.5?int upgrade_stars:flags.8?long from_id:flags.11?Peer 
peer:flags.12?Peer saved_id:flags.12?long = MessageAction;
+messageActionStarGiftUnique#acdfcb81 flags:# upgrade:flags.0?true 
transferred:flags.1?true saved:flags.2?true refunded:flags.5?true gift:StarGift 
can_export_at:flags.3?int transfer_stars:flags.4?long from_id:flags.6?Peer 
peer:flags.7?Peer saved_id:flags.7?long = MessageAction;
 
 dialog#d58a08c6 flags:# pinned:flags.2?true unread_mark:flags.3?true 
view_forum_as_messages:flags.6?true peer:Peer top_message:int 
read_inbox_max_id:int read_outbox_max_id:int unread_count:int 
unread_mentions_count:int unread_reactions_count:int 
notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage 
folder_id:flags.4?int ttl_period:flags.5?int = Dialog;
 dialogFolder#71bd134c flags:# pinned:flags.2?true folder:Folder peer:Peer 
top_message:int unread_muted_peers_count:int unread_unmuted_peers_count:int 
unread_muted_messages_count:int unread_unmuted_messages_count:int = Dialog;
@@ -235,7 +236,7 @@
 inputReportReasonIllegalDrugs#a8eb2be = ReportReason;
 inputReportReasonPersonalDetails#9ec7863d = ReportReason;
 
-userFull#1f58e369 flags:# blocked:flags.0?true 
phone_calls_available:flags.4?true phone_calls_private:flags.5?true 
can_pin_message:flags.7?true has_scheduled:flags.12?true 
video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true 
translations_disabled:flags.23?true stories_pinned_available:flags.26?true 
blocked_my_stories_from:flags.27?true wallpaper_overridden:flags.28?true 
contact_require_premium:flags.29?true read_dates_private:flags.30?true flags2:# 
sponsored_enabled:flags2.7?true can_view_revenue:flags2.9?true 
bot_can_manage_emoji_status:flags2.10?true id:long about:flags.1?string 
settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo 
fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings 
bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int 
folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string 
private_forward_name:flags.16?string 
bot_group_admin_rights:flags.17?ChatAdminRights bot_b
 roadcast_admin_rights:flags.18?ChatAdminRights 
premium_gifts:flags.19?Vector<PremiumGiftOption> wallpaper:flags.24?WallPaper 
stories:flags.25?PeerStories business_work_hours:flags2.0?BusinessWorkHours 
business_location:flags2.1?BusinessLocation 
business_greeting_message:flags2.2?BusinessGreetingMessage 
business_away_message:flags2.3?BusinessAwayMessage 
business_intro:flags2.4?BusinessIntro birthday:flags2.5?Birthday 
personal_channel_id:flags2.6?long personal_channel_message:flags2.6?int 
stargifts_count:flags2.8?int = UserFull;
+userFull#4d975bbc flags:# blocked:flags.0?true 
phone_calls_available:flags.4?true phone_calls_private:flags.5?true 
can_pin_message:flags.7?true has_scheduled:flags.12?true 
video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true 
translations_disabled:flags.23?true stories_pinned_available:flags.26?true 
blocked_my_stories_from:flags.27?true wallpaper_overridden:flags.28?true 
contact_require_premium:flags.29?true read_dates_private:flags.30?true flags2:# 
sponsored_enabled:flags2.7?true can_view_revenue:flags2.9?true 
bot_can_manage_emoji_status:flags2.10?true id:long about:flags.1?string 
settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo 
fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings 
bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int 
folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string 
private_forward_name:flags.16?string 
bot_group_admin_rights:flags.17?ChatAdminRights bot_b
 roadcast_admin_rights:flags.18?ChatAdminRights 
premium_gifts:flags.19?Vector<PremiumGiftOption> wallpaper:flags.24?WallPaper 
stories:flags.25?PeerStories business_work_hours:flags2.0?BusinessWorkHours 
business_location:flags2.1?BusinessLocation 
business_greeting_message:flags2.2?BusinessGreetingMessage 
business_away_message:flags2.3?BusinessAwayMessage 
business_intro:flags2.4?BusinessIntro birthday:flags2.5?Birthday 
personal_channel_id:flags2.6?long personal_channel_message:flags2.6?int 
stargifts_count:flags2.8?int starref_program:flags2.11?StarRefProgram 
bot_verification:flags2.12?BotVerification = UserFull;
 
 contact#145ade0b user_id:long mutual:Bool = Contact;
 
@@ -371,7 +372,7 @@
 updatePinnedChannelMessages#5bb98608 flags:# pinned:flags.0?true 
channel_id:long messages:Vector<int> pts:int pts_count:int = Update;
 updateChat#f89a6a4e chat_id:long = Update;
 updateGroupCallParticipants#f2ebdb4e call:InputGroupCall 
participants:Vector<GroupCallParticipant> version:int = Update;
-updateGroupCall#14b24500 chat_id:long call:GroupCall = Update;
+updateGroupCall#97d64341 flags:# chat_id:flags.0?long call:GroupCall = Update;
 updatePeerHistoryTTL#bb9bb9a5 flags:# peer:Peer ttl_period:flags.0?int = 
Update;
 updateChatParticipant#d087663a flags:# chat_id:long date:int actor_id:long 
user_id:long prev_participant:flags.0?ChatParticipant 
new_participant:flags.1?ChatParticipant invite:flags.2?ExportedChatInvite 
qts:int = Update;
 updateChannelParticipant#985d3abb flags:# via_chatlist:flags.3?true 
channel_id:long date:int actor_id:long user_id:long 
prev_participant:flags.0?ChannelParticipant 
new_participant:flags.1?ChannelParticipant invite:flags.2?ExportedChatInvite 
qts:int = Update;
@@ -421,12 +422,11 @@
 updateBotDeleteBusinessMessage#a02a982e connection_id:string peer:Peer 
messages:Vector<int> qts:int = Update;
 updateNewStoryReaction#1824e40b story_id:int peer:Peer reaction:Reaction = 
Update;
 updateBroadcastRevenueTransactions#dfd961f5 peer:Peer 
balances:BroadcastRevenueBalances = Update;
-updateStarsBalance#fb85198 balance:long = Update;
+updateStarsBalance#4e80a379 balance:StarsAmount = Update;
 updateBusinessBotCallbackQuery#1ea2fda7 flags:# query_id:long user_id:long 
connection_id:string message:Message reply_to_message:flags.2?Message 
chat_instance:long data:flags.0?bytes = Update;
 updateStarsRevenueStatus#a584b019 peer:Peer status:StarsRevenueStatus = Update;
 updateBotPurchasedPaidMedia#283bd312 user_id:long payload:string qts:int = 
Update;
-updatePaidReactionPrivacy#51ca7aec private:Bool = Update;
-updateBotSubscriptionExpire#2d13c6ee user_id:long payload:string 
invoice_slug:string until_date:int qts:int = Update;
+updatePaidReactionPrivacy#8b725fce private:PaidReactionPrivacy = Update;
 
 updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = 
updates.State;
 
@@ -599,7 +599,7 @@
 
 webPageEmpty#211a1788 flags:# id:long url:flags.0?string = WebPage;
 webPagePending#b0d13e47 flags:# id:long url:flags.0?string date:int = WebPage;
-webPage#e89c45b2 flags:# has_large_media:flags.13?true id:long url:string 
display_url:string hash:int type:flags.0?string site_name:flags.1?string 
title:flags.2?string description:flags.3?string photo:flags.4?Photo 
embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int 
embed_height:flags.6?int duration:flags.7?int author:flags.8?string 
document:flags.9?Document cached_page:flags.10?Page 
attributes:flags.12?Vector<WebPageAttribute> = WebPage;
+webPage#e89c45b2 flags:# has_large_media:flags.13?true 
video_cover_photo:flags.14?true id:long url:string display_url:string hash:int 
type:flags.0?string site_name:flags.1?string title:flags.2?string 
description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string 
embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int 
duration:flags.7?int author:flags.8?string document:flags.9?Document 
cached_page:flags.10?Page attributes:flags.12?Vector<WebPageAttribute> = 
WebPage;
 webPageNotModified#7311ca11 flags:# cached_page_views:flags.0?int = WebPage;
 
 authorization#ad01d61d flags:# current:flags.0?true official_app:flags.1?true 
password_pending:flags.2?true encrypted_requests_disabled:flags.3?true 
call_requests_disabled:flags.4?true unconfirmed:flags.5?true hash:long 
device_model:string platform:string system_version:string api_id:int 
app_name:string app_version:string date_created:int date_active:int ip:string 
country:string region:string = Authorization;
@@ -620,7 +620,7 @@
 chatInvitePublicJoinRequests#ed107ab7 = ExportedChatInvite;
 
 chatInviteAlready#5a686d7c chat:Chat = ChatInvite;
-chatInvite#fe65389d flags:# channel:flags.0?true broadcast:flags.1?true 
public:flags.2?true megagroup:flags.3?true request_needed:flags.6?true 
verified:flags.7?true scam:flags.8?true fake:flags.9?true 
can_refulfill_subscription:flags.11?true title:string about:flags.5?string 
photo:Photo participants_count:int participants:flags.4?Vector<User> color:int 
subscription_pricing:flags.10?StarsSubscriptionPricing 
subscription_form_id:flags.12?long = ChatInvite;
+chatInvite#5c9d3702 flags:# channel:flags.0?true broadcast:flags.1?true 
public:flags.2?true megagroup:flags.3?true request_needed:flags.6?true 
verified:flags.7?true scam:flags.8?true fake:flags.9?true 
can_refulfill_subscription:flags.11?true title:string about:flags.5?string 
photo:Photo participants_count:int participants:flags.4?Vector<User> color:int 
subscription_pricing:flags.10?StarsSubscriptionPricing 
subscription_form_id:flags.12?long bot_verification:flags.13?BotVerification = 
ChatInvite;
 chatInvitePeek#61695cb0 chat:Chat expires:int = ChatInvite;
 
 inputStickerSetEmpty#ffb62b95 = InputStickerSet;
@@ -642,7 +642,7 @@
 
 botCommand#c27ac8c7 command:string description:string = BotCommand;
 
-botInfo#36607333 flags:# has_preview_medias:flags.6?true user_id:flags.0?long 
description:flags.1?string description_photo:flags.4?Photo 
description_document:flags.5?Document commands:flags.2?Vector<BotCommand> 
menu_button:flags.3?BotMenuButton privacy_policy_url:flags.7?string 
app_settings:flags.8?BotAppSettings = BotInfo;
+botInfo#4d8a0299 flags:# has_preview_medias:flags.6?true user_id:flags.0?long 
description:flags.1?string description_photo:flags.4?Photo 
description_document:flags.5?Document commands:flags.2?Vector<BotCommand> 
menu_button:flags.3?BotMenuButton privacy_policy_url:flags.7?string 
app_settings:flags.8?BotAppSettings 
verifier_settings:flags.9?BotVerifierSettings = BotInfo;
 
 keyboardButton#a2fa4880 text:string = KeyboardButton;
 keyboardButtonUrl#258aff05 text:string url:string = KeyboardButton;
@@ -895,6 +895,7 @@
 phoneCallDiscardReasonDisconnect#e095c1a0 = PhoneCallDiscardReason;
 phoneCallDiscardReasonHangup#57adc690 = PhoneCallDiscardReason;
 phoneCallDiscardReasonBusy#faf7e8c9 = PhoneCallDiscardReason;
+phoneCallDiscardReasonAllowGroupCall#afe2b839 encrypted_key:bytes = 
PhoneCallDiscardReason;
 
 dataJSON#7d748d04 data:string = DataJSON;
 
@@ -949,11 +950,11 @@
 inputPhoneCall#1e36fded id:long access_hash:long = InputPhoneCall;
 
 phoneCallEmpty#5366c915 id:long = PhoneCall;
-phoneCallWaiting#c5226f17 flags:# video:flags.6?true id:long access_hash:long 
date:int admin_id:long participant_id:long protocol:PhoneCallProtocol 
receive_date:flags.0?int = PhoneCall;
-phoneCallRequested#14b0ed0c flags:# video:flags.6?true id:long 
access_hash:long date:int admin_id:long participant_id:long g_a_hash:bytes 
protocol:PhoneCallProtocol = PhoneCall;
-phoneCallAccepted#3660c311 flags:# video:flags.6?true id:long access_hash:long 
date:int admin_id:long participant_id:long g_b:bytes protocol:PhoneCallProtocol 
= PhoneCall;
-phoneCall#30535af5 flags:# p2p_allowed:flags.5?true video:flags.6?true id:long 
access_hash:long date:int admin_id:long participant_id:long g_a_or_b:bytes 
key_fingerprint:long protocol:PhoneCallProtocol 
connections:Vector<PhoneConnection> start_date:int 
custom_parameters:flags.7?DataJSON = PhoneCall;
-phoneCallDiscarded#50ca4de1 flags:# need_rating:flags.2?true 
need_debug:flags.3?true video:flags.6?true id:long 
reason:flags.0?PhoneCallDiscardReason duration:flags.1?int = PhoneCall;
+phoneCallWaiting#eed42858 flags:# video:flags.6?true id:long access_hash:long 
date:int admin_id:long participant_id:long protocol:PhoneCallProtocol 
receive_date:flags.0?int conference_call:flags.8?InputGroupCall = PhoneCall;
+phoneCallRequested#45361c63 flags:# video:flags.6?true id:long 
access_hash:long date:int admin_id:long participant_id:long g_a_hash:bytes 
protocol:PhoneCallProtocol conference_call:flags.8?InputGroupCall = PhoneCall;
+phoneCallAccepted#22fd7181 flags:# video:flags.6?true id:long access_hash:long 
date:int admin_id:long participant_id:long g_b:bytes protocol:PhoneCallProtocol 
conference_call:flags.8?InputGroupCall = PhoneCall;
+phoneCall#3ba5940c flags:# p2p_allowed:flags.5?true video:flags.6?true id:long 
access_hash:long date:int admin_id:long participant_id:long g_a_or_b:bytes 
key_fingerprint:long protocol:PhoneCallProtocol 
connections:Vector<PhoneConnection> start_date:int 
custom_parameters:flags.7?DataJSON conference_call:flags.8?InputGroupCall = 
PhoneCall;
+phoneCallDiscarded#f9d25503 flags:# need_rating:flags.2?true 
need_debug:flags.3?true video:flags.6?true id:long 
reason:flags.0?PhoneCallDiscardReason duration:flags.1?int 
conference_call:flags.8?InputGroupCall = PhoneCall;
 
 phoneConnection#9cc123c7 flags:# tcp:flags.0?true id:long ip:string 
ipv6:string port:int peer_tag:bytes = PhoneConnection;
 phoneConnectionWebrtc#635fe375 flags:# turn:flags.0?true stun:flags.1?true 
id:long ip:string ipv6:string port:int username:string password:string = 
PhoneConnection;
@@ -1267,6 +1268,7 @@
 webPageAttributeTheme#54b56617 flags:# documents:flags.0?Vector<Document> 
settings:flags.1?ThemeSettings = WebPageAttribute;
 webPageAttributeStory#2e94c3e7 flags:# peer:Peer id:int 
story:flags.0?StoryItem = WebPageAttribute;
 webPageAttributeStickerSet#50cc03d3 flags:# emojis:flags.0?true 
text_color:flags.1?true stickers:Vector<Document> = WebPageAttribute;
+webPageAttributeUniqueStarGift#cf6f6db8 gift:StarGift = WebPageAttribute;
 
 messages.votesList#4899484e flags:# count:int votes:Vector<MessagePeerVote> 
chats:Vector<Chat> users:Vector<User> next_offset:flags.0?string = 
messages.VotesList;
 
@@ -1274,9 +1276,9 @@
 
 payments.bankCardData#3e24e573 title:string open_urls:Vector<BankCardOpenUrl> 
= payments.BankCardData;
 
-dialogFilter#5fb5523b flags:# contacts:flags.0?true non_contacts:flags.1?true 
groups:flags.2?true broadcasts:flags.3?true bots:flags.4?true 
exclude_muted:flags.11?true exclude_read:flags.12?true 
exclude_archived:flags.13?true id:int title:string emoticon:flags.25?string 
color:flags.27?int pinned_peers:Vector<InputPeer> 
include_peers:Vector<InputPeer> exclude_peers:Vector<InputPeer> = DialogFilter;
+dialogFilter#aa472651 flags:# contacts:flags.0?true non_contacts:flags.1?true 
groups:flags.2?true broadcasts:flags.3?true bots:flags.4?true 
exclude_muted:flags.11?true exclude_read:flags.12?true 
exclude_archived:flags.13?true title_noanimate:flags.28?true id:int 
title:TextWithEntities emoticon:flags.25?string color:flags.27?int 
pinned_peers:Vector<InputPeer> include_peers:Vector<InputPeer> 
exclude_peers:Vector<InputPeer> = DialogFilter;
 dialogFilterDefault#363293ae = DialogFilter;
-dialogFilterChatlist#9fe28ea4 flags:# has_my_invites:flags.26?true id:int 
title:string emoticon:flags.25?string color:flags.27?int 
pinned_peers:Vector<InputPeer> include_peers:Vector<InputPeer> = DialogFilter;
+dialogFilterChatlist#96537bd7 flags:# has_my_invites:flags.26?true 
title_noanimate:flags.28?true id:int title:TextWithEntities 
emoticon:flags.25?string color:flags.27?int pinned_peers:Vector<InputPeer> 
include_peers:Vector<InputPeer> = DialogFilter;
 
 dialogFilterSuggested#77744d4a filter:DialogFilter description:string = 
DialogFilterSuggested;
 
@@ -1332,7 +1334,7 @@
 stats.messageStats#7fe91c14 views_graph:StatsGraph 
reactions_by_emotion_graph:StatsGraph = stats.MessageStats;
 
 groupCallDiscarded#7780bcb4 id:long access_hash:long duration:int = GroupCall;
-groupCall#d597650c flags:# join_muted:flags.1?true 
can_change_join_muted:flags.2?true join_date_asc:flags.6?true 
schedule_start_subscribed:flags.8?true can_start_video:flags.9?true 
record_video_active:flags.11?true rtmp_stream:flags.12?true 
listeners_hidden:flags.13?true id:long access_hash:long participants_count:int 
title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int 
schedule_date:flags.7?int unmuted_video_count:flags.10?int 
unmuted_video_limit:int version:int = GroupCall;
+groupCall#cdf8d3e3 flags:# join_muted:flags.1?true 
can_change_join_muted:flags.2?true join_date_asc:flags.6?true 
schedule_start_subscribed:flags.8?true can_start_video:flags.9?true 
record_video_active:flags.11?true rtmp_stream:flags.12?true 
listeners_hidden:flags.13?true id:long access_hash:long participants_count:int 
title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int 
schedule_date:flags.7?int unmuted_video_count:flags.10?int 
unmuted_video_limit:int version:int conference_from_call:flags.14?long = 
GroupCall;
 
 inputGroupCall#d8aa840f id:long access_hash:long = InputGroupCall;
 
@@ -1473,7 +1475,9 @@
 inputInvoicePremiumGiftCode#98986c0d purpose:InputStorePaymentPurpose 
option:PremiumGiftCodeOption = InputInvoice;
 inputInvoiceStars#65f00ce3 purpose:InputStorePaymentPurpose = InputInvoice;
 inputInvoiceChatInviteSubscription#34e793f1 hash:string = InputInvoice;
-inputInvoiceStarGift#25d8c1d8 flags:# hide_name:flags.0?true user_id:InputUser 
gift_id:long message:flags.1?TextWithEntities = InputInvoice;
+inputInvoiceStarGift#e8625e92 flags:# hide_name:flags.0?true 
include_upgrade:flags.2?true peer:InputPeer gift_id:long 
message:flags.1?TextWithEntities = InputInvoice;
+inputInvoiceStarGiftUpgrade#4d818d5d flags:# 
keep_original_details:flags.0?true stargift:InputSavedStarGift = InputInvoice;
+inputInvoiceStarGiftTransfer#4a5f5bd9 stargift:InputSavedStarGift 
to_id:InputPeer = InputInvoice;
 
 payments.exportedInvoice#aed0cbd9 url:string = payments.ExportedInvoice;
 
@@ -1494,8 +1498,9 @@
 paymentFormMethod#88f8f21b url:string title:string = PaymentFormMethod;
 
 emojiStatusEmpty#2de11aae = EmojiStatus;
-emojiStatus#929b619d document_id:long = EmojiStatus;
-emojiStatusUntil#fa30a8c7 document_id:long until:int = EmojiStatus;
+emojiStatus#e7ff068a flags:# document_id:long until:flags.0?int = EmojiStatus;
+emojiStatusCollectible#7184603b flags:# collectible_id:long document_id:long 
title:string slug:string pattern_document_id:long center_color:int 
edge_color:int pattern_color:int text_color:int until:flags.0?int = EmojiStatus;
+inputEmojiStatusCollectible#7141dbf flags:# collectible_id:long 
until:flags.0?int = EmojiStatus;
 
 account.emojiStatusesNotModified#d08ce645 = account.EmojiStatuses;
 account.emojiStatuses#90c467d1 hash:long statuses:Vector<EmojiStatus> = 
account.EmojiStatuses;
@@ -1591,7 +1596,7 @@
 chatlists.exportedInvites#10ab6dc7 invites:Vector<ExportedChatlistInvite> 
chats:Vector<Chat> users:Vector<User> = chatlists.ExportedInvites;
 
 chatlists.chatlistInviteAlready#fa87f659 filter_id:int 
missing_peers:Vector<Peer> already_peers:Vector<Peer> chats:Vector<Chat> 
users:Vector<User> = chatlists.ChatlistInvite;
-chatlists.chatlistInvite#1dcd839d flags:# title:string emoticon:flags.0?string 
peers:Vector<Peer> chats:Vector<Chat> users:Vector<User> = 
chatlists.ChatlistInvite;
+chatlists.chatlistInvite#f10ece2f flags:# title_noanimate:flags.1?true 
title:TextWithEntities emoticon:flags.0?string peers:Vector<Peer> 
chats:Vector<Chat> users:Vector<User> = chatlists.ChatlistInvite;
 
 chatlists.chatlistUpdates#93bd878d missing_peers:Vector<Peer> 
chats:Vector<Chat> users:Vector<User> = chatlists.ChatlistUpdates;
 
@@ -1637,6 +1642,7 @@
 inputMediaAreaChannelPost#2271f2bf coordinates:MediaAreaCoordinates 
channel:InputChannel msg_id:int = MediaArea;
 mediaAreaUrl#37381085 coordinates:MediaAreaCoordinates url:string = MediaArea;
 mediaAreaWeather#49a6549c coordinates:MediaAreaCoordinates emoji:string 
temperature_c:double color:int = MediaArea;
+mediaAreaStarGift#5787686d coordinates:MediaAreaCoordinates slug:string = 
MediaArea;
 
 peerStories#9a35e999 flags:# peer:Peer max_read_id:flags.0?int 
stories:Vector<StoryItem> = PeerStories;
 
@@ -1832,9 +1838,9 @@
 
 starsTopupOption#bd915c0 flags:# extended:flags.1?true stars:long 
store_product:flags.0?string currency:string amount:long = StarsTopupOption;
 
-starsTransaction#35d4f276 flags:# refund:flags.3?true pending:flags.4?true 
failed:flags.6?true gift:flags.10?true reaction:flags.11?true id:string 
stars:long date:int peer:StarsTransactionPeer title:flags.0?string 
description:flags.1?string photo:flags.2?WebDocument 
transaction_date:flags.5?int transaction_url:flags.5?string 
bot_payload:flags.7?bytes msg_id:flags.8?int 
extended_media:flags.9?Vector<MessageMedia> subscription_period:flags.12?int 
giveaway_post_id:flags.13?int stargift:flags.14?StarGift 
floodskip_number:flags.15?int = StarsTransaction;
+starsTransaction#64dfc926 flags:# refund:flags.3?true pending:flags.4?true 
failed:flags.6?true gift:flags.10?true reaction:flags.11?true 
stargift_upgrade:flags.18?true id:string stars:StarsAmount date:int 
peer:StarsTransactionPeer title:flags.0?string description:flags.1?string 
photo:flags.2?WebDocument transaction_date:flags.5?int 
transaction_url:flags.5?string bot_payload:flags.7?bytes msg_id:flags.8?int 
extended_media:flags.9?Vector<MessageMedia> subscription_period:flags.12?int 
giveaway_post_id:flags.13?int stargift:flags.14?StarGift 
floodskip_number:flags.15?int starref_commission_permille:flags.16?int 
starref_peer:flags.17?Peer starref_amount:flags.17?StarsAmount = 
StarsTransaction;
 
-payments.starsStatus#bbfa316c flags:# balance:long 
subscriptions:flags.1?Vector<StarsSubscription> 
subscriptions_next_offset:flags.2?string 
subscriptions_missing_balance:flags.4?long 
history:flags.3?Vector<StarsTransaction> next_offset:flags.0?string 
chats:Vector<Chat> users:Vector<User> = payments.StarsStatus;
+payments.starsStatus#6c9ce8ed flags:# balance:StarsAmount 
subscriptions:flags.1?Vector<StarsSubscription> 
subscriptions_next_offset:flags.2?string 
subscriptions_missing_balance:flags.4?long 
history:flags.3?Vector<StarsTransaction> next_offset:flags.0?string 
chats:Vector<Chat> users:Vector<User> = payments.StarsStatus;
 
 foundStory#e87acbc0 peer:Peer story:StoryItem = FoundStory;
 
@@ -1842,7 +1848,7 @@
 
 geoPointAddress#de4c5d93 flags:# country_iso2:string state:flags.0?string 
city:flags.1?string street:flags.2?string = GeoPointAddress;
 
-starsRevenueStatus#79342946 flags:# withdrawal_enabled:flags.0?true 
current_balance:long available_balance:long overall_revenue:long 
next_withdrawal_at:flags.1?int = StarsRevenueStatus;
+starsRevenueStatus#febe5491 flags:# withdrawal_enabled:flags.0?true 
current_balance:StarsAmount available_balance:StarsAmount 
overall_revenue:StarsAmount next_withdrawal_at:flags.1?int = StarsRevenueStatus;
 
 payments.starsRevenueStats#c92bb73b revenue_graph:StatsGraph 
status:StarsRevenueStatus usd_rate:double = payments.StarsRevenueStats;
 
@@ -1870,15 +1876,12 @@
 
 starsGiveawayWinnersOption#54236209 flags:# default:flags.0?true users:int 
per_user_stars:long = StarsGiveawayWinnersOption;
 
-starGift#49c577cd flags:# limited:flags.0?true sold_out:flags.1?true 
birthday:flags.2?true id:long sticker:Document stars:long 
availability_remains:flags.0?int availability_total:flags.0?int 
convert_stars:long first_sale_date:flags.1?int last_sale_date:flags.1?int = 
StarGift;
+starGift#2cc73c8 flags:# limited:flags.0?true sold_out:flags.1?true 
birthday:flags.2?true id:long sticker:Document stars:long 
availability_remains:flags.0?int availability_total:flags.0?int 
convert_stars:long first_sale_date:flags.1?int last_sale_date:flags.1?int 
upgrade_stars:flags.3?long = StarGift;
+starGiftUnique#5c62d151 flags:# id:long title:string slug:string num:int 
owner_id:flags.0?Peer owner_name:flags.1?string owner_address:flags.2?string 
attributes:Vector<StarGiftAttribute> availability_issued:int 
availability_total:int gift_address:flags.3?string = StarGift;
 
 payments.starGiftsNotModified#a388a368 = payments.StarGifts;
 payments.starGifts#901689ea hash:int gifts:Vector<StarGift> = 
payments.StarGifts;
 
-userStarGift#eea49a6e flags:# name_hidden:flags.0?true unsaved:flags.5?true 
from_id:flags.1?long date:int gift:StarGift message:flags.2?TextWithEntities 
msg_id:flags.3?int convert_stars:flags.4?long = UserStarGift;
-
-payments.userStarGifts#6b65b517 flags:# count:int gifts:Vector<UserStarGift> 
next_offset:flags.0?string users:Vector<User> = payments.UserStarGifts;
-
 messageReportOption#7903e3d9 text:string option:bytes = MessageReportOption;
 
 reportResultChooseOption#f0e4e0b6 title:string 
options:Vector<MessageReportOption> = ReportResult;
@@ -1891,6 +1894,50 @@
 
 botAppSettings#c99b1950 flags:# placeholder_path:flags.0?bytes 
background_color:flags.1?int background_dark_color:flags.2?int 
header_color:flags.3?int header_dark_color:flags.4?int = BotAppSettings;
 
+starRefProgram#dd0c66f2 flags:# bot_id:long commission_permille:int 
duration_months:flags.0?int end_date:flags.1?int 
daily_revenue_per_user:flags.2?StarsAmount = StarRefProgram;
+
+connectedBotStarRef#19a13f71 flags:# revoked:flags.1?true url:string date:int 
bot_id:long commission_permille:int duration_months:flags.0?int 
participants:long revenue:long = ConnectedBotStarRef;
+
+payments.connectedStarRefBots#98d5ea1d count:int 
connected_bots:Vector<ConnectedBotStarRef> users:Vector<User> = 
payments.ConnectedStarRefBots;
+
+payments.suggestedStarRefBots#b4d5d859 flags:# count:int 
suggested_bots:Vector<StarRefProgram> users:Vector<User> 
next_offset:flags.0?string = payments.SuggestedStarRefBots;
+
+starsAmount#bbb6b4a3 amount:long nanos:int = StarsAmount;
+
+messages.foundStickersNotModified#6010c534 flags:# next_offset:flags.0?int = 
messages.FoundStickers;
+messages.foundStickers#82c9e290 flags:# next_offset:flags.0?int hash:long 
stickers:Vector<Document> = messages.FoundStickers;
+
+botVerifierSettings#b0cd6617 flags:# 
can_modify_custom_description:flags.1?true icon:long company:string 
custom_description:flags.0?string = BotVerifierSettings;
+
+botVerification#f93cd45c bot_id:long icon:long description:string = 
BotVerification;
+
+starGiftAttributeModel#39d99013 name:string document:Document 
rarity_permille:int = StarGiftAttribute;
+starGiftAttributePattern#13acff19 name:string document:Document 
rarity_permille:int = StarGiftAttribute;
+starGiftAttributeBackdrop#94271762 name:string center_color:int edge_color:int 
pattern_color:int text_color:int rarity_permille:int = StarGiftAttribute;
+starGiftAttributeOriginalDetails#e0bff26c flags:# sender_id:flags.0?Peer 
recipient_id:Peer date:int message:flags.1?TextWithEntities = StarGiftAttribute;
+
+payments.starGiftUpgradePreview#167bd90b 
sample_attributes:Vector<StarGiftAttribute> = payments.StarGiftUpgradePreview;
+
+users.users#62d706b8 users:Vector<User> = users.Users;
+users.usersSlice#315a4974 count:int users:Vector<User> = users.Users;
+
+payments.uniqueStarGift#caa2f60b gift:StarGift users:Vector<User> = 
payments.UniqueStarGift;
+
+messages.webPagePreview#b53e8b21 media:MessageMedia users:Vector<User> = 
messages.WebPagePreview;
+
+savedStarGift#6056dba5 flags:# name_hidden:flags.0?true unsaved:flags.5?true 
refunded:flags.9?true can_upgrade:flags.10?true from_id:flags.1?Peer date:int 
gift:StarGift message:flags.2?TextWithEntities msg_id:flags.3?int 
saved_id:flags.11?long convert_stars:flags.4?long upgrade_stars:flags.6?long 
can_export_at:flags.7?int transfer_stars:flags.8?long = SavedStarGift;
+
+payments.savedStarGifts#95f389b1 flags:# count:int 
chat_notifications_enabled:flags.1?Bool gifts:Vector<SavedStarGift> 
next_offset:flags.0?string chats:Vector<Chat> users:Vector<User> = 
payments.SavedStarGifts;
+
+inputSavedStarGiftUser#69279795 msg_id:int = InputSavedStarGift;
+inputSavedStarGiftChat#f101aa7f peer:InputPeer saved_id:long = 
InputSavedStarGift;
+
+payments.starGiftWithdrawalUrl#84aa3a9c url:string = 
payments.StarGiftWithdrawalUrl;
+
+paidReactionPrivacyDefault#206ad49e = PaidReactionPrivacy;
+paidReactionPrivacyAnonymous#1f0c1ad9 = PaidReactionPrivacy;
+paidReactionPrivacyPeer#dc6cfcf0 peer:InputPeer = PaidReactionPrivacy;
+
 ---functions---
 
 invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
@@ -1903,6 +1950,7 @@
 invokeWithBusinessConnection#dd289f8e {X:Type} connection_id:string query:!X = 
X;
 invokeWithGooglePlayIntegrity#1df92984 {X:Type} nonce:string token:string 
query:!X = X;
 invokeWithApnsSecret#0dae54f8 {X:Type} nonce:string secret:string query:!X = X;
+invokeWithReCaptcha#adbb0f94 {X:Type} token:string query:!X = X;
 
 auth.sendCode#a677244f phone_number:string api_id:int api_hash:string 
settings:CodeSettings = auth.SentCode;
 auth.signUp#aac7b717 flags:# no_joined_notifications:flags.0?true 
phone_number:string phone_code_hash:string first_name:string last_name:string = 
auth.Authorization;
@@ -2040,6 +2088,7 @@
 account.toggleSponsoredMessages#b9d9a38d enabled:Bool = Bool;
 account.getReactionsNotifySettings#6dd654c = ReactionsNotifySettings;
 account.setReactionsNotifySettings#316ce548 settings:ReactionsNotifySettings = 
ReactionsNotifySettings;
+account.getCollectibleEmojiStatuses#2e7b4543 hash:long = account.EmojiStatuses;
 
 users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
 users.getFullUser#b60f5918 id:InputUser = users.UserFull;
@@ -2056,7 +2105,7 @@
 contacts.unblock#b550d328 flags:# my_stories_from:flags.0?true id:InputPeer = 
Bool;
 contacts.getBlocked#9a868f80 flags:# my_stories_from:flags.0?true offset:int 
limit:int = contacts.Blocked;
 contacts.search#11f812d8 q:string limit:int = contacts.Found;
-contacts.resolveUsername#f93ccba3 username:string = contacts.ResolvedPeer;
+contacts.resolveUsername#725afbbc flags:# username:string 
referer:flags.0?string = contacts.ResolvedPeer;
 contacts.getTopPeers#973478b6 flags:# correspondents:flags.0?true 
bots_pm:flags.1?true bots_inline:flags.2?true phone_calls:flags.3?true 
forward_users:flags.4?true forward_chats:flags.5?true groups:flags.10?true 
channels:flags.15?true bots_app:flags.16?true offset:int limit:int hash:long = 
contacts.TopPeers;
 contacts.resetTopPeerRating#1ae373ac category:TopPeerCategory peer:InputPeer = 
Bool;
 contacts.resetSaved#879537f1 = Bool;
@@ -2084,7 +2133,7 @@
 messages.setTyping#58943ee2 flags:# peer:InputPeer top_msg_id:flags.0?int 
action:SendMessageAction = Bool;
 messages.sendMessage#983f9745 flags:# no_webpage:flags.1?true 
silent:flags.5?true background:flags.6?true clear_draft:flags.7?true 
noforwards:flags.14?true update_stickersets_order:flags.15?true 
invert_media:flags.16?true allow_paid_floodskip:flags.19?true peer:InputPeer 
reply_to:flags.0?InputReplyTo message:string random_id:long 
reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> 
schedule_date:flags.10?int send_as:flags.13?InputPeer 
quick_reply_shortcut:flags.17?InputQuickReplyShortcut effect:flags.18?long = 
Updates;
 messages.sendMedia#7852834e flags:# silent:flags.5?true 
background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true 
update_stickersets_order:flags.15?true invert_media:flags.16?true 
allow_paid_floodskip:flags.19?true peer:InputPeer reply_to:flags.0?InputReplyTo 
media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup 
entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int 
send_as:flags.13?InputPeer 
quick_reply_shortcut:flags.17?InputQuickReplyShortcut effect:flags.18?long = 
Updates;
-messages.forwardMessages#d5039208 flags:# silent:flags.5?true 
background:flags.6?true with_my_score:flags.8?true drop_author:flags.11?true 
drop_media_captions:flags.12?true noforwards:flags.14?true 
allow_paid_floodskip:flags.19?true from_peer:InputPeer id:Vector<int> 
random_id:Vector<long> to_peer:InputPeer top_msg_id:flags.9?int 
schedule_date:flags.10?int send_as:flags.13?InputPeer 
quick_reply_shortcut:flags.17?InputQuickReplyShortcut = Updates;
+messages.forwardMessages#6d74da08 flags:# silent:flags.5?true 
background:flags.6?true with_my_score:flags.8?true drop_author:flags.11?true 
drop_media_captions:flags.12?true noforwards:flags.14?true 
allow_paid_floodskip:flags.19?true from_peer:InputPeer id:Vector<int> 
random_id:Vector<long> to_peer:InputPeer top_msg_id:flags.9?int 
schedule_date:flags.10?int send_as:flags.13?InputPeer 
quick_reply_shortcut:flags.17?InputQuickReplyShortcut 
video_timestamp:flags.20?int = Updates;
 messages.reportSpam#cf1592db peer:InputPeer = Bool;
 messages.getPeerSettings#efd9a6a2 peer:InputPeer = messages.PeerSettings;
 messages.report#fc78af9b peer:InputPeer id:Vector<int> option:bytes 
message:string = ReportResult;
@@ -2109,7 +2158,7 @@
 messages.readMessageContents#36a73f77 id:Vector<int> = 
messages.AffectedMessages;
 messages.getStickers#d5a5d3a1 emoticon:string hash:long = messages.Stickers;
 messages.getAllStickers#b8a0a1a8 hash:long = messages.AllStickers;
-messages.getWebPagePreview#8b68b0cc flags:# message:string 
entities:flags.3?Vector<MessageEntity> = MessageMedia;
+messages.getWebPagePreview#570d6f6f flags:# message:string 
entities:flags.3?Vector<MessageEntity> = messages.WebPagePreview;
 messages.exportChatInvite#a455de90 flags:# 
legacy_revoke_permanent:flags.2?true request_needed:flags.3?true peer:InputPeer 
expire_date:flags.0?int usage_limit:flags.1?int title:flags.4?string 
subscription_pricing:flags.5?StarsSubscriptionPricing = ExportedChatInvite;
 messages.checkChatInvite#3eadb1bb hash:string = ChatInvite;
 messages.importChatInvite#6c50051c hash:string = Updates;
@@ -2120,7 +2169,7 @@
 messages.getMessagesViews#5784d3e1 peer:InputPeer id:Vector<int> 
increment:Bool = messages.MessageViews;
 messages.editChatAdmin#a85bd1c2 chat_id:long user_id:InputUser is_admin:Bool = 
Bool;
 messages.migrateChat#a2875319 chat_id:long = Updates;
-messages.searchGlobal#4bc6589a flags:# broadcasts_only:flags.1?true 
folder_id:flags.0?int q:string filter:MessagesFilter min_date:int max_date:int 
offset_rate:int offset_peer:InputPeer offset_id:int limit:int = 
messages.Messages;
+messages.searchGlobal#4bc6589a flags:# broadcasts_only:flags.1?true 
groups_only:flags.2?true users_only:flags.3?true folder_id:flags.0?int q:string 
filter:MessagesFilter min_date:int max_date:int offset_rate:int 
offset_peer:InputPeer offset_id:int limit:int = messages.Messages;
 messages.reorderStickerSets#78337739 flags:# masks:flags.0?true 
emojis:flags.1?true order:Vector<long> = Bool;
 messages.getDocumentByHash#b1f2061f sha256:bytes size:long mime_type:string = 
Document;
 messages.getSavedGifs#5cf09635 hash:long = messages.SavedGifs;
@@ -2287,8 +2336,8 @@
 messages.deleteFactCheck#d1da940c peer:InputPeer msg_id:int = Updates;
 messages.getFactCheck#b9cdc5ee peer:InputPeer msg_id:Vector<int> = 
Vector<FactCheck>;
 messages.requestMainWebView#c9e01e7b flags:# compact:flags.7?true 
fullscreen:flags.8?true peer:InputPeer bot:InputUser start_param:flags.1?string 
theme_params:flags.0?DataJSON platform:string = WebViewResult;
-messages.sendPaidReaction#9dd6a67b flags:# peer:InputPeer msg_id:int count:int 
random_id:long private:flags.0?Bool = Updates;
-messages.togglePaidReactionPrivacy#849ad397 peer:InputPeer msg_id:int 
private:Bool = Bool;
+messages.sendPaidReaction#58bbcb50 flags:# peer:InputPeer msg_id:int count:int 
random_id:long private:flags.0?PaidReactionPrivacy = Updates;
+messages.togglePaidReactionPrivacy#435885b5 peer:InputPeer msg_id:int 
private:PaidReactionPrivacy = Bool;
 messages.getPaidReactionPrivacy#472455aa = Updates;
 messages.viewSponsoredMessage#673ad8f1 peer:InputPeer random_id:bytes = Bool;
 messages.clickSponsoredMessage#f093465 flags:# media:flags.0?true 
fullscreen:flags.1?true peer:InputPeer random_id:bytes = Bool;
@@ -2296,6 +2345,8 @@
 messages.getSponsoredMessages#9bd2f439 peer:InputPeer = 
messages.SponsoredMessages;
 messages.savePreparedInlineMessage#f21f7f2f flags:# 
result:InputBotInlineResult user_id:InputUser 
peer_types:flags.0?Vector<InlineQueryPeerType> = 
messages.BotPreparedInlineMessage;
 messages.getPreparedInlineMessage#857ebdb8 bot:InputUser id:string = 
messages.PreparedInlineMessage;
+messages.searchStickers#29b1c66a flags:# emojis:flags.0?true q:string 
emoticon:string lang_code:Vector<string> offset:int limit:int hash:long = 
messages.FoundStickers;
+messages.reportMessagesDelivery#5a6d7395 flags:# push:flags.0?true 
peer:InputPeer id:Vector<int> = Bool;
 
 updates.getState#edd4882a = updates.State;
 updates.getDifference#19c2f763 flags:# pts:int pts_limit:flags.1?int 
pts_total_limit:flags.0?int date:int qts:int qts_limit:flags.2?int = 
updates.Difference;
@@ -2377,7 +2428,7 @@
 channels.toggleSlowMode#edd49ef0 channel:InputChannel seconds:int = Updates;
 channels.getInactiveChannels#11e831ee = messages.InactiveChats;
 channels.convertToGigagroup#b290c69 channel:InputChannel = Updates;
-channels.getSendAs#dc770ee peer:InputPeer = channels.SendAsPeers;
+channels.getSendAs#e785a43f flags:# for_paid_reactions:flags.0?true 
peer:InputPeer = channels.SendAsPeers;
 channels.deleteParticipantHistory#367544db channel:InputChannel 
participant:InputPeer = messages.AffectedHistory;
 channels.toggleJoinToSend#e4cb9580 channel:InputChannel enabled:Bool = Updates;
 channels.toggleJoinRequest#4c2985b6 channel:InputChannel enabled:Bool = 
Updates;
@@ -2430,6 +2481,10 @@
 bots.updateUserEmojiStatus#ed9f30c5 user_id:InputUser emoji_status:EmojiStatus 
= Bool;
 bots.toggleUserEmojiStatusPermission#6de6392 bot:InputUser enabled:Bool = Bool;
 bots.checkDownloadFileParams#50077589 bot:InputUser file_name:string 
url:string = Bool;
+bots.getAdminedBots#b0711d83 = Vector<User>;
+bots.updateStarRefProgram#778b5ab3 flags:# bot:InputUser 
commission_permille:int duration_months:flags.0?int = StarRefProgram;
+bots.setCustomVerification#8b89dfbd flags:# enabled:flags.1?true 
bot:flags.0?InputUser peer:InputPeer custom_description:flags.2?string = Bool;
+bots.getBotRecommendations#a1b70815 bot:InputUser = users.Users;
 
 payments.getPaymentForm#37148dbb flags:# invoice:InputInvoice 
theme_params:flags.0?DataJSON = payments.PaymentForm;
 payments.getPaymentReceipt#2478d1cc peer:InputPeer msg_id:int = 
payments.PaymentReceipt;
@@ -2462,10 +2517,22 @@
 payments.fulfillStarsSubscription#cc5bebb3 peer:InputPeer 
subscription_id:string = Bool;
 payments.getStarsGiveawayOptions#bd1efd3e = Vector<StarsGiveawayOption>;
 payments.getStarGifts#c4563590 hash:int = payments.StarGifts;
-payments.getUserStarGifts#5e72c7e1 user_id:InputUser offset:string limit:int = 
payments.UserStarGifts;
-payments.saveStarGift#87acf08e flags:# unsave:flags.0?true user_id:InputUser 
msg_id:int = Bool;
-payments.convertStarGift#421e027 user_id:InputUser msg_id:int = Bool;
-payments.botCancelStarsSubscription#57f9ece6 flags:# restore:flags.0?true 
user_id:InputUser invoice_slug:flags.1?string charge_id:flags.2?string = Bool;
+payments.saveStarGift#2a2a697c flags:# unsave:flags.0?true 
stargift:InputSavedStarGift = Bool;
+payments.convertStarGift#74bf076b stargift:InputSavedStarGift = Bool;
+payments.botCancelStarsSubscription#6dfa0622 flags:# restore:flags.0?true 
user_id:InputUser charge_id:string = Bool;
+payments.getConnectedStarRefBots#5869a553 flags:# peer:InputPeer 
offset_date:flags.2?int offset_link:flags.2?string limit:int = 
payments.ConnectedStarRefBots;
+payments.getConnectedStarRefBot#b7d998f0 peer:InputPeer bot:InputUser = 
payments.ConnectedStarRefBots;
+payments.getSuggestedStarRefBots#d6b48f7 flags:# order_by_revenue:flags.0?true 
order_by_date:flags.1?true peer:InputPeer offset:string limit:int = 
payments.SuggestedStarRefBots;
+payments.connectStarRefBot#7ed5348a peer:InputPeer bot:InputUser = 
payments.ConnectedStarRefBots;
+payments.editConnectedStarRefBot#e4fca4a3 flags:# revoked:flags.0?true 
peer:InputPeer link:string = payments.ConnectedStarRefBots;
+payments.getStarGiftUpgradePreview#9c9abcb1 gift_id:long = 
payments.StarGiftUpgradePreview;
+payments.upgradeStarGift#aed6e4f5 flags:# keep_original_details:flags.0?true 
stargift:InputSavedStarGift = Updates;
+payments.transferStarGift#7f18176a stargift:InputSavedStarGift to_id:InputPeer 
= Updates;
+payments.getUniqueStarGift#a1974d72 slug:string = payments.UniqueStarGift;
+payments.getSavedStarGifts#23830de9 flags:# exclude_unsaved:flags.0?true 
exclude_saved:flags.1?true exclude_unlimited:flags.2?true 
exclude_limited:flags.3?true exclude_unique:flags.4?true 
sort_by_value:flags.5?true peer:InputPeer offset:string limit:int = 
payments.SavedStarGifts;
+payments.getSavedStarGift#b455a106 stargift:Vector<InputSavedStarGift> = 
payments.SavedStarGifts;
+payments.getStarGiftWithdrawalUrl#d06e93a8 stargift:InputSavedStarGift 
password:InputCheckPasswordSRP = payments.StarGiftWithdrawalUrl;
+payments.toggleChatStarGiftNotifications#60eaefa1 flags:# enabled:flags.0?true 
peer:InputPeer = Bool;
 
 stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true 
emojis:flags.5?true text_color:flags.6?true user_id:InputUser title:string 
short_name:string thumb:flags.2?InputDocument 
stickers:Vector<InputStickerSetItem> software:flags.3?string = 
messages.StickerSet;
 stickers.removeStickerFromSet#f7760f51 sticker:InputDocument = 
messages.StickerSet;
@@ -2480,7 +2547,7 @@
 stickers.replaceSticker#4696459a sticker:InputDocument 
new_sticker:InputStickerSetItem = messages.StickerSet;
 
 phone.getCallConfig#55451fa9 = DataJSON;
-phone.requestCall#42ff96ed flags:# video:flags.0?true user_id:InputUser 
random_id:int g_a_hash:bytes protocol:PhoneCallProtocol = phone.PhoneCall;
+phone.requestCall#a6c4600c flags:# video:flags.0?true user_id:InputUser 
conference_call:flags.1?InputGroupCall random_id:int g_a_hash:bytes 
protocol:PhoneCallProtocol = phone.PhoneCall;
 phone.acceptCall#3bd2b4a0 peer:InputPhoneCall g_b:bytes 
protocol:PhoneCallProtocol = phone.PhoneCall;
 phone.confirmCall#2efe1722 peer:InputPhoneCall g_a:bytes key_fingerprint:long 
protocol:PhoneCallProtocol = phone.PhoneCall;
 phone.receivedCall#17d54f61 peer:InputPhoneCall = Bool;
@@ -2489,7 +2556,7 @@
 phone.saveCallDebug#277add7e peer:InputPhoneCall debug:DataJSON = Bool;
 phone.sendSignalingData#ff7a9383 peer:InputPhoneCall data:bytes = Bool;
 phone.createGroupCall#48cdc6d8 flags:# rtmp_stream:flags.2?true peer:InputPeer 
random_id:int title:flags.0?string schedule_date:flags.1?int = Updates;
-phone.joinGroupCall#b132ff7b flags:# muted:flags.0?true 
video_stopped:flags.2?true call:InputGroupCall join_as:InputPeer 
invite_hash:flags.1?string params:DataJSON = Updates;
+phone.joinGroupCall#d61e1df3 flags:# muted:flags.0?true 
video_stopped:flags.2?true call:InputGroupCall join_as:InputPeer 
invite_hash:flags.1?string key_fingerprint:flags.3?long params:DataJSON = 
Updates;
 phone.leaveGroupCall#500377f9 call:InputGroupCall source:int = Updates;
 phone.inviteToGroupCall#7b393160 call:InputGroupCall users:Vector<InputUser> = 
Updates;
 phone.discardGroupCall#7a777135 call:InputGroupCall = Updates;
@@ -2510,6 +2577,7 @@
 phone.getGroupCallStreamChannels#1ab21940 call:InputGroupCall = 
phone.GroupCallStreamChannels;
 phone.getGroupCallStreamRtmpUrl#deb3abbf peer:InputPeer revoke:Bool = 
phone.GroupCallStreamRtmpUrl;
 phone.saveCallLog#41248786 peer:InputPhoneCall file:InputFile = Bool;
+phone.createConferenceCall#dfc909ab peer:InputPhoneCall key_fingerprint:long = 
phone.PhoneCall;
 
 langpack.getLangPack#f2f2330a lang_pack:string lang_code:string = 
LangPackDifference;
 langpack.getStrings#efea3803 lang_pack:string lang_code:string 
keys:Vector<string> = Vector<LangPackString>;
@@ -2585,4 +2653,4 @@
 
 fragment.getCollectibleInfo#be1e85ba collectible:InputCollectible = 
fragment.CollectibleInfo;
 
-// LAYER 193
+// LAYER 199

Reply via email to