Update content of files

This commit is contained in:
GitHub Action 2024-06-15 13:02:40 +00:00
parent ac80215110
commit d122fa69ae
2 changed files with 857 additions and 210 deletions

View file

@ -42,8 +42,652 @@
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/api/layers" >Layers</a></li></ul></div>
<h1 id="dev_page_title">Layers</h1>
<div id="dev_page_content"><p>temp</p>
</div>
<div id="dev_page_content"><!-- scroll_nav -->
<p>Below you will find information on schema changes. For more details on the use of layers, see <a href="/api/invoking#layers">Invoking API methods</a>.</p>
<h3><a class="anchor" href="#layer-181" id="layer-181" name="layer-181"><i class="anchor-icon"></i></a><a href="/schema?layer=181">Layer 181</a></h3>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/messages.editFactCheck">messages.editFactCheck</a> - </li>
<li>Added <a href="/method/messages.deleteFactCheck">messages.deleteFactCheck</a> - </li>
<li>Added <a href="/method/messages.getFactCheck">messages.getFactCheck</a> - </li>
<li>Added <a href="/method/payments.getStarsTopupOptions">payments.getStarsTopupOptions</a> - </li>
<li>Added <a href="/method/payments.getStarsStatus">payments.getStarsStatus</a> - </li>
<li>Added <a href="/method/payments.getStarsTransactions">payments.getStarsTransactions</a> - </li>
<li>Added <a href="/method/payments.sendStarsForm">payments.sendStarsForm</a> - </li>
<li>Added <a href="/method/payments.refundStarsCharge">payments.refundStarsCharge</a> - </li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/factCheck">factCheck</a> - </li>
<li>Added <a href="/constructor/starsTransactionPeerUnsupported">starsTransactionPeerUnsupported</a> - </li>
<li>Added <a href="/constructor/starsTransactionPeerAppStore">starsTransactionPeerAppStore</a> - </li>
<li>Added <a href="/constructor/starsTransactionPeerPlayMarket">starsTransactionPeerPlayMarket</a> - </li>
<li>Added <a href="/constructor/starsTransactionPeerPremiumBot">starsTransactionPeerPremiumBot</a> - </li>
<li>Added <a href="/constructor/starsTransactionPeerFragment">starsTransactionPeerFragment</a> - </li>
<li>Added <a href="/constructor/starsTransactionPeer">starsTransactionPeer</a> - </li>
<li>Added <a href="/constructor/inputStorePaymentStars">inputStorePaymentStars</a> - </li>
<li>Added <a href="/constructor/starsTopupOption">starsTopupOption</a> - </li>
<li>Added <a href="/constructor/inputInvoiceStars">inputInvoiceStars</a> - </li>
<li>Added <a href="/constructor/starsTransaction">starsTransaction</a> - </li>
<li>Added <a href="/constructor/payments.starsStatus">payments.starsStatus</a> - </li>
<li>Added <a href="/constructor/updateStarsBalance">updateStarsBalance</a> - </li>
<li>Added <a href="/constructor/payments.paymentFormStars">payments.paymentFormStars</a> - </li>
<li>Added <a href="/constructor/payments.paymentReceiptStars">payments.paymentReceiptStars</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>factcheck</strong> parameter in <a href="/constructor/message">message</a></li>
<li>Changed type of <strong>provider</strong> from <strong>string</strong> to <strong>flags.3?string</strong> in <a href="/constructor/inputMediaInvoice">inputMediaInvoice</a></li>
<li>Added <strong>flags</strong>, <strong>collapsed</strong> parameters in <a href="/constructor/messageEntityBlockquote">messageEntityBlockquote</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/message">message</a>#94345242 flags:<a href="/type/%23">#</a> out:flags.1?<a href="/constructor/true">true</a> mentioned:flags.4?<a href="/constructor/true">true</a> media_unread:flags.5?<a href="/constructor/true">true</a> silent:flags.13?<a href="/constructor/true">true</a> post:flags.14?<a href="/constructor/true">true</a> from_scheduled:flags.18?<a href="/constructor/true">true</a> legacy:flags.19?<a href="/constructor/true">true</a> edit_hide:flags.21?<a href="/constructor/true">true</a> pinned:flags.24?<a href="/constructor/true">true</a> noforwards:flags.26?<a href="/constructor/true">true</a> invert_media:flags.27?<a href="/constructor/true">true</a> flags2:<a href="/type/%23">#</a> offline:flags2.1?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> from_id:flags.8?<a href="/type/Peer">Peer</a> from_boosts_applied:flags.29?<a href="/type/int">int</a> peer_id:<a href="/type/Peer">Peer</a> saved_peer_id:flags.28?<a href="/type/Peer">Peer</a> fwd_from:flags.2?<a href="/type/MessageFwdHeader">MessageFwdHeader</a> via_bot_id:flags.11?<a href="/type/long">long</a> via_business_bot_id:flags2.0?<a href="/type/long">long</a> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> date:<a href="/type/int">int</a> message:<a href="/type/string">string</a> media:flags.9?<a href="/type/MessageMedia">MessageMedia</a> reply_markup:flags.6?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.7?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; views:flags.10?<a href="/type/int">int</a> forwards:flags.10?<a href="/type/int">int</a> replies:flags.23?<a href="/type/MessageReplies">MessageReplies</a> edit_date:flags.15?<a href="/type/int">int</a> post_author:flags.16?<a href="/type/string">string</a> grouped_id:flags.17?<a href="/type/long">long</a> reactions:flags.20?<a href="/type/MessageReactions">MessageReactions</a> restriction_reason:flags.22?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; ttl_period:flags.25?<a href="/type/int">int</a> quick_reply_shortcut_id:flags.30?<a href="/type/int">int</a> effect:flags2.2?<a href="/type/long">long</a> factcheck:flags2.3?<a href="/type/FactCheck">FactCheck</a> = <a href="/type/Message">Message</a>;<br>
<a href="/constructor/inputMediaInvoice">inputMediaInvoice</a>#405fef0d flags:<a href="/type/%23">#</a> title:<a href="/type/string">string</a> description:<a href="/type/string">string</a> photo:flags.0?<a href="/type/InputWebDocument">InputWebDocument</a> invoice:<a href="/type/Invoice">Invoice</a> payload:<a href="/type/bytes">bytes</a> provider:flags.3?<a href="/type/string">string</a> provider_data:<a href="/type/DataJSON">DataJSON</a> start_param:flags.1?<a href="/type/string">string</a> extended_media:flags.2?<a href="/type/InputMedia">InputMedia</a> = <a href="/type/InputMedia">InputMedia</a>;<br>
<a href="/constructor/messageEntityBlockquote">messageEntityBlockquote</a>#f1ccaaac flags:<a href="/type/%23">#</a> collapsed:flags.0?<a href="/constructor/true">true</a> offset:<a href="/type/int">int</a> length:<a href="/type/int">int</a> = <a href="/type/MessageEntity">MessageEntity</a>;<br>
<a href="/constructor/factCheck">factCheck</a>#b89bfccf flags:<a href="/type/%23">#</a> need_check:flags.0?<a href="/constructor/true">true</a> country:flags.1?<a href="/type/string">string</a> text:flags.1?<a href="/type/TextWithEntities">TextWithEntities</a> hash:<a href="/type/long">long</a> = <a href="/type/FactCheck">FactCheck</a>;<br>
<a href="/constructor/starsTransactionPeerUnsupported">starsTransactionPeerUnsupported</a>#95f2bfe4 = <a href="/type/StarsTransactionPeer">StarsTransactionPeer</a>;
<a href="/constructor/starsTransactionPeerAppStore">starsTransactionPeerAppStore</a>#b457b375 = <a href="/type/StarsTransactionPeer">StarsTransactionPeer</a>;
<a href="/constructor/starsTransactionPeerPlayMarket">starsTransactionPeerPlayMarket</a>#7b560a0b = <a href="/type/StarsTransactionPeer">StarsTransactionPeer</a>;
<a href="/constructor/starsTransactionPeerPremiumBot">starsTransactionPeerPremiumBot</a>#250dbaf8 = <a href="/type/StarsTransactionPeer">StarsTransactionPeer</a>;
<a href="/constructor/starsTransactionPeerFragment">starsTransactionPeerFragment</a>#e92fd902 = <a href="/type/StarsTransactionPeer">StarsTransactionPeer</a>;
<a href="/constructor/starsTransactionPeer">starsTransactionPeer</a>#d80da15d peer:<a href="/type/Peer">Peer</a> = <a href="/type/StarsTransactionPeer">StarsTransactionPeer</a>;<br>
<a href="/constructor/inputStorePaymentStars">inputStorePaymentStars</a>#4f0ee8df flags:<a href="/type/%23">#</a> stars:<a href="/type/long">long</a> currency:<a href="/type/string">string</a> amount:<a href="/type/long">long</a> = <a href="/type/InputStorePaymentPurpose">InputStorePaymentPurpose</a>;<br>
<a href="/constructor/starsTopupOption">starsTopupOption</a>#0bd915c0 flags:<a href="/type/%23">#</a> extended:flags.1?<a href="/constructor/true">true</a> stars:<a href="/type/long">long</a> store_product:flags.0?<a href="/type/string">string</a> currency:<a href="/type/string">string</a> amount:<a href="/type/long">long</a> = <a href="/type/StarsTopupOption">StarsTopupOption</a>;<br>
<a href="/constructor/inputInvoiceStars">inputInvoiceStars</a>#1da33ad8 option:<a href="/type/StarsTopupOption">StarsTopupOption</a> = <a href="/type/InputInvoice">InputInvoice</a>;<br>
<a href="/constructor/starsTransaction">starsTransaction</a>#cc7079b2 flags:<a href="/type/%23">#</a> refund:flags.3?<a href="/constructor/true">true</a> id:<a href="/type/string">string</a> stars:<a href="/type/long">long</a> date:<a href="/type/int">int</a> peer:<a href="/type/StarsTransactionPeer">StarsTransactionPeer</a> title:flags.0?<a href="/type/string">string</a> description:flags.1?<a href="/type/string">string</a> photo:flags.2?<a href="/type/WebDocument">WebDocument</a> = <a href="/type/StarsTransaction">StarsTransaction</a>;<br>
<a href="/constructor/payments.starsStatus">payments.starsStatus</a>#8cf4ee60 flags:<a href="/type/%23">#</a> balance:<a href="/type/long">long</a> history:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/StarsTransaction">StarsTransaction</a>&gt; next_offset:flags.0?<a href="/type/string">string</a> chats:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/payments.StarsStatus">payments.StarsStatus</a>;<br>
<a href="/constructor/updateStarsBalance">updateStarsBalance</a>#0fb85198 balance:<a href="/type/long">long</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/payments.paymentFormStars">payments.paymentFormStars</a>#7bf6b15c flags:<a href="/type/%23">#</a> form_id:<a href="/type/long">long</a> bot_id:<a href="/type/long">long</a> title:<a href="/type/string">string</a> description:<a href="/type/string">string</a> photo:flags.5?<a href="/type/WebDocument">WebDocument</a> invoice:<a href="/type/Invoice">Invoice</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/payments.PaymentForm">payments.PaymentForm</a>;
<a href="/constructor/payments.paymentReceiptStars">payments.paymentReceiptStars</a>#dabbf83a flags:<a href="/type/%23">#</a> date:<a href="/type/int">int</a> bot_id:<a href="/type/long">long</a> title:<a href="/type/string">string</a> description:<a href="/type/string">string</a> photo:flags.2?<a href="/type/WebDocument">WebDocument</a> invoice:<a href="/type/Invoice">Invoice</a> currency:<a href="/type/string">string</a> total_amount:<a href="/type/long">long</a> transaction_id:<a href="/type/string">string</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/payments.PaymentReceipt">payments.PaymentReceipt</a>;<br>
---functions---<br>
<a href="/method/messages.editFactCheck">messages.editFactCheck</a>#0589ee75 peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> text:<a href="/type/TextWithEntities">TextWithEntities</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.deleteFactCheck">messages.deleteFactCheck</a>#d1da940c peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.getFactCheck">messages.getFactCheck</a>#b9cdc5ee peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/FactCheck">FactCheck</a>&gt;;<br>
<a href="/method/payments.getStarsTopupOptions">payments.getStarsTopupOptions</a>#c00ec7d3 = <a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/StarsTopupOption">StarsTopupOption</a>&gt;;
<a href="/method/payments.getStarsStatus">payments.getStarsStatus</a>#104fcfa7 peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/payments.StarsStatus">payments.StarsStatus</a>;
<a href="/method/payments.getStarsTransactions">payments.getStarsTransactions</a>#673ac2f9 flags:<a href="/type/%23">#</a> inbound:flags.0?<a href="/constructor/true">true</a> outbound:flags.1?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> offset:<a href="/type/string">string</a> = <a href="/type/payments.StarsStatus">payments.StarsStatus</a>;
<a href="/method/payments.sendStarsForm">payments.sendStarsForm</a>#02bb731d flags:<a href="/type/%23">#</a> form_id:<a href="/type/long">long</a> invoice:<a href="/type/InputInvoice">InputInvoice</a> = <a href="/type/payments.PaymentResult">payments.PaymentResult</a>;
<a href="/method/payments.refundStarsCharge">payments.refundStarsCharge</a>#25ae8f4a user_id:<a href="/type/InputUser">InputUser</a> charge_id:<a href="/type/string">string</a> = <a href="/type/Updates">Updates</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-180" id="layer-180" name="layer-180"><i class="anchor-icon"></i></a><a href="/schema?layer=180">Layer 180</a></h3>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/invokeWithGooglePlayIntegrity">invokeWithGooglePlayIntegrity</a> - </li>
<li>Added <a href="/method/invokeWithApnsSecret">invokeWithApnsSecret</a> - </li>
<li>Added <a href="/method/messages.getAvailableEffects">messages.getAvailableEffects</a> - </li>
<li>Added <a href="/method/channels.searchPosts">channels.searchPosts</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Added <strong>effect</strong> parameter in <a href="/method/messages.sendMessage">messages.sendMessage</a></li>
<li>Added <strong>effect</strong> parameter in <a href="/method/messages.sendMedia">messages.sendMedia</a></li>
<li>Added <strong>flags</strong>, <strong>reason</strong> parameters in <a href="/method/auth.resendCode">auth.resendCode</a></li>
<li>Added <strong>effect</strong> parameter in <a href="/method/messages.sendMultiMedia">messages.sendMultiMedia</a></li>
<li>Added <strong>play_integrity_token</strong> parameter in <a href="/method/auth.requestFirebaseSms">auth.requestFirebaseSms</a></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/updateBroadcastRevenueTransactions">updateBroadcastRevenueTransactions</a> - </li>
<li>Added <a href="/constructor/availableEffect">availableEffect</a> - </li>
<li>Added <a href="/constructor/messages.availableEffectsNotModified">messages.availableEffectsNotModified</a> - </li>
<li>Added <a href="/constructor/messages.availableEffects">messages.availableEffects</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>effect</strong> parameter in <a href="/constructor/message">message</a></li>
<li>Added <strong>play_integrity_nonce</strong> parameter in <a href="/constructor/auth.sentCodeTypeFirebaseSms">auth.sentCodeTypeFirebaseSms</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/message">message</a>#bde09c2e flags:<a href="/type/%23">#</a> out:flags.1?<a href="/constructor/true">true</a> mentioned:flags.4?<a href="/constructor/true">true</a> media_unread:flags.5?<a href="/constructor/true">true</a> silent:flags.13?<a href="/constructor/true">true</a> post:flags.14?<a href="/constructor/true">true</a> from_scheduled:flags.18?<a href="/constructor/true">true</a> legacy:flags.19?<a href="/constructor/true">true</a> edit_hide:flags.21?<a href="/constructor/true">true</a> pinned:flags.24?<a href="/constructor/true">true</a> noforwards:flags.26?<a href="/constructor/true">true</a> invert_media:flags.27?<a href="/constructor/true">true</a> flags2:<a href="/type/%23">#</a> offline:flags2.1?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> from_id:flags.8?<a href="/type/Peer">Peer</a> from_boosts_applied:flags.29?<a href="/type/int">int</a> peer_id:<a href="/type/Peer">Peer</a> saved_peer_id:flags.28?<a href="/type/Peer">Peer</a> fwd_from:flags.2?<a href="/type/MessageFwdHeader">MessageFwdHeader</a> via_bot_id:flags.11?<a href="/type/long">long</a> via_business_bot_id:flags2.0?<a href="/type/long">long</a> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> date:<a href="/type/int">int</a> message:<a href="/type/string">string</a> media:flags.9?<a href="/type/MessageMedia">MessageMedia</a> reply_markup:flags.6?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.7?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; views:flags.10?<a href="/type/int">int</a> forwards:flags.10?<a href="/type/int">int</a> replies:flags.23?<a href="/type/MessageReplies">MessageReplies</a> edit_date:flags.15?<a href="/type/int">int</a> post_author:flags.16?<a href="/type/string">string</a> grouped_id:flags.17?<a href="/type/long">long</a> reactions:flags.20?<a href="/type/MessageReactions">MessageReactions</a> restriction_reason:flags.22?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; ttl_period:flags.25?<a href="/type/int">int</a> quick_reply_shortcut_id:flags.30?<a href="/type/int">int</a> effect:flags2.2?<a href="/type/long">long</a> = <a href="/type/Message">Message</a>;<br>
<a href="/constructor/auth.sentCodeTypeFirebaseSms">auth.sentCodeTypeFirebaseSms</a>#13c90f17 flags:<a href="/type/%23">#</a> nonce:flags.0?<a href="/type/bytes">bytes</a> play_integrity_nonce:flags.2?<a href="/type/bytes">bytes</a> receipt:flags.1?<a href="/type/string">string</a> push_timeout:flags.1?<a href="/type/int">int</a> length:<a href="/type/int">int</a> = <a href="/type/auth.SentCodeType">auth.SentCodeType</a>;<br>
<a href="/constructor/updateBroadcastRevenueTransactions">updateBroadcastRevenueTransactions</a>#dfd961f5 peer:<a href="/type/Peer">Peer</a> balances:<a href="/type/BroadcastRevenueBalances">BroadcastRevenueBalances</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/availableEffect">availableEffect</a>#93c3e27e flags:<a href="/type/%23">#</a> premium_required:flags.2?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> emoticon:<a href="/type/string">string</a> static_icon_id:flags.0?<a href="/type/long">long</a> effect_sticker_id:<a href="/type/long">long</a> effect_animation_id:flags.1?<a href="/type/long">long</a> = <a href="/type/AvailableEffect">AvailableEffect</a>;<br>
<a href="/constructor/messages.availableEffectsNotModified">messages.availableEffectsNotModified</a>#d1ed9a5b = <a href="/type/messages.AvailableEffects">messages.AvailableEffects</a>;
<a href="/constructor/messages.availableEffects">messages.availableEffects</a>#bddb616e hash:<a href="/type/int">int</a> effects:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/AvailableEffect">AvailableEffect</a>&gt; documents:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Document">Document</a>&gt; = <a href="/type/messages.AvailableEffects">messages.AvailableEffects</a>;<br>
---functions---<br>
<a href="/method/messages.sendMessage">messages.sendMessage</a>#983f9745 flags:<a href="/type/%23">#</a> no_webpage:flags.1?<a href="/constructor/true">true</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> update_stickersets_order:flags.15?<a href="/constructor/true">true</a> invert_media:flags.16?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to:flags.0?<a href="/type/InputReplyTo">InputReplyTo</a> message:<a href="/type/string">string</a> random_id:<a href="/type/long">long</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> quick_reply_shortcut:flags.17?<a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a> effect:flags.18?<a href="/type/long">long</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.sendMedia">messages.sendMedia</a>#7852834e flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> update_stickersets_order:flags.15?<a href="/constructor/true">true</a> invert_media:flags.16?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to:flags.0?<a href="/type/InputReplyTo">InputReplyTo</a> media:<a href="/type/InputMedia">InputMedia</a> message:<a href="/type/string">string</a> random_id:<a href="/type/long">long</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> quick_reply_shortcut:flags.17?<a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a> effect:flags.18?<a href="/type/long">long</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/auth.resendCode">auth.resendCode</a>#cae47523 flags:<a href="/type/%23">#</a> phone_number:<a href="/type/string">string</a> phone_code_hash:<a href="/type/string">string</a> reason:flags.0?<a href="/type/string">string</a> = <a href="/type/auth.SentCode">auth.SentCode</a>;<br>
<a href="/method/messages.sendMultiMedia">messages.sendMultiMedia</a>#37b74355 flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> update_stickersets_order:flags.15?<a href="/constructor/true">true</a> invert_media:flags.16?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to:flags.0?<a href="/type/InputReplyTo">InputReplyTo</a> multi_media:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputSingleMedia">InputSingleMedia</a>&gt; schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> quick_reply_shortcut:flags.17?<a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a> effect:flags.18?<a href="/type/long">long</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/auth.requestFirebaseSms">auth.requestFirebaseSms</a>#8e39261e flags:<a href="/type/%23">#</a> phone_number:<a href="/type/string">string</a> phone_code_hash:<a href="/type/string">string</a> safety_net_token:flags.0?<a href="/type/string">string</a> play_integrity_token:flags.2?<a href="/type/string">string</a> ios_push_secret:flags.1?<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/invokeWithGooglePlayIntegrity">invokeWithGooglePlayIntegrity</a>#1df92984 {X:Type} nonce:<a href="/type/string">string</a> token:<a href="/type/string">string</a> query:!X = X;
<a href="/method/invokeWithApnsSecret">invokeWithApnsSecret</a>#0dae54f8 {X:Type} nonce:<a href="/type/string">string</a> secret:<a href="/type/string">string</a> query:!X = X;<br>
<a href="/method/messages.getAvailableEffects">messages.getAvailableEffects</a>#dea20a39 hash:<a href="/type/int">int</a> = <a href="/type/messages.AvailableEffects">messages.AvailableEffects</a>;<br>
<a href="/method/channels.searchPosts">channels.searchPosts</a>#d19f987b hashtag:<a href="/type/string">string</a> offset_rate:<a href="/type/int">int</a> offset_peer:<a href="/type/InputPeer">InputPeer</a> offset_id:<a href="/type/int">int</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.Messages">messages.Messages</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-179" id="layer-179" name="layer-179"><i class="anchor-icon"></i></a><a href="/schema?layer=179">Layer 179</a></h3>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/auth.reportMissingCode">auth.reportMissingCode</a> - </li>
<li>Added <a href="/method/messages.getEmojiStickerGroups">messages.getEmojiStickerGroups</a> - </li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/auth.sentCodeTypeSmsWord">auth.sentCodeTypeSmsWord</a> - </li>
<li>Added <a href="/constructor/auth.sentCodeTypeSmsPhrase">auth.sentCodeTypeSmsPhrase</a> - </li>
<li>Added <a href="/constructor/emojiGroupGreeting">emojiGroupGreeting</a> - </li>
<li>Added <a href="/constructor/emojiGroupPremium">emojiGroupPremium</a> - </li>
<li>Added <a href="/constructor/broadcastRevenueBalances">broadcastRevenueBalances</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Changed type of <strong>text</strong> from <strong>string</strong> to <strong>TextWithEntities</strong> in <a href="/constructor/pollAnswer">pollAnswer</a></li>
<li>Changed type of <strong>question</strong> from <strong>string</strong> to <strong>TextWithEntities</strong> in <a href="/constructor/poll">poll</a></li>
<li>Added <strong>balances</strong> parameter, removed <strong>current_balance</strong>, <strong>available_balance</strong>, <strong>overall_revenue</strong> parameters in <a href="/constructor/stats.broadcastRevenueStats">stats.broadcastRevenueStats</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/pollAnswer">pollAnswer</a>#ff16e2ca text:<a href="/type/TextWithEntities">TextWithEntities</a> option:<a href="/type/bytes">bytes</a> = <a href="/type/PollAnswer">PollAnswer</a>;
<a href="/constructor/poll">poll</a>#58747131 id:<a href="/type/long">long</a> flags:<a href="/type/%23">#</a> closed:flags.0?<a href="/constructor/true">true</a> public_voters:flags.1?<a href="/constructor/true">true</a> multiple_choice:flags.2?<a href="/constructor/true">true</a> quiz:flags.3?<a href="/constructor/true">true</a> question:<a href="/type/TextWithEntities">TextWithEntities</a> answers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PollAnswer">PollAnswer</a>&gt; close_period:flags.4?<a href="/type/int">int</a> close_date:flags.5?<a href="/type/int">int</a> = <a href="/type/Poll">Poll</a>;<br>
<a href="/constructor/stats.broadcastRevenueStats">stats.broadcastRevenueStats</a>#5407e297 top_hours_graph:<a href="/type/StatsGraph">StatsGraph</a> revenue_graph:<a href="/type/StatsGraph">StatsGraph</a> balances:<a href="/type/BroadcastRevenueBalances">BroadcastRevenueBalances</a> usd_rate:<a href="/type/double">double</a> = <a href="/type/stats.BroadcastRevenueStats">stats.BroadcastRevenueStats</a>;<br>
<a href="/constructor/auth.sentCodeTypeSmsWord">auth.sentCodeTypeSmsWord</a>#a416ac81 flags:<a href="/type/%23">#</a> beginning:flags.0?<a href="/type/string">string</a> = <a href="/type/auth.SentCodeType">auth.SentCodeType</a>;
<a href="/constructor/auth.sentCodeTypeSmsPhrase">auth.sentCodeTypeSmsPhrase</a>#b37794af flags:<a href="/type/%23">#</a> beginning:flags.0?<a href="/type/string">string</a> = <a href="/type/auth.SentCodeType">auth.SentCodeType</a>;<br>
<a href="/constructor/emojiGroupGreeting">emojiGroupGreeting</a>#80d26cc7 title:<a href="/type/string">string</a> icon_emoji_id:<a href="/type/long">long</a> emoticons:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; = <a href="/type/EmojiGroup">EmojiGroup</a>;
<a href="/constructor/emojiGroupPremium">emojiGroupPremium</a>#093bcf34 title:<a href="/type/string">string</a> icon_emoji_id:<a href="/type/long">long</a> = <a href="/type/EmojiGroup">EmojiGroup</a>;<br>
<a href="/constructor/broadcastRevenueBalances">broadcastRevenueBalances</a>#8438f1c6 current_balance:<a href="/type/long">long</a> available_balance:<a href="/type/long">long</a> overall_revenue:<a href="/type/long">long</a> = <a href="/type/BroadcastRevenueBalances">BroadcastRevenueBalances</a>;<br>
---functions---<br>
<a href="/method/auth.reportMissingCode">auth.reportMissingCode</a>#cb9deff6 phone_number:<a href="/type/string">string</a> phone_code_hash:<a href="/type/string">string</a> mnc:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/messages.getEmojiStickerGroups">messages.getEmojiStickerGroups</a>#1dd840f5 hash:<a href="/type/int">int</a> = <a href="/type/messages.EmojiGroups">messages.EmojiGroups</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-178" id="layer-178" name="layer-178"><i class="anchor-icon"></i></a><a href="/schema?layer=178">Layer 178</a></h3>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/account.toggleSponsoredMessages">account.toggleSponsoredMessages</a> - </li>
<li>Added <a href="/method/stories.togglePinnedToTop">stories.togglePinnedToTop</a> - </li>
<li>Added <a href="/method/account.getReactionsNotifySettings">account.getReactionsNotifySettings</a> - </li>
<li>Added <a href="/method/account.setReactionsNotifySettings">account.setReactionsNotifySettings</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Added <strong>flags</strong>, <strong>reactions_limit</strong> parameters in <a href="/method/messages.setChatAvailableReactions">messages.setChatAvailableReactions</a></li>
<li>Added <strong>flags</strong> parameter, changed type of <strong>channel</strong> from <strong>InputChannel</strong> to <strong>flags.0?InputChannel</strong> in <a href="/method/channels.getChannelRecommendations">channels.getChannelRecommendations</a></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/webPageAttributeStickerSet">webPageAttributeStickerSet</a> - </li>
<li>Added <a href="/constructor/reactionNotificationsFromContacts">reactionNotificationsFromContacts</a> - </li>
<li>Added <a href="/constructor/reactionNotificationsFromAll">reactionNotificationsFromAll</a> - </li>
<li>Added <a href="/constructor/reactionsNotifySettings">reactionsNotifySettings</a> - </li>
<li>Added <a href="/constructor/updateNewStoryReaction">updateNewStoryReaction</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>reactions_limit</strong> parameter in <a href="/constructor/chatFull">chatFull</a></li>
<li>Added <strong>sponsored_enabled</strong> parameter in <a href="/constructor/userFull">userFull</a></li>
<li>Added <strong>reactions_limit</strong> parameter in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>unknown_number</strong> parameter in <a href="/constructor/codeSettings">codeSettings</a></li>
<li>Added <strong>url</strong>, <strong>title</strong>, <strong>photo</strong>, <strong>color</strong> parameters, removed <strong>show_peer_photo</strong>, <strong>from_id</strong>, <strong>chat_invite</strong>, <strong>chat_invite_hash</strong>, <strong>channel_post</strong>, <strong>start_param</strong>, <strong>webpage</strong>, <strong>app</strong> parameters, changed type of <strong>button_text</strong> from <strong>flags.11?string</strong> to <strong>string</strong> in <a href="/constructor/sponsoredMessage">sponsoredMessage</a></li>
<li>Added <strong>flags</strong>, <strong>pinned_to_top</strong> parameters in <a href="/constructor/stories.stories">stories.stories</a></li>
</ul>
<h5><a class="anchor" href="#deleted-constructors" id="deleted-constructors" name="deleted-constructors"><i class="anchor-icon"></i></a>Deleted Constructors</h5>
<ul>
<li>Removed sponsoredWebPage</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/chatFull">chatFull</a>#2633421b flags:<a href="/type/%23">#</a> can_set_username:flags.7?<a href="/constructor/true">true</a> has_scheduled:flags.8?<a href="/constructor/true">true</a> translations_disabled:flags.19?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> participants:<a href="/type/ChatParticipants">ChatParticipants</a> chat_photo:flags.2?<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> exported_invite:flags.13?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> bot_info:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotInfo">BotInfo</a>&gt; pinned_msg_id:flags.6?<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> call:flags.12?<a href="/type/InputGroupCall">InputGroupCall</a> ttl_period:flags.14?<a href="/type/int">int</a> groupcall_default_join_as:flags.15?<a href="/type/Peer">Peer</a> theme_emoticon:flags.16?<a href="/type/string">string</a> requests_pending:flags.17?<a href="/type/int">int</a> recent_requesters:flags.17?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; available_reactions:flags.18?<a href="/type/ChatReactions">ChatReactions</a> reactions_limit:flags.20?<a href="/type/int">int</a> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/userFull">userFull</a>#cc997720 flags:<a href="/type/%23">#</a> blocked:flags.0?<a href="/constructor/true">true</a> phone_calls_available:flags.4?<a href="/constructor/true">true</a> phone_calls_private:flags.5?<a href="/constructor/true">true</a> can_pin_message:flags.7?<a href="/constructor/true">true</a> has_scheduled:flags.12?<a href="/constructor/true">true</a> video_calls_available:flags.13?<a href="/constructor/true">true</a> voice_messages_forbidden:flags.20?<a href="/constructor/true">true</a> translations_disabled:flags.23?<a href="/constructor/true">true</a> stories_pinned_available:flags.26?<a href="/constructor/true">true</a> blocked_my_stories_from:flags.27?<a href="/constructor/true">true</a> wallpaper_overridden:flags.28?<a href="/constructor/true">true</a> contact_require_premium:flags.29?<a href="/constructor/true">true</a> read_dates_private:flags.30?<a href="/constructor/true">true</a> flags2:<a href="/type/%23">#</a> sponsored_enabled:flags2.7?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:flags.1?<a href="/type/string">string</a> settings:<a href="/type/PeerSettings">PeerSettings</a> personal_photo:flags.21?<a href="/type/Photo">Photo</a> profile_photo:flags.2?<a href="/type/Photo">Photo</a> fallback_photo:flags.22?<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> bot_info:flags.3?<a href="/type/BotInfo">BotInfo</a> pinned_msg_id:flags.6?<a href="/type/int">int</a> common_chats_count:<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> ttl_period:flags.14?<a href="/type/int">int</a> theme_emoticon:flags.15?<a href="/type/string">string</a> private_forward_name:flags.16?<a href="/type/string">string</a> bot_group_admin_rights:flags.17?<a href="/type/ChatAdminRights">ChatAdminRights</a> bot_broadcast_admin_rights:flags.18?<a href="/type/ChatAdminRights">ChatAdminRights</a> premium_gifts:flags.19?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PremiumGiftOption">PremiumGiftOption</a>&gt; wallpaper:flags.24?<a href="/type/WallPaper">WallPaper</a> stories:flags.25?<a href="/type/PeerStories">PeerStories</a> business_work_hours:flags2.0?<a href="/type/BusinessWorkHours">BusinessWorkHours</a> business_location:flags2.1?<a href="/type/BusinessLocation">BusinessLocation</a> business_greeting_message:flags2.2?<a href="/type/BusinessGreetingMessage">BusinessGreetingMessage</a> business_away_message:flags2.3?<a href="/type/BusinessAwayMessage">BusinessAwayMessage</a> business_intro:flags2.4?<a href="/type/BusinessIntro">BusinessIntro</a> birthday:flags2.5?<a href="/type/Birthday">Birthday</a> personal_channel_id:flags2.6?<a href="/type/long">long</a> personal_channel_message:flags2.6?<a href="/type/int">int</a> = <a href="/type/UserFull">UserFull</a>;<br>
<a href="/constructor/channelFull">channelFull</a>#bbab348d flags:<a href="/type/%23">#</a> can_view_participants:flags.3?<a href="/constructor/true">true</a> can_set_username:flags.6?<a href="/constructor/true">true</a> can_set_stickers:flags.7?<a href="/constructor/true">true</a> hidden_prehistory:flags.10?<a href="/constructor/true">true</a> can_set_location:flags.16?<a href="/constructor/true">true</a> has_scheduled:flags.19?<a href="/constructor/true">true</a> can_view_stats:flags.20?<a href="/constructor/true">true</a> blocked:flags.22?<a href="/constructor/true">true</a> flags2:<a href="/type/%23">#</a> can_delete_channel:flags2.0?<a href="/constructor/true">true</a> antispam:flags2.1?<a href="/constructor/true">true</a> participants_hidden:flags2.2?<a href="/constructor/true">true</a> translations_disabled:flags2.3?<a href="/constructor/true">true</a> stories_pinned_available:flags2.5?<a href="/constructor/true">true</a> view_forum_as_messages:flags2.6?<a href="/constructor/true">true</a> restricted_sponsored:flags2.11?<a href="/constructor/true">true</a> can_view_revenue:flags2.12?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> participants_count:flags.0?<a href="/type/int">int</a> admins_count:flags.1?<a href="/type/int">int</a> kicked_count:flags.2?<a href="/type/int">int</a> banned_count:flags.2?<a href="/type/int">int</a> online_count:flags.13?<a href="/type/int">int</a> read_inbox_max_id:<a href="/type/int">int</a> read_outbox_max_id:<a href="/type/int">int</a> unread_count:<a href="/type/int">int</a> chat_photo:<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> exported_invite:flags.23?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> bot_info:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotInfo">BotInfo</a>&gt; migrated_from_chat_id:flags.4?<a href="/type/long">long</a> migrated_from_max_id:flags.4?<a href="/type/int">int</a> pinned_msg_id:flags.5?<a href="/type/int">int</a> stickerset:flags.8?<a href="/type/StickerSet">StickerSet</a> available_min_id:flags.9?<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> linked_chat_id:flags.14?<a href="/type/long">long</a> location:flags.15?<a href="/type/ChannelLocation">ChannelLocation</a> slowmode_seconds:flags.17?<a href="/type/int">int</a> slowmode_next_send_date:flags.18?<a href="/type/int">int</a> stats_dc:flags.12?<a href="/type/int">int</a> pts:<a href="/type/int">int</a> call:flags.21?<a href="/type/InputGroupCall">InputGroupCall</a> ttl_period:flags.24?<a href="/type/int">int</a> pending_suggestions:flags.25?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; groupcall_default_join_as:flags.26?<a href="/type/Peer">Peer</a> theme_emoticon:flags.27?<a href="/type/string">string</a> requests_pending:flags.28?<a href="/type/int">int</a> recent_requesters:flags.28?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; default_send_as:flags.29?<a href="/type/Peer">Peer</a> available_reactions:flags.30?<a href="/type/ChatReactions">ChatReactions</a> reactions_limit:flags2.13?<a href="/type/int">int</a> stories:flags2.4?<a href="/type/PeerStories">PeerStories</a> wallpaper:flags2.7?<a href="/type/WallPaper">WallPaper</a> boosts_applied:flags2.8?<a href="/type/int">int</a> boosts_unrestrict:flags2.9?<a href="/type/int">int</a> emojiset:flags2.10?<a href="/type/StickerSet">StickerSet</a> = <a href="/type/ChatFull">ChatFull</a>;
<a href="/constructor/codeSettings">codeSettings</a>#ad253d78 flags:<a href="/type/%23">#</a> allow_flashcall:flags.0?<a href="/constructor/true">true</a> current_number:flags.1?<a href="/constructor/true">true</a> allow_app_hash:flags.4?<a href="/constructor/true">true</a> allow_missed_call:flags.5?<a href="/constructor/true">true</a> allow_firebase:flags.7?<a href="/constructor/true">true</a> unknown_number:flags.9?<a href="/constructor/true">true</a> logout_tokens:flags.6?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/bytes">bytes</a>&gt; token:flags.8?<a href="/type/string">string</a> app_sandbox:flags.8?<a href="/type/Bool">Bool</a> = <a href="/type/CodeSettings">CodeSettings</a>;<br>
<a href="/constructor/sponsoredMessage">sponsoredMessage</a>#bdedf566 flags:<a href="/type/%23">#</a> recommended:flags.5?<a href="/constructor/true">true</a> can_report:flags.12?<a href="/constructor/true">true</a> random_id:<a href="/type/bytes">bytes</a> url:<a href="/type/string">string</a> title:<a href="/type/string">string</a> message:<a href="/type/string">string</a> entities:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; photo:flags.6?<a href="/type/Photo">Photo</a> color:flags.13?<a href="/type/PeerColor">PeerColor</a> button_text:<a href="/type/string">string</a> sponsor_info:flags.7?<a href="/type/string">string</a> additional_info:flags.8?<a href="/type/string">string</a> = <a href="/type/SponsoredMessage">SponsoredMessage</a>;
<a href="/constructor/stories.stories">stories.stories</a>#63c3dd0a flags:<a href="/type/%23">#</a> count:<a href="/type/int">int</a> stories:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/StoryItem">StoryItem</a>&gt; pinned_to_top:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; chats:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/stories.Stories">stories.Stories</a>;<br>
<a href="/constructor/webPageAttributeStickerSet">webPageAttributeStickerSet</a>#50cc03d3 flags:<a href="/type/%23">#</a> emojis:flags.0?<a href="/constructor/true">true</a> text_color:flags.1?<a href="/constructor/true">true</a> stickers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Document">Document</a>&gt; = <a href="/type/WebPageAttribute">WebPageAttribute</a>;<br>
<a href="/constructor/reactionNotificationsFromContacts">reactionNotificationsFromContacts</a>#bac3a61a = <a href="/type/ReactionNotificationsFrom">ReactionNotificationsFrom</a>;
<a href="/constructor/reactionNotificationsFromAll">reactionNotificationsFromAll</a>#4b9e22a0 = <a href="/type/ReactionNotificationsFrom">ReactionNotificationsFrom</a>;
<a href="/constructor/reactionsNotifySettings">reactionsNotifySettings</a>#56e34970 flags:<a href="/type/%23">#</a> messages_notify_from:flags.0?<a href="/type/ReactionNotificationsFrom">ReactionNotificationsFrom</a> stories_notify_from:flags.1?<a href="/type/ReactionNotificationsFrom">ReactionNotificationsFrom</a> sound:<a href="/type/NotificationSound">NotificationSound</a> show_previews:<a href="/type/Bool">Bool</a> = <a href="/type/ReactionsNotifySettings">ReactionsNotifySettings</a>;<br>
<a href="/constructor/updateNewStoryReaction">updateNewStoryReaction</a>#1824e40b story_id:<a href="/type/int">int</a> peer:<a href="/type/Peer">Peer</a> reaction:<a href="/type/Reaction">Reaction</a> = <a href="/type/Update">Update</a>;<br>
---functions---<br>
<a href="/method/messages.setChatAvailableReactions">messages.setChatAvailableReactions</a>#5a150bd4 flags:<a href="/type/%23">#</a> peer:<a href="/type/InputPeer">InputPeer</a> available_reactions:<a href="/type/ChatReactions">ChatReactions</a> reactions_limit:flags.0?<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/channels.getChannelRecommendations">channels.getChannelRecommendations</a>#25a71742 flags:<a href="/type/%23">#</a> channel:flags.0?<a href="/type/InputChannel">InputChannel</a> = <a href="/type/messages.Chats">messages.Chats</a>;<br>
<a href="/method/account.toggleSponsoredMessages">account.toggleSponsoredMessages</a>#b9d9a38d enabled:<a href="/type/Bool">Bool</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/stories.togglePinnedToTop">stories.togglePinnedToTop</a>#0b297e9b peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/account.getReactionsNotifySettings">account.getReactionsNotifySettings</a>#06dd654c = <a href="/type/ReactionsNotifySettings">ReactionsNotifySettings</a>;
<a href="/method/account.setReactionsNotifySettings">account.setReactionsNotifySettings</a>#316ce548 settings:<a href="/type/ReactionsNotifySettings">ReactionsNotifySettings</a> = <a href="/type/ReactionsNotifySettings">ReactionsNotifySettings</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-177" id="layer-177" name="layer-177"><i class="anchor-icon"></i></a><a href="/schema?layer=177">Layer 177</a></h3>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/invokeWithBusinessConnection">invokeWithBusinessConnection</a> - </li>
<li>Added <a href="/method/account.getBotBusinessConnection">account.getBotBusinessConnection</a> - </li>
<li>Added <a href="/method/account.updateBusinessIntro">account.updateBusinessIntro</a> - </li>
<li>Added <a href="/method/stickers.replaceSticker">stickers.replaceSticker</a> - </li>
<li>Added <a href="/method/messages.getMyStickers">messages.getMyStickers</a> - </li>
<li>Added <a href="/method/fragment.getCollectibleInfo">fragment.getCollectibleInfo</a> - </li>
<li>Added <a href="/method/account.toggleConnectedBotPaused">account.toggleConnectedBotPaused</a> - </li>
<li>Added <a href="/method/account.disablePeerConnectedBot">account.disablePeerConnectedBot</a> - </li>
<li>Added <a href="/method/account.updateBirthday">account.updateBirthday</a> - </li>
<li>Added <a href="/method/contacts.getBirthdays">contacts.getBirthdays</a> - </li>
<li>Added <a href="/method/account.createBusinessChatLink">account.createBusinessChatLink</a> - </li>
<li>Added <a href="/method/account.editBusinessChatLink">account.editBusinessChatLink</a> - </li>
<li>Added <a href="/method/account.deleteBusinessChatLink">account.deleteBusinessChatLink</a> - </li>
<li>Added <a href="/method/account.getBusinessChatLinks">account.getBusinessChatLinks</a> - </li>
<li>Added <a href="/method/account.resolveBusinessChatLink">account.resolveBusinessChatLink</a> - </li>
<li>Added <a href="/method/account.updatePersonalChannel">account.updatePersonalChannel</a> - </li>
<li>Added <a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a> - </li>
<li>Added <a href="/method/stats.getBroadcastRevenueStats">stats.getBroadcastRevenueStats</a> - </li>
<li>Added <a href="/method/stats.getBroadcastRevenueWithdrawalUrl">stats.getBroadcastRevenueWithdrawalUrl</a> - </li>
<li>Added <a href="/method/stats.getBroadcastRevenueTransactions">stats.getBroadcastRevenueTransactions</a> - </li>
<li>Added <a href="/method/channels.restrictSponsoredMessages">channels.restrictSponsoredMessages</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Changed type of <a href="/method/messages.addChatUser">messages.addChatUser</a> from <strong>Updates</strong> to <strong>messages.InvitedUsers</strong></li>
<li>Changed type of <a href="/method/messages.createChat">messages.createChat</a> from <strong>Updates</strong> to <strong>messages.InvitedUsers</strong></li>
<li>Changed type of <a href="/method/channels.inviteToChannel">channels.inviteToChannel</a> from <strong>Updates</strong> to <strong>messages.InvitedUsers</strong></li>
<li>Added <strong>for_personal</strong> parameter in <a href="/method/channels.getAdminedPublicChannels">channels.getAdminedPublicChannels</a></li>
<li>Removed <strong>animated</strong>, <strong>videos</strong> parameters in <a href="/method/stickers.createStickerSet">stickers.createStickerSet</a></li>
<li>Added <strong>flags</strong>, <strong>business_connection_id</strong> parameters in <a href="/method/messages.uploadMedia">messages.uploadMedia</a></li>
<li>Added <strong>id</strong>, <strong>random_id</strong> parameters in <a href="/method/messages.sendQuickReplyMessages">messages.sendQuickReplyMessages</a></li>
<li>Changed type of <strong>recipients</strong> from <strong>InputBusinessRecipients</strong> to <strong>InputBusinessBotRecipients</strong> in <a href="/method/account.updateConnectedBot">account.updateConnectedBot</a></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/birthday">birthday</a> - </li>
<li>Added <a href="/constructor/updateBotBusinessConnect">updateBotBusinessConnect</a> - </li>
<li>Added <a href="/constructor/updateBotNewBusinessMessage">updateBotNewBusinessMessage</a> - </li>
<li>Added <a href="/constructor/updateBotEditBusinessMessage">updateBotEditBusinessMessage</a> - </li>
<li>Added <a href="/constructor/updateBotDeleteBusinessMessage">updateBotDeleteBusinessMessage</a> - </li>
<li>Added <a href="/constructor/botBusinessConnection">botBusinessConnection</a> - </li>
<li>Added <a href="/constructor/inputBusinessIntro">inputBusinessIntro</a> - </li>
<li>Added <a href="/constructor/businessIntro">businessIntro</a> - </li>
<li>Added <a href="/constructor/messages.myStickers">messages.myStickers</a> - </li>
<li>Added <a href="/constructor/inputCollectibleUsername">inputCollectibleUsername</a> - </li>
<li>Added <a href="/constructor/inputCollectiblePhone">inputCollectiblePhone</a> - </li>
<li>Added <a href="/constructor/fragment.collectibleInfo">fragment.collectibleInfo</a> - </li>
<li>Added <a href="/constructor/inputBusinessBotRecipients">inputBusinessBotRecipients</a> - </li>
<li>Added <a href="/constructor/businessBotRecipients">businessBotRecipients</a> - </li>
<li>Added <a href="/constructor/contactBirthday">contactBirthday</a> - </li>
<li>Added <a href="/constructor/contacts.contactBirthdays">contacts.contactBirthdays</a> - </li>
<li>Added <a href="/constructor/inputPrivacyKeyBirthday">inputPrivacyKeyBirthday</a> - </li>
<li>Added <a href="/constructor/privacyKeyBirthday">privacyKeyBirthday</a> - </li>
<li>Added <a href="/constructor/inputPrivacyValueAllowPremium">inputPrivacyValueAllowPremium</a> - </li>
<li>Added <a href="/constructor/privacyValueAllowPremium">privacyValueAllowPremium</a> - </li>
<li>Added <a href="/constructor/missingInvitee">missingInvitee</a> - </li>
<li>Added <a href="/constructor/messages.invitedUsers">messages.invitedUsers</a> - </li>
<li>Added <a href="/constructor/inputBusinessChatLink">inputBusinessChatLink</a> - </li>
<li>Added <a href="/constructor/businessChatLink">businessChatLink</a> - </li>
<li>Added <a href="/constructor/account.businessChatLinks">account.businessChatLinks</a> - </li>
<li>Added <a href="/constructor/account.resolvedBusinessChatLinks">account.resolvedBusinessChatLinks</a> - </li>
<li>Added <a href="/constructor/requestedPeerUser">requestedPeerUser</a> - </li>
<li>Added <a href="/constructor/requestedPeerChat">requestedPeerChat</a> - </li>
<li>Added <a href="/constructor/requestedPeerChannel">requestedPeerChannel</a> - </li>
<li>Added <a href="/constructor/messageActionRequestedPeerSentMe">messageActionRequestedPeerSentMe</a> - </li>
<li>Added <a href="/constructor/inputKeyboardButtonRequestPeer">inputKeyboardButtonRequestPeer</a> - </li>
<li>Added <a href="/constructor/sponsoredMessageReportOption">sponsoredMessageReportOption</a> - </li>
<li>Added <a href="/constructor/channels.sponsoredMessageReportResultChooseOption">channels.sponsoredMessageReportResultChooseOption</a> - </li>
<li>Added <a href="/constructor/channels.sponsoredMessageReportResultAdsHidden">channels.sponsoredMessageReportResultAdsHidden</a> - </li>
<li>Added <a href="/constructor/channels.sponsoredMessageReportResultReported">channels.sponsoredMessageReportResultReported</a> - </li>
<li>Added <a href="/constructor/stats.broadcastRevenueStats">stats.broadcastRevenueStats</a> - </li>
<li>Added <a href="/constructor/stats.broadcastRevenueWithdrawalUrl">stats.broadcastRevenueWithdrawalUrl</a> - </li>
<li>Added <a href="/constructor/broadcastRevenueTransactionProceeds">broadcastRevenueTransactionProceeds</a> - </li>
<li>Added <a href="/constructor/broadcastRevenueTransactionWithdrawal">broadcastRevenueTransactionWithdrawal</a> - </li>
<li>Added <a href="/constructor/broadcastRevenueTransactionRefund">broadcastRevenueTransactionRefund</a> - </li>
<li>Added <a href="/constructor/stats.broadcastRevenueTransactions">stats.broadcastRevenueTransactions</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>flags2</strong>, <strong>offline</strong>, <strong>via_business_bot_id</strong> parameters in <a href="/constructor/message">message</a></li>
<li>Added <strong>business_bot_paused</strong>, <strong>business_bot_can_reply</strong>, <strong>business_bot_id</strong>, <strong>business_bot_manage_url</strong> parameters in <a href="/constructor/peerSettings">peerSettings</a></li>
<li>Added <strong>business_intro</strong>, <strong>birthday</strong>, <strong>personal_channel_id</strong>, <strong>personal_channel_message</strong> parameters in <a href="/constructor/userFull">userFull</a></li>
<li>Added <strong>creator</strong> parameter, removed <strong>animated</strong>, <strong>videos</strong> parameters in <a href="/constructor/stickerSet">stickerSet</a></li>
<li>Added <strong>restricted_sponsored</strong>, <strong>can_view_revenue</strong> parameters in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>custom_parameters</strong> parameter in <a href="/constructor/phoneCall">phoneCall</a></li>
<li>Added <strong>can_report</strong> parameter in <a href="/constructor/sponsoredMessage">sponsoredMessage</a></li>
<li>Changed type of <strong>recipients</strong> from <strong>BusinessRecipients</strong> to <strong>BusinessBotRecipients</strong> in <a href="/constructor/connectedBot">connectedBot</a></li>
</ul>
<h5><a class="anchor" href="#deleted-constructors" id="deleted-constructors" name="deleted-constructors"><i class="anchor-icon"></i></a>Deleted Constructors</h5>
<ul>
<li>Removed updateGroupInvitePrivacyForbidden</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/message">message</a>#2357bf25 flags:<a href="/type/%23">#</a> out:flags.1?<a href="/constructor/true">true</a> mentioned:flags.4?<a href="/constructor/true">true</a> media_unread:flags.5?<a href="/constructor/true">true</a> silent:flags.13?<a href="/constructor/true">true</a> post:flags.14?<a href="/constructor/true">true</a> from_scheduled:flags.18?<a href="/constructor/true">true</a> legacy:flags.19?<a href="/constructor/true">true</a> edit_hide:flags.21?<a href="/constructor/true">true</a> pinned:flags.24?<a href="/constructor/true">true</a> noforwards:flags.26?<a href="/constructor/true">true</a> invert_media:flags.27?<a href="/constructor/true">true</a> flags2:<a href="/type/%23">#</a> offline:flags2.1?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> from_id:flags.8?<a href="/type/Peer">Peer</a> from_boosts_applied:flags.29?<a href="/type/int">int</a> peer_id:<a href="/type/Peer">Peer</a> saved_peer_id:flags.28?<a href="/type/Peer">Peer</a> fwd_from:flags.2?<a href="/type/MessageFwdHeader">MessageFwdHeader</a> via_bot_id:flags.11?<a href="/type/long">long</a> via_business_bot_id:flags2.0?<a href="/type/long">long</a> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> date:<a href="/type/int">int</a> message:<a href="/type/string">string</a> media:flags.9?<a href="/type/MessageMedia">MessageMedia</a> reply_markup:flags.6?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.7?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; views:flags.10?<a href="/type/int">int</a> forwards:flags.10?<a href="/type/int">int</a> replies:flags.23?<a href="/type/MessageReplies">MessageReplies</a> edit_date:flags.15?<a href="/type/int">int</a> post_author:flags.16?<a href="/type/string">string</a> grouped_id:flags.17?<a href="/type/long">long</a> reactions:flags.20?<a href="/type/MessageReactions">MessageReactions</a> restriction_reason:flags.22?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; ttl_period:flags.25?<a href="/type/int">int</a> quick_reply_shortcut_id:flags.30?<a href="/type/int">int</a> = <a href="/type/Message">Message</a>;<br>
<a href="/constructor/peerSettings">peerSettings</a>#acd66c5e flags:<a href="/type/%23">#</a> report_spam:flags.0?<a href="/constructor/true">true</a> add_contact:flags.1?<a href="/constructor/true">true</a> block_contact:flags.2?<a href="/constructor/true">true</a> share_contact:flags.3?<a href="/constructor/true">true</a> need_contacts_exception:flags.4?<a href="/constructor/true">true</a> report_geo:flags.5?<a href="/constructor/true">true</a> autoarchived:flags.7?<a href="/constructor/true">true</a> invite_members:flags.8?<a href="/constructor/true">true</a> request_chat_broadcast:flags.10?<a href="/constructor/true">true</a> business_bot_paused:flags.11?<a href="/constructor/true">true</a> business_bot_can_reply:flags.12?<a href="/constructor/true">true</a> geo_distance:flags.6?<a href="/type/int">int</a> request_chat_title:flags.9?<a href="/type/string">string</a> request_chat_date:flags.9?<a href="/type/int">int</a> business_bot_id:flags.13?<a href="/type/long">long</a> business_bot_manage_url:flags.13?<a href="/type/string">string</a> = <a href="/type/PeerSettings">PeerSettings</a>;<br>
<a href="/constructor/userFull">userFull</a>#cc997720 flags:<a href="/type/%23">#</a> blocked:flags.0?<a href="/constructor/true">true</a> phone_calls_available:flags.4?<a href="/constructor/true">true</a> phone_calls_private:flags.5?<a href="/constructor/true">true</a> can_pin_message:flags.7?<a href="/constructor/true">true</a> has_scheduled:flags.12?<a href="/constructor/true">true</a> video_calls_available:flags.13?<a href="/constructor/true">true</a> voice_messages_forbidden:flags.20?<a href="/constructor/true">true</a> translations_disabled:flags.23?<a href="/constructor/true">true</a> stories_pinned_available:flags.26?<a href="/constructor/true">true</a> blocked_my_stories_from:flags.27?<a href="/constructor/true">true</a> wallpaper_overridden:flags.28?<a href="/constructor/true">true</a> contact_require_premium:flags.29?<a href="/constructor/true">true</a> read_dates_private:flags.30?<a href="/constructor/true">true</a> flags2:<a href="/type/%23">#</a> id:<a href="/type/long">long</a> about:flags.1?<a href="/type/string">string</a> settings:<a href="/type/PeerSettings">PeerSettings</a> personal_photo:flags.21?<a href="/type/Photo">Photo</a> profile_photo:flags.2?<a href="/type/Photo">Photo</a> fallback_photo:flags.22?<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> bot_info:flags.3?<a href="/type/BotInfo">BotInfo</a> pinned_msg_id:flags.6?<a href="/type/int">int</a> common_chats_count:<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> ttl_period:flags.14?<a href="/type/int">int</a> theme_emoticon:flags.15?<a href="/type/string">string</a> private_forward_name:flags.16?<a href="/type/string">string</a> bot_group_admin_rights:flags.17?<a href="/type/ChatAdminRights">ChatAdminRights</a> bot_broadcast_admin_rights:flags.18?<a href="/type/ChatAdminRights">ChatAdminRights</a> premium_gifts:flags.19?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PremiumGiftOption">PremiumGiftOption</a>&gt; wallpaper:flags.24?<a href="/type/WallPaper">WallPaper</a> stories:flags.25?<a href="/type/PeerStories">PeerStories</a> business_work_hours:flags2.0?<a href="/type/BusinessWorkHours">BusinessWorkHours</a> business_location:flags2.1?<a href="/type/BusinessLocation">BusinessLocation</a> business_greeting_message:flags2.2?<a href="/type/BusinessGreetingMessage">BusinessGreetingMessage</a> business_away_message:flags2.3?<a href="/type/BusinessAwayMessage">BusinessAwayMessage</a> business_intro:flags2.4?<a href="/type/BusinessIntro">BusinessIntro</a> birthday:flags2.5?<a href="/type/Birthday">Birthday</a> personal_channel_id:flags2.6?<a href="/type/long">long</a> personal_channel_message:flags2.6?<a href="/type/int">int</a> = <a href="/type/UserFull">UserFull</a>;<br>
<a href="/constructor/stickerSet">stickerSet</a>#2dd14edc flags:<a href="/type/%23">#</a> archived:flags.1?<a href="/constructor/true">true</a> official:flags.2?<a href="/constructor/true">true</a> masks:flags.3?<a href="/constructor/true">true</a> emojis:flags.7?<a href="/constructor/true">true</a> text_color:flags.9?<a href="/constructor/true">true</a> channel_emoji_status:flags.10?<a href="/constructor/true">true</a> creator:flags.11?<a href="/constructor/true">true</a> installed_date:flags.0?<a href="/type/int">int</a> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> title:<a href="/type/string">string</a> short_name:<a href="/type/string">string</a> thumbs:flags.4?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PhotoSize">PhotoSize</a>&gt; thumb_dc_id:flags.4?<a href="/type/int">int</a> thumb_version:flags.4?<a href="/type/int">int</a> thumb_document_id:flags.8?<a href="/type/long">long</a> count:<a href="/type/int">int</a> hash:<a href="/type/int">int</a> = <a href="/type/StickerSet">StickerSet</a>;<br>
<a href="/constructor/channelFull">channelFull</a>#44c054a7 flags:<a href="/type/%23">#</a> can_view_participants:flags.3?<a href="/constructor/true">true</a> can_set_username:flags.6?<a href="/constructor/true">true</a> can_set_stickers:flags.7?<a href="/constructor/true">true</a> hidden_prehistory:flags.10?<a href="/constructor/true">true</a> can_set_location:flags.16?<a href="/constructor/true">true</a> has_scheduled:flags.19?<a href="/constructor/true">true</a> can_view_stats:flags.20?<a href="/constructor/true">true</a> blocked:flags.22?<a href="/constructor/true">true</a> flags2:<a href="/type/%23">#</a> can_delete_channel:flags2.0?<a href="/constructor/true">true</a> antispam:flags2.1?<a href="/constructor/true">true</a> participants_hidden:flags2.2?<a href="/constructor/true">true</a> translations_disabled:flags2.3?<a href="/constructor/true">true</a> stories_pinned_available:flags2.5?<a href="/constructor/true">true</a> view_forum_as_messages:flags2.6?<a href="/constructor/true">true</a> restricted_sponsored:flags2.11?<a href="/constructor/true">true</a> can_view_revenue:flags2.12?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> participants_count:flags.0?<a href="/type/int">int</a> admins_count:flags.1?<a href="/type/int">int</a> kicked_count:flags.2?<a href="/type/int">int</a> banned_count:flags.2?<a href="/type/int">int</a> online_count:flags.13?<a href="/type/int">int</a> read_inbox_max_id:<a href="/type/int">int</a> read_outbox_max_id:<a href="/type/int">int</a> unread_count:<a href="/type/int">int</a> chat_photo:<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> exported_invite:flags.23?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> bot_info:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotInfo">BotInfo</a>&gt; migrated_from_chat_id:flags.4?<a href="/type/long">long</a> migrated_from_max_id:flags.4?<a href="/type/int">int</a> pinned_msg_id:flags.5?<a href="/type/int">int</a> stickerset:flags.8?<a href="/type/StickerSet">StickerSet</a> available_min_id:flags.9?<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> linked_chat_id:flags.14?<a href="/type/long">long</a> location:flags.15?<a href="/type/ChannelLocation">ChannelLocation</a> slowmode_seconds:flags.17?<a href="/type/int">int</a> slowmode_next_send_date:flags.18?<a href="/type/int">int</a> stats_dc:flags.12?<a href="/type/int">int</a> pts:<a href="/type/int">int</a> call:flags.21?<a href="/type/InputGroupCall">InputGroupCall</a> ttl_period:flags.24?<a href="/type/int">int</a> pending_suggestions:flags.25?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; groupcall_default_join_as:flags.26?<a href="/type/Peer">Peer</a> theme_emoticon:flags.27?<a href="/type/string">string</a> requests_pending:flags.28?<a href="/type/int">int</a> recent_requesters:flags.28?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; default_send_as:flags.29?<a href="/type/Peer">Peer</a> available_reactions:flags.30?<a href="/type/ChatReactions">ChatReactions</a> stories:flags2.4?<a href="/type/PeerStories">PeerStories</a> wallpaper:flags2.7?<a href="/type/WallPaper">WallPaper</a> boosts_applied:flags2.8?<a href="/type/int">int</a> boosts_unrestrict:flags2.9?<a href="/type/int">int</a> emojiset:flags2.10?<a href="/type/StickerSet">StickerSet</a> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/phoneCall">phoneCall</a>#30535af5 flags:<a href="/type/%23">#</a> p2p_allowed:flags.5?<a href="/constructor/true">true</a> video:flags.6?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> date:<a href="/type/int">int</a> admin_id:<a href="/type/long">long</a> participant_id:<a href="/type/long">long</a> g_a_or_b:<a href="/type/bytes">bytes</a> key_fingerprint:<a href="/type/long">long</a> protocol:<a href="/type/PhoneCallProtocol">PhoneCallProtocol</a> connections:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PhoneConnection">PhoneConnection</a>&gt; start_date:<a href="/type/int">int</a> custom_parameters:flags.7?<a href="/type/DataJSON">DataJSON</a> = <a href="/type/PhoneCall">PhoneCall</a>;<br>
<a href="/constructor/sponsoredMessage">sponsoredMessage</a>#ed5383f7 flags:<a href="/type/%23">#</a> recommended:flags.5?<a href="/constructor/true">true</a> show_peer_photo:flags.6?<a href="/constructor/true">true</a> can_report:flags.12?<a href="/constructor/true">true</a> random_id:<a href="/type/bytes">bytes</a> from_id:flags.3?<a href="/type/Peer">Peer</a> chat_invite:flags.4?<a href="/type/ChatInvite">ChatInvite</a> chat_invite_hash:flags.4?<a href="/type/string">string</a> channel_post:flags.2?<a href="/type/int">int</a> start_param:flags.0?<a href="/type/string">string</a> webpage:flags.9?<a href="/type/SponsoredWebPage">SponsoredWebPage</a> app:flags.10?<a href="/type/BotApp">BotApp</a> message:<a href="/type/string">string</a> entities:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; button_text:flags.11?<a href="/type/string">string</a> sponsor_info:flags.7?<a href="/type/string">string</a> additional_info:flags.8?<a href="/type/string">string</a> = <a href="/type/SponsoredMessage">SponsoredMessage</a>;<br>
<a href="/constructor/connectedBot">connectedBot</a>#bd068601 flags:<a href="/type/%23">#</a> can_reply:flags.0?<a href="/constructor/true">true</a> bot_id:<a href="/type/long">long</a> recipients:<a href="/type/BusinessBotRecipients">BusinessBotRecipients</a> = <a href="/type/ConnectedBot">ConnectedBot</a>;<br>
<a href="/constructor/birthday">birthday</a>#6c8e1e06 flags:<a href="/type/%23">#</a> day:<a href="/type/int">int</a> month:<a href="/type/int">int</a> year:flags.0?<a href="/type/int">int</a> = <a href="/type/Birthday">Birthday</a>;<br>
<a href="/constructor/updateBotBusinessConnect">updateBotBusinessConnect</a>#8ae5c97a connection:<a href="/type/BotBusinessConnection">BotBusinessConnection</a> qts:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateBotNewBusinessMessage">updateBotNewBusinessMessage</a>#9ddb347c flags:<a href="/type/%23">#</a> connection_id:<a href="/type/string">string</a> message:<a href="/type/Message">Message</a> reply_to_message:flags.0?<a href="/type/Message">Message</a> qts:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateBotEditBusinessMessage">updateBotEditBusinessMessage</a>#07df587c flags:<a href="/type/%23">#</a> connection_id:<a href="/type/string">string</a> message:<a href="/type/Message">Message</a> reply_to_message:flags.0?<a href="/type/Message">Message</a> qts:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateBotDeleteBusinessMessage">updateBotDeleteBusinessMessage</a>#a02a982e connection_id:<a href="/type/string">string</a> peer:<a href="/type/Peer">Peer</a> messages:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; qts:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/botBusinessConnection">botBusinessConnection</a>#896433b4 flags:<a href="/type/%23">#</a> can_reply:flags.0?<a href="/constructor/true">true</a> disabled:flags.1?<a href="/constructor/true">true</a> connection_id:<a href="/type/string">string</a> user_id:<a href="/type/long">long</a> dc_id:<a href="/type/int">int</a> date:<a href="/type/int">int</a> = <a href="/type/BotBusinessConnection">BotBusinessConnection</a>;<br>
<a href="/constructor/inputBusinessIntro">inputBusinessIntro</a>#09c469cd flags:<a href="/type/%23">#</a> title:<a href="/type/string">string</a> description:<a href="/type/string">string</a> sticker:flags.0?<a href="/type/InputDocument">InputDocument</a> = <a href="/type/InputBusinessIntro">InputBusinessIntro</a>;<br>
<a href="/constructor/businessIntro">businessIntro</a>#5a0a066d flags:<a href="/type/%23">#</a> title:<a href="/type/string">string</a> description:<a href="/type/string">string</a> sticker:flags.0?<a href="/type/Document">Document</a> = <a href="/type/BusinessIntro">BusinessIntro</a>;<br>
<a href="/constructor/messages.myStickers">messages.myStickers</a>#faff629d count:<a href="/type/int">int</a> sets:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/StickerSetCovered">StickerSetCovered</a>&gt; = <a href="/type/messages.MyStickers">messages.MyStickers</a>;<br>
<a href="/constructor/inputCollectibleUsername">inputCollectibleUsername</a>#e39460a9 username:<a href="/type/string">string</a> = <a href="/type/InputCollectible">InputCollectible</a>;
<a href="/constructor/inputCollectiblePhone">inputCollectiblePhone</a>#a2e214a4 phone:<a href="/type/string">string</a> = <a href="/type/InputCollectible">InputCollectible</a>;<br>
<a href="/constructor/fragment.collectibleInfo">fragment.collectibleInfo</a>#6ebdff91 purchase_date:<a href="/type/int">int</a> currency:<a href="/type/string">string</a> amount:<a href="/type/long">long</a> crypto_currency:<a href="/type/string">string</a> crypto_amount:<a href="/type/long">long</a> url:<a href="/type/string">string</a> = <a href="/type/fragment.CollectibleInfo">fragment.CollectibleInfo</a>;<br>
<a href="/constructor/inputBusinessBotRecipients">inputBusinessBotRecipients</a>#c4e5921e flags:<a href="/type/%23">#</a> existing_chats:flags.0?<a href="/constructor/true">true</a> new_chats:flags.1?<a href="/constructor/true">true</a> contacts:flags.2?<a href="/constructor/true">true</a> non_contacts:flags.3?<a href="/constructor/true">true</a> exclude_selected:flags.5?<a href="/constructor/true">true</a> users:flags.4?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputUser">InputUser</a>&gt; exclude_users:flags.6?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputUser">InputUser</a>&gt; = <a href="/type/InputBusinessBotRecipients">InputBusinessBotRecipients</a>;<br>
<a href="/constructor/businessBotRecipients">businessBotRecipients</a>#b88cf373 flags:<a href="/type/%23">#</a> existing_chats:flags.0?<a href="/constructor/true">true</a> new_chats:flags.1?<a href="/constructor/true">true</a> contacts:flags.2?<a href="/constructor/true">true</a> non_contacts:flags.3?<a href="/constructor/true">true</a> exclude_selected:flags.5?<a href="/constructor/true">true</a> users:flags.4?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; exclude_users:flags.6?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; = <a href="/type/BusinessBotRecipients">BusinessBotRecipients</a>;<br>
<a href="/constructor/contactBirthday">contactBirthday</a>#1d998733 contact_id:<a href="/type/long">long</a> birthday:<a href="/type/Birthday">Birthday</a> = <a href="/type/ContactBirthday">ContactBirthday</a>;
<a href="/constructor/contacts.contactBirthdays">contacts.contactBirthdays</a>#114ff30d contacts:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/ContactBirthday">ContactBirthday</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/contacts.ContactBirthdays">contacts.ContactBirthdays</a>;<br>
<a href="/constructor/inputPrivacyKeyBirthday">inputPrivacyKeyBirthday</a>#d65a11cc = <a href="/type/InputPrivacyKey">InputPrivacyKey</a>;<br>
<a href="/constructor/privacyKeyBirthday">privacyKeyBirthday</a>#2000a518 = <a href="/type/PrivacyKey">PrivacyKey</a>;<br>
<a href="/constructor/inputPrivacyValueAllowPremium">inputPrivacyValueAllowPremium</a>#77cdc9f1 = <a href="/type/InputPrivacyRule">InputPrivacyRule</a>;<br>
<a href="/constructor/privacyValueAllowPremium">privacyValueAllowPremium</a>#ece9814b = <a href="/type/PrivacyRule">PrivacyRule</a>;<br>
<a href="/constructor/missingInvitee">missingInvitee</a>#628c9224 flags:<a href="/type/%23">#</a> premium_would_allow_invite:flags.0?<a href="/constructor/true">true</a> premium_required_for_pm:flags.1?<a href="/constructor/true">true</a> user_id:<a href="/type/long">long</a> = <a href="/type/MissingInvitee">MissingInvitee</a>;
<a href="/constructor/messages.invitedUsers">messages.invitedUsers</a>#7f5defa6 updates:<a href="/type/Updates">Updates</a> missing_invitees:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MissingInvitee">MissingInvitee</a>&gt; = <a href="/type/messages.InvitedUsers">messages.InvitedUsers</a>;<br>
<a href="/constructor/inputBusinessChatLink">inputBusinessChatLink</a>#11679fa7 flags:<a href="/type/%23">#</a> message:<a href="/type/string">string</a> entities:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; title:flags.1?<a href="/type/string">string</a> = <a href="/type/InputBusinessChatLink">InputBusinessChatLink</a>;<br>
<a href="/constructor/businessChatLink">businessChatLink</a>#b4ae666f flags:<a href="/type/%23">#</a> link:<a href="/type/string">string</a> message:<a href="/type/string">string</a> entities:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; title:flags.1?<a href="/type/string">string</a> views:<a href="/type/int">int</a> = <a href="/type/BusinessChatLink">BusinessChatLink</a>;<br>
<a href="/constructor/account.businessChatLinks">account.businessChatLinks</a>#ec43a2d1 links:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BusinessChatLink">BusinessChatLink</a>&gt; chats:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/account.BusinessChatLinks">account.BusinessChatLinks</a>;
<a href="/constructor/account.resolvedBusinessChatLinks">account.resolvedBusinessChatLinks</a>#9a23af21 flags:<a href="/type/%23">#</a> peer:<a href="/type/Peer">Peer</a> message:<a href="/type/string">string</a> entities:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; chats:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/account.ResolvedBusinessChatLinks">account.ResolvedBusinessChatLinks</a>;<br>
<a href="/constructor/requestedPeerUser">requestedPeerUser</a>#d62ff46a flags:<a href="/type/%23">#</a> user_id:<a href="/type/long">long</a> first_name:flags.0?<a href="/type/string">string</a> last_name:flags.0?<a href="/type/string">string</a> username:flags.1?<a href="/type/string">string</a> photo:flags.2?<a href="/type/Photo">Photo</a> = <a href="/type/RequestedPeer">RequestedPeer</a>;
<a href="/constructor/requestedPeerChat">requestedPeerChat</a>#7307544f flags:<a href="/type/%23">#</a> chat_id:<a href="/type/long">long</a> title:flags.0?<a href="/type/string">string</a> photo:flags.2?<a href="/type/Photo">Photo</a> = <a href="/type/RequestedPeer">RequestedPeer</a>;
<a href="/constructor/requestedPeerChannel">requestedPeerChannel</a>#8ba403e4 flags:<a href="/type/%23">#</a> channel_id:<a href="/type/long">long</a> title:flags.0?<a href="/type/string">string</a> username:flags.1?<a href="/type/string">string</a> photo:flags.2?<a href="/type/Photo">Photo</a> = <a href="/type/RequestedPeer">RequestedPeer</a>;<br>
<a href="/constructor/messageActionRequestedPeerSentMe">messageActionRequestedPeerSentMe</a>#93b31848 button_id:<a href="/type/int">int</a> peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RequestedPeer">RequestedPeer</a>&gt; = <a href="/type/MessageAction">MessageAction</a>;<br>
<a href="/constructor/inputKeyboardButtonRequestPeer">inputKeyboardButtonRequestPeer</a>#c9662d05 flags:<a href="/type/%23">#</a> name_requested:flags.0?<a href="/constructor/true">true</a> username_requested:flags.1?<a href="/constructor/true">true</a> photo_requested:flags.2?<a href="/constructor/true">true</a> text:<a href="/type/string">string</a> button_id:<a href="/type/int">int</a> peer_type:<a href="/type/RequestPeerType">RequestPeerType</a> max_quantity:<a href="/type/int">int</a> = <a href="/type/KeyboardButton">KeyboardButton</a>;<br>
<a href="/constructor/sponsoredMessageReportOption">sponsoredMessageReportOption</a>#430d3150 text:<a href="/type/string">string</a> option:<a href="/type/bytes">bytes</a> = <a href="/type/SponsoredMessageReportOption">SponsoredMessageReportOption</a>;<br>
<a href="/constructor/channels.sponsoredMessageReportResultChooseOption">channels.sponsoredMessageReportResultChooseOption</a>#846f9e42 title:<a href="/type/string">string</a> options:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/SponsoredMessageReportOption">SponsoredMessageReportOption</a>&gt; = <a href="/type/channels.SponsoredMessageReportResult">channels.SponsoredMessageReportResult</a>;
<a href="/constructor/channels.sponsoredMessageReportResultAdsHidden">channels.sponsoredMessageReportResultAdsHidden</a>#3e3bcf2f = <a href="/type/channels.SponsoredMessageReportResult">channels.SponsoredMessageReportResult</a>;
<a href="/constructor/channels.sponsoredMessageReportResultReported">channels.sponsoredMessageReportResultReported</a>#ad798849 = <a href="/type/channels.SponsoredMessageReportResult">channels.SponsoredMessageReportResult</a>;<br>
<a href="/constructor/stats.broadcastRevenueStats">stats.broadcastRevenueStats</a>#d07b4bad top_hours_graph:<a href="/type/StatsGraph">StatsGraph</a> revenue_graph:<a href="/type/StatsGraph">StatsGraph</a> current_balance:<a href="/type/long">long</a> available_balance:<a href="/type/long">long</a> overall_revenue:<a href="/type/long">long</a> usd_rate:<a href="/type/double">double</a> = <a href="/type/stats.BroadcastRevenueStats">stats.BroadcastRevenueStats</a>;
<a href="/constructor/stats.broadcastRevenueWithdrawalUrl">stats.broadcastRevenueWithdrawalUrl</a>#ec659737 url:<a href="/type/string">string</a> = <a href="/type/stats.BroadcastRevenueWithdrawalUrl">stats.BroadcastRevenueWithdrawalUrl</a>;<br>
<a href="/constructor/broadcastRevenueTransactionProceeds">broadcastRevenueTransactionProceeds</a>#557e2cc4 amount:<a href="/type/long">long</a> from_date:<a href="/type/int">int</a> to_date:<a href="/type/int">int</a> = <a href="/type/BroadcastRevenueTransaction">BroadcastRevenueTransaction</a>;
<a href="/constructor/broadcastRevenueTransactionWithdrawal">broadcastRevenueTransactionWithdrawal</a>#5a590978 flags:<a href="/type/%23">#</a> pending:flags.0?<a href="/constructor/true">true</a> failed:flags.2?<a href="/constructor/true">true</a> amount:<a href="/type/long">long</a> date:<a href="/type/int">int</a> provider:<a href="/type/string">string</a> transaction_date:flags.1?<a href="/type/int">int</a> transaction_url:flags.1?<a href="/type/string">string</a> = <a href="/type/BroadcastRevenueTransaction">BroadcastRevenueTransaction</a>;
<a href="/constructor/broadcastRevenueTransactionRefund">broadcastRevenueTransactionRefund</a>#42d30d2e amount:<a href="/type/long">long</a> date:<a href="/type/int">int</a> provider:<a href="/type/string">string</a> = <a href="/type/BroadcastRevenueTransaction">BroadcastRevenueTransaction</a>;<br>
<a href="/constructor/stats.broadcastRevenueTransactions">stats.broadcastRevenueTransactions</a>#87158466 count:<a href="/type/int">int</a> transactions:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BroadcastRevenueTransaction">BroadcastRevenueTransaction</a>&gt; = <a href="/type/stats.BroadcastRevenueTransactions">stats.BroadcastRevenueTransactions</a>;<br>
---functions---<br>
<a href="/method/messages.addChatUser">messages.addChatUser</a>#cbc6d107 chat_id:<a href="/type/long">long</a> user_id:<a href="/type/InputUser">InputUser</a> fwd_limit:<a href="/type/int">int</a> = <a href="/type/messages.InvitedUsers">messages.InvitedUsers</a>;
<a href="/method/messages.createChat">messages.createChat</a>#92ceddd4 flags:<a href="/type/%23">#</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputUser">InputUser</a>&gt; title:<a href="/type/string">string</a> ttl_period:flags.0?<a href="/type/int">int</a> = <a href="/type/messages.InvitedUsers">messages.InvitedUsers</a>;<br>
<a href="/method/channels.inviteToChannel">channels.inviteToChannel</a>#c9e33d54 channel:<a href="/type/InputChannel">InputChannel</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputUser">InputUser</a>&gt; = <a href="/type/messages.InvitedUsers">messages.InvitedUsers</a>;
<a href="/method/channels.getAdminedPublicChannels">channels.getAdminedPublicChannels</a>#f8b036af flags:<a href="/type/%23">#</a> by_location:flags.0?<a href="/constructor/true">true</a> check_limit:flags.1?<a href="/constructor/true">true</a> for_personal:flags.2?<a href="/constructor/true">true</a> = <a href="/type/messages.Chats">messages.Chats</a>;<br>
<a href="/method/stickers.createStickerSet">stickers.createStickerSet</a>#9021ab67 flags:<a href="/type/%23">#</a> masks:flags.0?<a href="/constructor/true">true</a> emojis:flags.5?<a href="/constructor/true">true</a> text_color:flags.6?<a href="/constructor/true">true</a> user_id:<a href="/type/InputUser">InputUser</a> title:<a href="/type/string">string</a> short_name:<a href="/type/string">string</a> thumb:flags.2?<a href="/type/InputDocument">InputDocument</a> stickers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputStickerSetItem">InputStickerSetItem</a>&gt; software:flags.3?<a href="/type/string">string</a> = <a href="/type/messages.StickerSet">messages.StickerSet</a>;<br>
<a href="/method/messages.uploadMedia">messages.uploadMedia</a>#14967978 flags:<a href="/type/%23">#</a> business_connection_id:flags.0?<a href="/type/string">string</a> peer:<a href="/type/InputPeer">InputPeer</a> media:<a href="/type/InputMedia">InputMedia</a> = <a href="/type/MessageMedia">MessageMedia</a>;
<a href="/method/messages.sendQuickReplyMessages">messages.sendQuickReplyMessages</a>#6c750de1 peer:<a href="/type/InputPeer">InputPeer</a> shortcut_id:<a href="/type/int">int</a> id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; random_id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/account.updateConnectedBot">account.updateConnectedBot</a>#43d8521d flags:<a href="/type/%23">#</a> can_reply:flags.0?<a href="/constructor/true">true</a> deleted:flags.1?<a href="/constructor/true">true</a> bot:<a href="/type/InputUser">InputUser</a> recipients:<a href="/type/InputBusinessBotRecipients">InputBusinessBotRecipients</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/invokeWithBusinessConnection">invokeWithBusinessConnection</a>#dd289f8e {X:Type} connection_id:<a href="/type/string">string</a> query:!X = X;<br>
<a href="/method/account.getBotBusinessConnection">account.getBotBusinessConnection</a>#76a86270 connection_id:<a href="/type/string">string</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/account.updateBusinessIntro">account.updateBusinessIntro</a>#a614d034 flags:<a href="/type/%23">#</a> intro:flags.0?<a href="/type/InputBusinessIntro">InputBusinessIntro</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/stickers.replaceSticker">stickers.replaceSticker</a>#4696459a sticker:<a href="/type/InputDocument">InputDocument</a> new_sticker:<a href="/type/InputStickerSetItem">InputStickerSetItem</a> = <a href="/type/messages.StickerSet">messages.StickerSet</a>;<br>
<a href="/method/messages.getMyStickers">messages.getMyStickers</a>#d0b5e1fc offset_id:<a href="/type/long">long</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.MyStickers">messages.MyStickers</a>;<br>
<a href="/method/fragment.getCollectibleInfo">fragment.getCollectibleInfo</a>#be1e85ba collectible:<a href="/type/InputCollectible">InputCollectible</a> = <a href="/type/fragment.CollectibleInfo">fragment.CollectibleInfo</a>;<br>
<a href="/method/account.toggleConnectedBotPaused">account.toggleConnectedBotPaused</a>#646e1097 peer:<a href="/type/InputPeer">InputPeer</a> paused:<a href="/type/Bool">Bool</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/account.disablePeerConnectedBot">account.disablePeerConnectedBot</a>#5e437ed9 peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/account.updateBirthday">account.updateBirthday</a>#cc6e0c11 flags:<a href="/type/%23">#</a> birthday:flags.0?<a href="/type/Birthday">Birthday</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/contacts.getBirthdays">contacts.getBirthdays</a>#daeda864 = <a href="/type/contacts.ContactBirthdays">contacts.ContactBirthdays</a>;<br>
<a href="/method/account.createBusinessChatLink">account.createBusinessChatLink</a>#8851e68e link:<a href="/type/InputBusinessChatLink">InputBusinessChatLink</a> = <a href="/type/BusinessChatLink">BusinessChatLink</a>;
<a href="/method/account.editBusinessChatLink">account.editBusinessChatLink</a>#8c3410af slug:<a href="/type/string">string</a> link:<a href="/type/InputBusinessChatLink">InputBusinessChatLink</a> = <a href="/type/BusinessChatLink">BusinessChatLink</a>;
<a href="/method/account.deleteBusinessChatLink">account.deleteBusinessChatLink</a>#60073674 slug:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/account.getBusinessChatLinks">account.getBusinessChatLinks</a>#6f70dde1 = <a href="/type/account.BusinessChatLinks">account.BusinessChatLinks</a>;
<a href="/method/account.resolveBusinessChatLink">account.resolveBusinessChatLink</a>#5492e5ee slug:<a href="/type/string">string</a> = <a href="/type/account.ResolvedBusinessChatLinks">account.ResolvedBusinessChatLinks</a>;
<a href="/method/account.updatePersonalChannel">account.updatePersonalChannel</a>#d94305e0 channel:<a href="/type/InputChannel">InputChannel</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a>#af8ff6b9 channel:<a href="/type/InputChannel">InputChannel</a> random_id:<a href="/type/bytes">bytes</a> option:<a href="/type/bytes">bytes</a> = <a href="/type/channels.SponsoredMessageReportResult">channels.SponsoredMessageReportResult</a>;<br>
<a href="/method/stats.getBroadcastRevenueStats">stats.getBroadcastRevenueStats</a>#75dfb671 flags:<a href="/type/%23">#</a> dark:flags.0?<a href="/constructor/true">true</a> channel:<a href="/type/InputChannel">InputChannel</a> = <a href="/type/stats.BroadcastRevenueStats">stats.BroadcastRevenueStats</a>;
<a href="/method/stats.getBroadcastRevenueWithdrawalUrl">stats.getBroadcastRevenueWithdrawalUrl</a>#2a65ef73 channel:<a href="/type/InputChannel">InputChannel</a> password:<a href="/type/InputCheckPasswordSRP">InputCheckPasswordSRP</a> = <a href="/type/stats.BroadcastRevenueWithdrawalUrl">stats.BroadcastRevenueWithdrawalUrl</a>;
<a href="/method/stats.getBroadcastRevenueTransactions">stats.getBroadcastRevenueTransactions</a>#0069280f channel:<a href="/type/InputChannel">InputChannel</a> offset:<a href="/type/int">int</a> limit:<a href="/type/int">int</a> = <a href="/type/stats.BroadcastRevenueTransactions">stats.BroadcastRevenueTransactions</a>;<br>
<a href="/method/channels.restrictSponsoredMessages">channels.restrictSponsoredMessages</a>#9ae91519 channel:<a href="/type/InputChannel">InputChannel</a> restricted:<a href="/type/Bool">Bool</a> = <a href="/type/Updates">Updates</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-176" id="layer-176" name="layer-176"><i class="anchor-icon"></i></a><a href="/schema?layer=176">Layer 176</a></h3>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/smsjobs.isEligibleToJoin">smsjobs.isEligibleToJoin</a> - </li>
<li>Added <a href="/method/smsjobs.join">smsjobs.join</a> - </li>
<li>Added <a href="/method/smsjobs.leave">smsjobs.leave</a> - </li>
<li>Added <a href="/method/smsjobs.updateSettings">smsjobs.updateSettings</a> - </li>
<li>Added <a href="/method/smsjobs.getStatus">smsjobs.getStatus</a> - </li>
<li>Added <a href="/method/smsjobs.getSmsJob">smsjobs.getSmsJob</a> - </li>
<li>Added <a href="/method/smsjobs.finishJob">smsjobs.finishJob</a> - </li>
<li>Added <a href="/method/help.getTimezonesList">help.getTimezonesList</a> - </li>
<li>Added <a href="/method/account.updateBusinessWorkHours">account.updateBusinessWorkHours</a> - </li>
<li>Added <a href="/method/account.updateBusinessLocation">account.updateBusinessLocation</a> - </li>
<li>Added <a href="/method/account.updateBusinessGreetingMessage">account.updateBusinessGreetingMessage</a> - </li>
<li>Added <a href="/method/account.updateBusinessAwayMessage">account.updateBusinessAwayMessage</a> - </li>
<li>Added <a href="/method/messages.getQuickReplies">messages.getQuickReplies</a> - </li>
<li>Added <a href="/method/messages.reorderQuickReplies">messages.reorderQuickReplies</a> - </li>
<li>Added <a href="/method/messages.checkQuickReplyShortcut">messages.checkQuickReplyShortcut</a> - </li>
<li>Added <a href="/method/messages.editQuickReplyShortcut">messages.editQuickReplyShortcut</a> - </li>
<li>Added <a href="/method/messages.deleteQuickReplyShortcut">messages.deleteQuickReplyShortcut</a> - </li>
<li>Added <a href="/method/messages.getQuickReplyMessages">messages.getQuickReplyMessages</a> - </li>
<li>Added <a href="/method/messages.sendQuickReplyMessages">messages.sendQuickReplyMessages</a> - </li>
<li>Added <a href="/method/messages.deleteQuickReplyMessages">messages.deleteQuickReplyMessages</a> - </li>
<li>Added <a href="/method/account.updateConnectedBot">account.updateConnectedBot</a> - </li>
<li>Added <a href="/method/account.getConnectedBots">account.getConnectedBots</a> - </li>
<li>Added <a href="/method/messages.toggleDialogFilterTags">messages.toggleDialogFilterTags</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Added <strong>quick_reply_shortcut</strong> parameter in <a href="/method/messages.sendMessage">messages.sendMessage</a></li>
<li>Added <strong>quick_reply_shortcut</strong> parameter in <a href="/method/messages.sendMedia">messages.sendMedia</a></li>
<li>Added <strong>quick_reply_shortcut</strong> parameter in <a href="/method/messages.forwardMessages">messages.forwardMessages</a></li>
<li>Added <strong>quick_reply_shortcut</strong> parameter in <a href="/method/messages.sendInlineBotResult">messages.sendInlineBotResult</a></li>
<li>Added <strong>quick_reply_shortcut_id</strong> parameter in <a href="/method/messages.editMessage">messages.editMessage</a></li>
<li>Added <strong>quick_reply_shortcut</strong> parameter in <a href="/method/messages.sendMultiMedia">messages.sendMultiMedia</a></li>
<li>Changed type of <a href="/method/messages.getDialogFilters">messages.getDialogFilters</a> from <strong>Vector&lt;DialogFilter&gt;</strong> to <strong>messages.DialogFilters</strong></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/smsjobs.eligibleToJoin">smsjobs.eligibleToJoin</a> - </li>
<li>Added <a href="/constructor/smsjobs.status">smsjobs.status</a> - </li>
<li>Added <a href="/constructor/updateSmsJob">updateSmsJob</a> - </li>
<li>Added <a href="/constructor/smsJob">smsJob</a> - </li>
<li>Added <a href="/constructor/businessWeeklyOpen">businessWeeklyOpen</a> - </li>
<li>Added <a href="/constructor/businessWorkHours">businessWorkHours</a> - </li>
<li>Added <a href="/constructor/businessLocation">businessLocation</a> - </li>
<li>Added <a href="/constructor/inputBusinessRecipients">inputBusinessRecipients</a> - </li>
<li>Added <a href="/constructor/businessRecipients">businessRecipients</a> - </li>
<li>Added <a href="/constructor/businessAwayMessageScheduleAlways">businessAwayMessageScheduleAlways</a> - </li>
<li>Added <a href="/constructor/businessAwayMessageScheduleOutsideWorkHours">businessAwayMessageScheduleOutsideWorkHours</a> - </li>
<li>Added <a href="/constructor/businessAwayMessageScheduleCustom">businessAwayMessageScheduleCustom</a> - </li>
<li>Added <a href="/constructor/inputBusinessGreetingMessage">inputBusinessGreetingMessage</a> - </li>
<li>Added <a href="/constructor/businessGreetingMessage">businessGreetingMessage</a> - </li>
<li>Added <a href="/constructor/inputBusinessAwayMessage">inputBusinessAwayMessage</a> - </li>
<li>Added <a href="/constructor/businessAwayMessage">businessAwayMessage</a> - </li>
<li>Added <a href="/constructor/timezone">timezone</a> - </li>
<li>Added <a href="/constructor/help.timezonesListNotModified">help.timezonesListNotModified</a> - </li>
<li>Added <a href="/constructor/help.timezonesList">help.timezonesList</a> - </li>
<li>Added <a href="/constructor/quickReply">quickReply</a> - </li>
<li>Added <a href="/constructor/inputQuickReplyShortcut">inputQuickReplyShortcut</a> - </li>
<li>Added <a href="/constructor/inputQuickReplyShortcutId">inputQuickReplyShortcutId</a> - </li>
<li>Added <a href="/constructor/messages.quickReplies">messages.quickReplies</a> - </li>
<li>Added <a href="/constructor/messages.quickRepliesNotModified">messages.quickRepliesNotModified</a> - </li>
<li>Added <a href="/constructor/updateQuickReplies">updateQuickReplies</a> - </li>
<li>Added <a href="/constructor/updateNewQuickReply">updateNewQuickReply</a> - </li>
<li>Added <a href="/constructor/updateDeleteQuickReply">updateDeleteQuickReply</a> - </li>
<li>Added <a href="/constructor/updateQuickReplyMessage">updateQuickReplyMessage</a> - </li>
<li>Added <a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a> - </li>
<li>Added <a href="/constructor/connectedBot">connectedBot</a> - </li>
<li>Added <a href="/constructor/account.connectedBots">account.connectedBots</a> - </li>
<li>Added <a href="/constructor/messages.dialogFilters">messages.dialogFilters</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>quick_reply_shortcut_id</strong> parameter in <a href="/constructor/message">message</a></li>
<li>Added <strong>flags2</strong>, <strong>business_work_hours</strong>, <strong>business_location</strong>, <strong>business_greeting_message</strong>, <strong>business_away_message</strong> parameters in <a href="/constructor/userFull">userFull</a></li>
<li>Added <strong>color</strong> parameter in <a href="/constructor/dialogFilter">dialogFilter</a></li>
<li>Added <strong>color</strong> parameter in <a href="/constructor/dialogFilterChatlist">dialogFilterChatlist</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/message">message</a>#a66c7efc flags:<a href="/type/%23">#</a> out:flags.1?<a href="/constructor/true">true</a> mentioned:flags.4?<a href="/constructor/true">true</a> media_unread:flags.5?<a href="/constructor/true">true</a> silent:flags.13?<a href="/constructor/true">true</a> post:flags.14?<a href="/constructor/true">true</a> from_scheduled:flags.18?<a href="/constructor/true">true</a> legacy:flags.19?<a href="/constructor/true">true</a> edit_hide:flags.21?<a href="/constructor/true">true</a> pinned:flags.24?<a href="/constructor/true">true</a> noforwards:flags.26?<a href="/constructor/true">true</a> invert_media:flags.27?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> from_id:flags.8?<a href="/type/Peer">Peer</a> from_boosts_applied:flags.29?<a href="/type/int">int</a> peer_id:<a href="/type/Peer">Peer</a> saved_peer_id:flags.28?<a href="/type/Peer">Peer</a> fwd_from:flags.2?<a href="/type/MessageFwdHeader">MessageFwdHeader</a> via_bot_id:flags.11?<a href="/type/long">long</a> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> date:<a href="/type/int">int</a> message:<a href="/type/string">string</a> media:flags.9?<a href="/type/MessageMedia">MessageMedia</a> reply_markup:flags.6?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.7?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; views:flags.10?<a href="/type/int">int</a> forwards:flags.10?<a href="/type/int">int</a> replies:flags.23?<a href="/type/MessageReplies">MessageReplies</a> edit_date:flags.15?<a href="/type/int">int</a> post_author:flags.16?<a href="/type/string">string</a> grouped_id:flags.17?<a href="/type/long">long</a> reactions:flags.20?<a href="/type/MessageReactions">MessageReactions</a> restriction_reason:flags.22?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; ttl_period:flags.25?<a href="/type/int">int</a> quick_reply_shortcut_id:flags.30?<a href="/type/int">int</a> = <a href="/type/Message">Message</a>;<br>
<a href="/constructor/userFull">userFull</a>#22ff3e85 flags:<a href="/type/%23">#</a> blocked:flags.0?<a href="/constructor/true">true</a> phone_calls_available:flags.4?<a href="/constructor/true">true</a> phone_calls_private:flags.5?<a href="/constructor/true">true</a> can_pin_message:flags.7?<a href="/constructor/true">true</a> has_scheduled:flags.12?<a href="/constructor/true">true</a> video_calls_available:flags.13?<a href="/constructor/true">true</a> voice_messages_forbidden:flags.20?<a href="/constructor/true">true</a> translations_disabled:flags.23?<a href="/constructor/true">true</a> stories_pinned_available:flags.26?<a href="/constructor/true">true</a> blocked_my_stories_from:flags.27?<a href="/constructor/true">true</a> wallpaper_overridden:flags.28?<a href="/constructor/true">true</a> contact_require_premium:flags.29?<a href="/constructor/true">true</a> read_dates_private:flags.30?<a href="/constructor/true">true</a> flags2:<a href="/type/%23">#</a> id:<a href="/type/long">long</a> about:flags.1?<a href="/type/string">string</a> settings:<a href="/type/PeerSettings">PeerSettings</a> personal_photo:flags.21?<a href="/type/Photo">Photo</a> profile_photo:flags.2?<a href="/type/Photo">Photo</a> fallback_photo:flags.22?<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> bot_info:flags.3?<a href="/type/BotInfo">BotInfo</a> pinned_msg_id:flags.6?<a href="/type/int">int</a> common_chats_count:<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> ttl_period:flags.14?<a href="/type/int">int</a> theme_emoticon:flags.15?<a href="/type/string">string</a> private_forward_name:flags.16?<a href="/type/string">string</a> bot_group_admin_rights:flags.17?<a href="/type/ChatAdminRights">ChatAdminRights</a> bot_broadcast_admin_rights:flags.18?<a href="/type/ChatAdminRights">ChatAdminRights</a> premium_gifts:flags.19?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PremiumGiftOption">PremiumGiftOption</a>&gt; wallpaper:flags.24?<a href="/type/WallPaper">WallPaper</a> stories:flags.25?<a href="/type/PeerStories">PeerStories</a> business_work_hours:flags2.0?<a href="/type/BusinessWorkHours">BusinessWorkHours</a> business_location:flags2.1?<a href="/type/BusinessLocation">BusinessLocation</a> business_greeting_message:flags2.2?<a href="/type/BusinessGreetingMessage">BusinessGreetingMessage</a> business_away_message:flags2.3?<a href="/type/BusinessAwayMessage">BusinessAwayMessage</a> = <a href="/type/UserFull">UserFull</a>;<br>
<a href="/constructor/dialogFilter">dialogFilter</a>#5fb5523b flags:<a href="/type/%23">#</a> contacts:flags.0?<a href="/constructor/true">true</a> non_contacts:flags.1?<a href="/constructor/true">true</a> groups:flags.2?<a href="/constructor/true">true</a> broadcasts:flags.3?<a href="/constructor/true">true</a> bots:flags.4?<a href="/constructor/true">true</a> exclude_muted:flags.11?<a href="/constructor/true">true</a> exclude_read:flags.12?<a href="/constructor/true">true</a> exclude_archived:flags.13?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> title:<a href="/type/string">string</a> emoticon:flags.25?<a href="/type/string">string</a> color:flags.27?<a href="/type/int">int</a> pinned_peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPeer">InputPeer</a>&gt; include_peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPeer">InputPeer</a>&gt; exclude_peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPeer">InputPeer</a>&gt; = <a href="/type/DialogFilter">DialogFilter</a>;
<a href="/constructor/dialogFilterChatlist">dialogFilterChatlist</a>#9fe28ea4 flags:<a href="/type/%23">#</a> has_my_invites:flags.26?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> title:<a href="/type/string">string</a> emoticon:flags.25?<a href="/type/string">string</a> color:flags.27?<a href="/type/int">int</a> pinned_peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPeer">InputPeer</a>&gt; include_peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPeer">InputPeer</a>&gt; = <a href="/type/DialogFilter">DialogFilter</a>;<br>
<a href="/constructor/smsjobs.eligibleToJoin">smsjobs.eligibleToJoin</a>#dc8b44cf terms_url:<a href="/type/string">string</a> monthly_sent_sms:<a href="/type/int">int</a> = <a href="/type/smsjobs.EligibilityToJoin">smsjobs.EligibilityToJoin</a>;
<a href="/constructor/smsjobs.status">smsjobs.status</a>#2aee9191 flags:<a href="/type/%23">#</a> allow_international:flags.0?<a href="/constructor/true">true</a> recent_sent:<a href="/type/int">int</a> recent_since:<a href="/type/int">int</a> recent_remains:<a href="/type/int">int</a> total_sent:<a href="/type/int">int</a> total_since:<a href="/type/int">int</a> last_gift_slug:flags.1?<a href="/type/string">string</a> terms_url:<a href="/type/string">string</a> = <a href="/type/smsjobs.Status">smsjobs.Status</a>;<br>
<a href="/constructor/updateSmsJob">updateSmsJob</a>#f16269d4 job_id:<a href="/type/string">string</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/smsJob">smsJob</a>#e6a1eeb8 job_id:<a href="/type/string">string</a> phone_number:<a href="/type/string">string</a> text:<a href="/type/string">string</a> = <a href="/type/SmsJob">SmsJob</a>;<br>
<a href="/constructor/businessWeeklyOpen">businessWeeklyOpen</a>#120b1ab9 start_minute:<a href="/type/int">int</a> end_minute:<a href="/type/int">int</a> = <a href="/type/BusinessWeeklyOpen">BusinessWeeklyOpen</a>;
<a href="/constructor/businessWorkHours">businessWorkHours</a>#8c92b098 flags:<a href="/type/%23">#</a> open_now:flags.0?<a href="/constructor/true">true</a> timezone_id:<a href="/type/string">string</a> weekly_open:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BusinessWeeklyOpen">BusinessWeeklyOpen</a>&gt; = <a href="/type/BusinessWorkHours">BusinessWorkHours</a>;
<a href="/constructor/businessLocation">businessLocation</a>#ac5c1af7 flags:<a href="/type/%23">#</a> geo_point:flags.0?<a href="/type/GeoPoint">GeoPoint</a> address:<a href="/type/string">string</a> = <a href="/type/BusinessLocation">BusinessLocation</a>;<br>
<a href="/constructor/inputBusinessRecipients">inputBusinessRecipients</a>#6f8b32aa flags:<a href="/type/%23">#</a> existing_chats:flags.0?<a href="/constructor/true">true</a> new_chats:flags.1?<a href="/constructor/true">true</a> contacts:flags.2?<a href="/constructor/true">true</a> non_contacts:flags.3?<a href="/constructor/true">true</a> exclude_selected:flags.5?<a href="/constructor/true">true</a> users:flags.4?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputUser">InputUser</a>&gt; = <a href="/type/InputBusinessRecipients">InputBusinessRecipients</a>;<br>
<a href="/constructor/businessRecipients">businessRecipients</a>#21108ff7 flags:<a href="/type/%23">#</a> existing_chats:flags.0?<a href="/constructor/true">true</a> new_chats:flags.1?<a href="/constructor/true">true</a> contacts:flags.2?<a href="/constructor/true">true</a> non_contacts:flags.3?<a href="/constructor/true">true</a> exclude_selected:flags.5?<a href="/constructor/true">true</a> users:flags.4?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; = <a href="/type/BusinessRecipients">BusinessRecipients</a>;
<a href="/constructor/businessAwayMessageScheduleAlways">businessAwayMessageScheduleAlways</a>#c9b9e2b9 = <a href="/type/BusinessAwayMessageSchedule">BusinessAwayMessageSchedule</a>;
<a href="/constructor/businessAwayMessageScheduleOutsideWorkHours">businessAwayMessageScheduleOutsideWorkHours</a>#c3f2f501 = <a href="/type/BusinessAwayMessageSchedule">BusinessAwayMessageSchedule</a>;
<a href="/constructor/businessAwayMessageScheduleCustom">businessAwayMessageScheduleCustom</a>#cc4d9ecc start_date:<a href="/type/int">int</a> end_date:<a href="/type/int">int</a> = <a href="/type/BusinessAwayMessageSchedule">BusinessAwayMessageSchedule</a>;<br>
<a href="/constructor/inputBusinessGreetingMessage">inputBusinessGreetingMessage</a>#0194cb3b shortcut_id:<a href="/type/int">int</a> recipients:<a href="/type/InputBusinessRecipients">InputBusinessRecipients</a> no_activity_days:<a href="/type/int">int</a> = <a href="/type/InputBusinessGreetingMessage">InputBusinessGreetingMessage</a>;<br>
<a href="/constructor/businessGreetingMessage">businessGreetingMessage</a>#e519abab shortcut_id:<a href="/type/int">int</a> recipients:<a href="/type/BusinessRecipients">BusinessRecipients</a> no_activity_days:<a href="/type/int">int</a> = <a href="/type/BusinessGreetingMessage">BusinessGreetingMessage</a>;<br>
<a href="/constructor/inputBusinessAwayMessage">inputBusinessAwayMessage</a>#832175e0 flags:<a href="/type/%23">#</a> offline_only:flags.0?<a href="/constructor/true">true</a> shortcut_id:<a href="/type/int">int</a> schedule:<a href="/type/BusinessAwayMessageSchedule">BusinessAwayMessageSchedule</a> recipients:<a href="/type/InputBusinessRecipients">InputBusinessRecipients</a> = <a href="/type/InputBusinessAwayMessage">InputBusinessAwayMessage</a>;<br>
<a href="/constructor/businessAwayMessage">businessAwayMessage</a>#ef156a5c flags:<a href="/type/%23">#</a> offline_only:flags.0?<a href="/constructor/true">true</a> shortcut_id:<a href="/type/int">int</a> schedule:<a href="/type/BusinessAwayMessageSchedule">BusinessAwayMessageSchedule</a> recipients:<a href="/type/BusinessRecipients">BusinessRecipients</a> = <a href="/type/BusinessAwayMessage">BusinessAwayMessage</a>;<br>
<a href="/constructor/timezone">timezone</a>#ff9289f5 id:<a href="/type/string">string</a> name:<a href="/type/string">string</a> utc_offset:<a href="/type/int">int</a> = <a href="/type/Timezone">Timezone</a>;<br>
<a href="/constructor/help.timezonesListNotModified">help.timezonesListNotModified</a>#970708cc = <a href="/type/help.TimezonesList">help.TimezonesList</a>;
<a href="/constructor/help.timezonesList">help.timezonesList</a>#7b74ed71 timezones:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Timezone">Timezone</a>&gt; hash:<a href="/type/int">int</a> = <a href="/type/help.TimezonesList">help.TimezonesList</a>;<br>
<a href="/constructor/quickReply">quickReply</a>#0697102b shortcut_id:<a href="/type/int">int</a> shortcut:<a href="/type/string">string</a> top_message:<a href="/type/int">int</a> count:<a href="/type/int">int</a> = <a href="/type/QuickReply">QuickReply</a>;<br>
<a href="/constructor/inputQuickReplyShortcut">inputQuickReplyShortcut</a>#24596d41 shortcut:<a href="/type/string">string</a> = <a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a>;
<a href="/constructor/inputQuickReplyShortcutId">inputQuickReplyShortcutId</a>#01190cf1 shortcut_id:<a href="/type/int">int</a> = <a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a>;<br>
<a href="/constructor/messages.quickReplies">messages.quickReplies</a>#c68d6695 quick_replies:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/QuickReply">QuickReply</a>&gt; messages:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Message">Message</a>&gt; chats:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/messages.QuickReplies">messages.QuickReplies</a>;
<a href="/constructor/messages.quickRepliesNotModified">messages.quickRepliesNotModified</a>#5f91eb5b = <a href="/type/messages.QuickReplies">messages.QuickReplies</a>;<br>
<a href="/constructor/updateQuickReplies">updateQuickReplies</a>#f9470ab2 quick_replies:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/QuickReply">QuickReply</a>&gt; = <a href="/type/Update">Update</a>;
<a href="/constructor/updateNewQuickReply">updateNewQuickReply</a>#f53da717 quick_reply:<a href="/type/QuickReply">QuickReply</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateDeleteQuickReply">updateDeleteQuickReply</a>#53e6f1ec shortcut_id:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateQuickReplyMessage">updateQuickReplyMessage</a>#3e050d0f message:<a href="/type/Message">Message</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a>#566fe7cd shortcut_id:<a href="/type/int">int</a> messages:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/connectedBot">connectedBot</a>#e7e999e7 flags:<a href="/type/%23">#</a> can_reply:flags.0?<a href="/constructor/true">true</a> bot_id:<a href="/type/long">long</a> recipients:<a href="/type/BusinessRecipients">BusinessRecipients</a> = <a href="/type/ConnectedBot">ConnectedBot</a>;<br>
<a href="/constructor/account.connectedBots">account.connectedBots</a>#17d7f87b connected_bots:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/ConnectedBot">ConnectedBot</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/account.ConnectedBots">account.ConnectedBots</a>;<br>
<a href="/constructor/messages.dialogFilters">messages.dialogFilters</a>#2ad93719 flags:<a href="/type/%23">#</a> tags_enabled:flags.0?<a href="/constructor/true">true</a> filters:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/DialogFilter">DialogFilter</a>&gt; = <a href="/type/messages.DialogFilters">messages.DialogFilters</a>;<br>
---functions---<br>
<a href="/method/messages.sendMessage">messages.sendMessage</a>#dff8042c flags:<a href="/type/%23">#</a> no_webpage:flags.1?<a href="/constructor/true">true</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> update_stickersets_order:flags.15?<a href="/constructor/true">true</a> invert_media:flags.16?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to:flags.0?<a href="/type/InputReplyTo">InputReplyTo</a> message:<a href="/type/string">string</a> random_id:<a href="/type/long">long</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> quick_reply_shortcut:flags.17?<a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.sendMedia">messages.sendMedia</a>#7bd66041 flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> update_stickersets_order:flags.15?<a href="/constructor/true">true</a> invert_media:flags.16?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to:flags.0?<a href="/type/InputReplyTo">InputReplyTo</a> media:<a href="/type/InputMedia">InputMedia</a> message:<a href="/type/string">string</a> random_id:<a href="/type/long">long</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> quick_reply_shortcut:flags.17?<a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.forwardMessages">messages.forwardMessages</a>#d5039208 flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> with_my_score:flags.8?<a href="/constructor/true">true</a> drop_author:flags.11?<a href="/constructor/true">true</a> drop_media_captions:flags.12?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> from_peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; random_id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; to_peer:<a href="/type/InputPeer">InputPeer</a> top_msg_id:flags.9?<a href="/type/int">int</a> schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> quick_reply_shortcut:flags.17?<a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.sendInlineBotResult">messages.sendInlineBotResult</a>#3ebee86a flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> hide_via:flags.11?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to:flags.0?<a href="/type/InputReplyTo">InputReplyTo</a> random_id:<a href="/type/long">long</a> query_id:<a href="/type/long">long</a> id:<a href="/type/string">string</a> schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> quick_reply_shortcut:flags.17?<a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.editMessage">messages.editMessage</a>#dfd14005 flags:<a href="/type/%23">#</a> no_webpage:flags.1?<a href="/constructor/true">true</a> invert_media:flags.16?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/int">int</a> message:flags.11?<a href="/type/string">string</a> media:flags.14?<a href="/type/InputMedia">InputMedia</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; schedule_date:flags.15?<a href="/type/int">int</a> quick_reply_shortcut_id:flags.17?<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.sendMultiMedia">messages.sendMultiMedia</a>#0c964709 flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> update_stickersets_order:flags.15?<a href="/constructor/true">true</a> invert_media:flags.16?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to:flags.0?<a href="/type/InputReplyTo">InputReplyTo</a> multi_media:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputSingleMedia">InputSingleMedia</a>&gt; schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> quick_reply_shortcut:flags.17?<a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.getDialogFilters">messages.getDialogFilters</a>#efd48c89 = <a href="/type/messages.DialogFilters">messages.DialogFilters</a>;<br>
<a href="/method/smsjobs.isEligibleToJoin">smsjobs.isEligibleToJoin</a>#0edc39d0 = <a href="/type/smsjobs.EligibilityToJoin">smsjobs.EligibilityToJoin</a>;
<a href="/method/smsjobs.join">smsjobs.join</a>#a74ece2d = <a href="/type/Bool">Bool</a>;
<a href="/method/smsjobs.leave">smsjobs.leave</a>#9898ad73 = <a href="/type/Bool">Bool</a>;
<a href="/method/smsjobs.updateSettings">smsjobs.updateSettings</a>#093fa0bf flags:<a href="/type/%23">#</a> allow_international:flags.0?<a href="/constructor/true">true</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/smsjobs.getStatus">smsjobs.getStatus</a>#10a698e8 = <a href="/type/smsjobs.Status">smsjobs.Status</a>;
<a href="/method/smsjobs.getSmsJob">smsjobs.getSmsJob</a>#778d902f job_id:<a href="/type/string">string</a> = <a href="/type/SmsJob">SmsJob</a>;
<a href="/method/smsjobs.finishJob">smsjobs.finishJob</a>#4f1ebf24 flags:<a href="/type/%23">#</a> job_id:<a href="/type/string">string</a> error:flags.0?<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/help.getTimezonesList">help.getTimezonesList</a>#49b30240 hash:<a href="/type/int">int</a> = <a href="/type/help.TimezonesList">help.TimezonesList</a>;<br>
<a href="/method/account.updateBusinessWorkHours">account.updateBusinessWorkHours</a>#4b00e066 flags:<a href="/type/%23">#</a> business_work_hours:flags.0?<a href="/type/BusinessWorkHours">BusinessWorkHours</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/account.updateBusinessLocation">account.updateBusinessLocation</a>#9e6b131a flags:<a href="/type/%23">#</a> geo_point:flags.1?<a href="/type/InputGeoPoint">InputGeoPoint</a> address:flags.0?<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/account.updateBusinessGreetingMessage">account.updateBusinessGreetingMessage</a>#66cdafc4 flags:<a href="/type/%23">#</a> message:flags.0?<a href="/type/InputBusinessGreetingMessage">InputBusinessGreetingMessage</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/account.updateBusinessAwayMessage">account.updateBusinessAwayMessage</a>#a26a7fa5 flags:<a href="/type/%23">#</a> message:flags.0?<a href="/type/InputBusinessAwayMessage">InputBusinessAwayMessage</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/messages.getQuickReplies">messages.getQuickReplies</a>#d483f2a8 hash:<a href="/type/long">long</a> = <a href="/type/messages.QuickReplies">messages.QuickReplies</a>;
<a href="/method/messages.reorderQuickReplies">messages.reorderQuickReplies</a>#60331907 order:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.checkQuickReplyShortcut">messages.checkQuickReplyShortcut</a>#f1d0fbd3 shortcut:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.editQuickReplyShortcut">messages.editQuickReplyShortcut</a>#5c003cef shortcut_id:<a href="/type/int">int</a> shortcut:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.deleteQuickReplyShortcut">messages.deleteQuickReplyShortcut</a>#3cc04740 shortcut_id:<a href="/type/int">int</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.getQuickReplyMessages">messages.getQuickReplyMessages</a>#94a495c3 flags:<a href="/type/%23">#</a> shortcut_id:<a href="/type/int">int</a> id:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; hash:<a href="/type/long">long</a> = <a href="/type/messages.Messages">messages.Messages</a>;
<a href="/method/messages.sendQuickReplyMessages">messages.sendQuickReplyMessages</a>#33153ad4 peer:<a href="/type/InputPeer">InputPeer</a> shortcut_id:<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.deleteQuickReplyMessages">messages.deleteQuickReplyMessages</a>#e105e910 shortcut_id:<a href="/type/int">int</a> id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/account.updateConnectedBot">account.updateConnectedBot</a>#9c2d527d flags:<a href="/type/%23">#</a> can_reply:flags.0?<a href="/constructor/true">true</a> deleted:flags.1?<a href="/constructor/true">true</a> bot:<a href="/type/InputUser">InputUser</a> recipients:<a href="/type/InputBusinessRecipients">InputBusinessRecipients</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/account.getConnectedBots">account.getConnectedBots</a>#4ea4c80f = <a href="/type/account.ConnectedBots">account.ConnectedBots</a>;<br>
<a href="/method/messages.toggleDialogFilterTags">messages.toggleDialogFilterTags</a>#fd2dda49 enabled:<a href="/type/Bool">Bool</a> = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-174" id="layer-174" name="layer-174"><i class="anchor-icon"></i></a><a href="/schema?layer=174">Layer 174</a></h3>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/messages.getOutboxReadDate">messages.getOutboxReadDate</a> - </li>
<li>Added <a href="/method/users.getIsPremiumRequiredToContact">users.getIsPremiumRequiredToContact</a> - </li>
<li>Added <a href="/method/channels.setBoostsToUnblockRestrictions">channels.setBoostsToUnblockRestrictions</a> - </li>
<li>Added <a href="/method/channels.setEmojiStickers">channels.setEmojiStickers</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Added <strong>flags</strong>, <strong>no_joined_notifications</strong> parameters in <a href="/method/auth.signUp">auth.signUp</a></li>
<li>Added <strong>flags</strong>, <strong>peer</strong> parameters in <a href="/method/messages.getSavedReactionTags">messages.getSavedReactionTags</a></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/outboxReadDate">outboxReadDate</a> - </li>
<li>Added <a href="/constructor/messageActionBoostApply">messageActionBoostApply</a> - </li>
<li>Added <a href="/constructor/channelAdminLogEventActionChangeEmojiStickerSet">channelAdminLogEventActionChangeEmojiStickerSet</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>from_boosts_applied</strong> parameter in <a href="/constructor/message">message</a></li>
<li>Added <strong>contact_require_premium</strong>, <strong>read_dates_private</strong> parameters in <a href="/constructor/userFull">userFull</a></li>
<li>Added <strong>flags</strong>, <strong>by_me</strong> parameters in <a href="/constructor/userStatusRecently">userStatusRecently</a></li>
<li>Added <strong>flags</strong>, <strong>by_me</strong> parameters in <a href="/constructor/userStatusLastWeek">userStatusLastWeek</a></li>
<li>Added <strong>flags</strong>, <strong>by_me</strong> parameters in <a href="/constructor/userStatusLastMonth">userStatusLastMonth</a></li>
<li>Added <strong>contact_require_premium</strong>, <strong>bot_business</strong> parameters in <a href="/constructor/user">user</a></li>
<li>Added <strong>boosts_applied</strong>, <strong>boosts_unrestrict</strong>, <strong>emojiset</strong> parameters in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>hide_read_marks</strong>, <strong>new_noncontact_peers_require_premium</strong> parameters in <a href="/constructor/globalPrivacySettings">globalPrivacySettings</a></li>
<li>Added <strong>from_id</strong> parameter in <a href="/constructor/storyItem">storyItem</a></li>
<li>Added <strong>peer</strong> parameter, removed <strong>user_id</strong> parameter in <a href="/constructor/inputReplyToStory">inputReplyToStory</a></li>
<li>Added <strong>peer</strong> parameter, removed <strong>user_id</strong> parameter in <a href="/constructor/messageReplyStoryHeader">messageReplyStoryHeader</a></li>
<li>Added <strong>group_min_level</strong> parameter in <a href="/constructor/help.peerColorOption">help.peerColorOption</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/message">message</a>#1e4c8a69 flags:<a href="/type/%23">#</a> out:flags.1?<a href="/constructor/true">true</a> mentioned:flags.4?<a href="/constructor/true">true</a> media_unread:flags.5?<a href="/constructor/true">true</a> silent:flags.13?<a href="/constructor/true">true</a> post:flags.14?<a href="/constructor/true">true</a> from_scheduled:flags.18?<a href="/constructor/true">true</a> legacy:flags.19?<a href="/constructor/true">true</a> edit_hide:flags.21?<a href="/constructor/true">true</a> pinned:flags.24?<a href="/constructor/true">true</a> noforwards:flags.26?<a href="/constructor/true">true</a> invert_media:flags.27?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> from_id:flags.8?<a href="/type/Peer">Peer</a> from_boosts_applied:flags.29?<a href="/type/int">int</a> peer_id:<a href="/type/Peer">Peer</a> saved_peer_id:flags.28?<a href="/type/Peer">Peer</a> fwd_from:flags.2?<a href="/type/MessageFwdHeader">MessageFwdHeader</a> via_bot_id:flags.11?<a href="/type/long">long</a> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> date:<a href="/type/int">int</a> message:<a href="/type/string">string</a> media:flags.9?<a href="/type/MessageMedia">MessageMedia</a> reply_markup:flags.6?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.7?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; views:flags.10?<a href="/type/int">int</a> forwards:flags.10?<a href="/type/int">int</a> replies:flags.23?<a href="/type/MessageReplies">MessageReplies</a> edit_date:flags.15?<a href="/type/int">int</a> post_author:flags.16?<a href="/type/string">string</a> grouped_id:flags.17?<a href="/type/long">long</a> reactions:flags.20?<a href="/type/MessageReactions">MessageReactions</a> restriction_reason:flags.22?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; ttl_period:flags.25?<a href="/type/int">int</a> = <a href="/type/Message">Message</a>;<br>
<a href="/constructor/userFull">userFull</a>#b9b12c6c flags:<a href="/type/%23">#</a> blocked:flags.0?<a href="/constructor/true">true</a> phone_calls_available:flags.4?<a href="/constructor/true">true</a> phone_calls_private:flags.5?<a href="/constructor/true">true</a> can_pin_message:flags.7?<a href="/constructor/true">true</a> has_scheduled:flags.12?<a href="/constructor/true">true</a> video_calls_available:flags.13?<a href="/constructor/true">true</a> voice_messages_forbidden:flags.20?<a href="/constructor/true">true</a> translations_disabled:flags.23?<a href="/constructor/true">true</a> stories_pinned_available:flags.26?<a href="/constructor/true">true</a> blocked_my_stories_from:flags.27?<a href="/constructor/true">true</a> wallpaper_overridden:flags.28?<a href="/constructor/true">true</a> contact_require_premium:flags.29?<a href="/constructor/true">true</a> read_dates_private:flags.30?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:flags.1?<a href="/type/string">string</a> settings:<a href="/type/PeerSettings">PeerSettings</a> personal_photo:flags.21?<a href="/type/Photo">Photo</a> profile_photo:flags.2?<a href="/type/Photo">Photo</a> fallback_photo:flags.22?<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> bot_info:flags.3?<a href="/type/BotInfo">BotInfo</a> pinned_msg_id:flags.6?<a href="/type/int">int</a> common_chats_count:<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> ttl_period:flags.14?<a href="/type/int">int</a> theme_emoticon:flags.15?<a href="/type/string">string</a> private_forward_name:flags.16?<a href="/type/string">string</a> bot_group_admin_rights:flags.17?<a href="/type/ChatAdminRights">ChatAdminRights</a> bot_broadcast_admin_rights:flags.18?<a href="/type/ChatAdminRights">ChatAdminRights</a> premium_gifts:flags.19?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PremiumGiftOption">PremiumGiftOption</a>&gt; wallpaper:flags.24?<a href="/type/WallPaper">WallPaper</a> stories:flags.25?<a href="/type/PeerStories">PeerStories</a> = <a href="/type/UserFull">UserFull</a>;
<a href="/constructor/userStatusRecently">userStatusRecently</a>#7b197dc8 flags:<a href="/type/%23">#</a> by_me:flags.0?<a href="/constructor/true">true</a> = <a href="/type/UserStatus">UserStatus</a>;
<a href="/constructor/userStatusLastWeek">userStatusLastWeek</a>#541a1d1a flags:<a href="/type/%23">#</a> by_me:flags.0?<a href="/constructor/true">true</a> = <a href="/type/UserStatus">UserStatus</a>;
<a href="/constructor/userStatusLastMonth">userStatusLastMonth</a>#65899777 flags:<a href="/type/%23">#</a> by_me:flags.0?<a href="/constructor/true">true</a> = <a href="/type/UserStatus">UserStatus</a>;
<a href="/constructor/user">user</a>#215c4438 flags:<a href="/type/%23">#</a> self:flags.10?<a href="/constructor/true">true</a> contact:flags.11?<a href="/constructor/true">true</a> mutual_contact:flags.12?<a href="/constructor/true">true</a> deleted:flags.13?<a href="/constructor/true">true</a> bot:flags.14?<a href="/constructor/true">true</a> bot_chat_history:flags.15?<a href="/constructor/true">true</a> bot_nochats:flags.16?<a href="/constructor/true">true</a> verified:flags.17?<a href="/constructor/true">true</a> restricted:flags.18?<a href="/constructor/true">true</a> min:flags.20?<a href="/constructor/true">true</a> bot_inline_geo:flags.21?<a href="/constructor/true">true</a> support:flags.23?<a href="/constructor/true">true</a> scam:flags.24?<a href="/constructor/true">true</a> apply_min_photo:flags.25?<a href="/constructor/true">true</a> fake:flags.26?<a href="/constructor/true">true</a> bot_attach_menu:flags.27?<a href="/constructor/true">true</a> premium:flags.28?<a href="/constructor/true">true</a> attach_menu_enabled:flags.29?<a href="/constructor/true">true</a> flags2:<a href="/type/%23">#</a> bot_can_edit:flags2.1?<a href="/constructor/true">true</a> close_friend:flags2.2?<a href="/constructor/true">true</a> stories_hidden:flags2.3?<a href="/constructor/true">true</a> stories_unavailable:flags2.4?<a href="/constructor/true">true</a> contact_require_premium:flags2.10?<a href="/constructor/true">true</a> bot_business:flags2.11?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:flags.0?<a href="/type/long">long</a> first_name:flags.1?<a href="/type/string">string</a> last_name:flags.2?<a href="/type/string">string</a> username:flags.3?<a href="/type/string">string</a> phone:flags.4?<a href="/type/string">string</a> photo:flags.5?<a href="/type/UserProfilePhoto">UserProfilePhoto</a> status:flags.6?<a href="/type/UserStatus">UserStatus</a> bot_info_version:flags.14?<a href="/type/int">int</a> restriction_reason:flags.18?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; bot_inline_placeholder:flags.19?<a href="/type/string">string</a> lang_code:flags.22?<a href="/type/string">string</a> emoji_status:flags.30?<a href="/type/EmojiStatus">EmojiStatus</a> usernames:flags2.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Username">Username</a>&gt; stories_max_id:flags2.5?<a href="/type/int">int</a> color:flags2.8?<a href="/type/PeerColor">PeerColor</a> profile_color:flags2.9?<a href="/type/PeerColor">PeerColor</a> = <a href="/type/User">User</a>;<br>
<a href="/constructor/channelFull">channelFull</a>#44c054a7 flags:<a href="/type/%23">#</a> can_view_participants:flags.3?<a href="/constructor/true">true</a> can_set_username:flags.6?<a href="/constructor/true">true</a> can_set_stickers:flags.7?<a href="/constructor/true">true</a> hidden_prehistory:flags.10?<a href="/constructor/true">true</a> can_set_location:flags.16?<a href="/constructor/true">true</a> has_scheduled:flags.19?<a href="/constructor/true">true</a> can_view_stats:flags.20?<a href="/constructor/true">true</a> blocked:flags.22?<a href="/constructor/true">true</a> flags2:<a href="/type/%23">#</a> can_delete_channel:flags2.0?<a href="/constructor/true">true</a> antispam:flags2.1?<a href="/constructor/true">true</a> participants_hidden:flags2.2?<a href="/constructor/true">true</a> translations_disabled:flags2.3?<a href="/constructor/true">true</a> stories_pinned_available:flags2.5?<a href="/constructor/true">true</a> view_forum_as_messages:flags2.6?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> participants_count:flags.0?<a href="/type/int">int</a> admins_count:flags.1?<a href="/type/int">int</a> kicked_count:flags.2?<a href="/type/int">int</a> banned_count:flags.2?<a href="/type/int">int</a> online_count:flags.13?<a href="/type/int">int</a> read_inbox_max_id:<a href="/type/int">int</a> read_outbox_max_id:<a href="/type/int">int</a> unread_count:<a href="/type/int">int</a> chat_photo:<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> exported_invite:flags.23?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> bot_info:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotInfo">BotInfo</a>&gt; migrated_from_chat_id:flags.4?<a href="/type/long">long</a> migrated_from_max_id:flags.4?<a href="/type/int">int</a> pinned_msg_id:flags.5?<a href="/type/int">int</a> stickerset:flags.8?<a href="/type/StickerSet">StickerSet</a> available_min_id:flags.9?<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> linked_chat_id:flags.14?<a href="/type/long">long</a> location:flags.15?<a href="/type/ChannelLocation">ChannelLocation</a> slowmode_seconds:flags.17?<a href="/type/int">int</a> slowmode_next_send_date:flags.18?<a href="/type/int">int</a> stats_dc:flags.12?<a href="/type/int">int</a> pts:<a href="/type/int">int</a> call:flags.21?<a href="/type/InputGroupCall">InputGroupCall</a> ttl_period:flags.24?<a href="/type/int">int</a> pending_suggestions:flags.25?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; groupcall_default_join_as:flags.26?<a href="/type/Peer">Peer</a> theme_emoticon:flags.27?<a href="/type/string">string</a> requests_pending:flags.28?<a href="/type/int">int</a> recent_requesters:flags.28?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; default_send_as:flags.29?<a href="/type/Peer">Peer</a> available_reactions:flags.30?<a href="/type/ChatReactions">ChatReactions</a> stories:flags2.4?<a href="/type/PeerStories">PeerStories</a> wallpaper:flags2.7?<a href="/type/WallPaper">WallPaper</a> boosts_applied:flags2.8?<a href="/type/int">int</a> boosts_unrestrict:flags2.9?<a href="/type/int">int</a> emojiset:flags2.10?<a href="/type/StickerSet">StickerSet</a> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/globalPrivacySettings">globalPrivacySettings</a>#734c4ccb flags:<a href="/type/%23">#</a> archive_and_mute_new_noncontact_peers:flags.0?<a href="/constructor/true">true</a> keep_archived_unmuted:flags.1?<a href="/constructor/true">true</a> keep_archived_folders:flags.2?<a href="/constructor/true">true</a> hide_read_marks:flags.3?<a href="/constructor/true">true</a> new_noncontact_peers_require_premium:flags.4?<a href="/constructor/true">true</a> = <a href="/type/GlobalPrivacySettings">GlobalPrivacySettings</a>;<br>
<a href="/constructor/storyItem">storyItem</a>#79b26a24 flags:<a href="/type/%23">#</a> pinned:flags.5?<a href="/constructor/true">true</a> public:flags.7?<a href="/constructor/true">true</a> close_friends:flags.8?<a href="/constructor/true">true</a> min:flags.9?<a href="/constructor/true">true</a> noforwards:flags.10?<a href="/constructor/true">true</a> edited:flags.11?<a href="/constructor/true">true</a> contacts:flags.12?<a href="/constructor/true">true</a> selected_contacts:flags.13?<a href="/constructor/true">true</a> out:flags.16?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> date:<a href="/type/int">int</a> from_id:flags.18?<a href="/type/Peer">Peer</a> fwd_from:flags.17?<a href="/type/StoryFwdHeader">StoryFwdHeader</a> expire_date:<a href="/type/int">int</a> caption:flags.0?<a href="/type/string">string</a> entities:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; media:<a href="/type/MessageMedia">MessageMedia</a> media_areas:flags.14?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MediaArea">MediaArea</a>&gt; privacy:flags.2?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PrivacyRule">PrivacyRule</a>&gt; views:flags.3?<a href="/type/StoryViews">StoryViews</a> sent_reaction:flags.15?<a href="/type/Reaction">Reaction</a> = <a href="/type/StoryItem">StoryItem</a>;<br>
<a href="/constructor/inputReplyToStory">inputReplyToStory</a>#5881323a peer:<a href="/type/InputPeer">InputPeer</a> story_id:<a href="/type/int">int</a> = <a href="/type/InputReplyTo">InputReplyTo</a>;<br>
<a href="/constructor/messageReplyStoryHeader">messageReplyStoryHeader</a>#0e5af939 peer:<a href="/type/Peer">Peer</a> story_id:<a href="/type/int">int</a> = <a href="/type/MessageReplyHeader">MessageReplyHeader</a>;<br>
<a href="/constructor/help.peerColorOption">help.peerColorOption</a>#adec6ebe flags:<a href="/type/%23">#</a> hidden:flags.0?<a href="/constructor/true">true</a> color_id:<a href="/type/int">int</a> colors:flags.1?<a href="/type/help.PeerColorSet">help.PeerColorSet</a> dark_colors:flags.2?<a href="/type/help.PeerColorSet">help.PeerColorSet</a> channel_min_level:flags.3?<a href="/type/int">int</a> group_min_level:flags.4?<a href="/type/int">int</a> = <a href="/type/help.PeerColorOption">help.PeerColorOption</a>;<br>
<a href="/constructor/outboxReadDate">outboxReadDate</a>#3bb842ac date:<a href="/type/int">int</a> = <a href="/type/OutboxReadDate">OutboxReadDate</a>;<br>
<a href="/constructor/messageActionBoostApply">messageActionBoostApply</a>#cc02aa6d boosts:<a href="/type/int">int</a> = <a href="/type/MessageAction">MessageAction</a>;<br>
<a href="/constructor/channelAdminLogEventActionChangeEmojiStickerSet">channelAdminLogEventActionChangeEmojiStickerSet</a>#46d840ab prev_stickerset:<a href="/type/InputStickerSet">InputStickerSet</a> new_stickerset:<a href="/type/InputStickerSet">InputStickerSet</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;<br>
---functions---<br>
<a href="/method/auth.signUp">auth.signUp</a>#aac7b717 flags:<a href="/type/%23">#</a> no_joined_notifications:flags.0?<a href="/constructor/true">true</a> phone_number:<a href="/type/string">string</a> phone_code_hash:<a href="/type/string">string</a> first_name:<a href="/type/string">string</a> last_name:<a href="/type/string">string</a> = <a href="/type/auth.Authorization">auth.Authorization</a>;<br>
<a href="/method/messages.getSavedReactionTags">messages.getSavedReactionTags</a>#3637e05b flags:<a href="/type/%23">#</a> peer:flags.0?<a href="/type/InputPeer">InputPeer</a> hash:<a href="/type/long">long</a> = <a href="/type/messages.SavedReactionTags">messages.SavedReactionTags</a>;
<a href="/method/messages.getOutboxReadDate">messages.getOutboxReadDate</a>#8c4bfe5d peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> = <a href="/type/OutboxReadDate">OutboxReadDate</a>;<br>
<a href="/method/users.getIsPremiumRequiredToContact">users.getIsPremiumRequiredToContact</a>#a622aa10 id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputUser">InputUser</a>&gt; = <a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Bool">Bool</a>&gt;;<br>
<a href="/method/channels.setBoostsToUnblockRestrictions">channels.setBoostsToUnblockRestrictions</a>#ad399cee channel:<a href="/type/InputChannel">InputChannel</a> boosts:<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/channels.setEmojiStickers">channels.setEmojiStickers</a>#3cd930b7 channel:<a href="/type/InputChannel">InputChannel</a> stickerset:<a href="/type/InputStickerSet">InputStickerSet</a> = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-171" id="layer-171" name="layer-171"><i class="anchor-icon"></i></a><a href="/schema?layer=171">Layer 171</a></h3>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/messages.getSavedReactionTags">messages.getSavedReactionTags</a> - </li>
<li>Added <a href="/method/messages.updateSavedReactionTag">messages.updateSavedReactionTag</a> - </li>
<li>Added <a href="/method/messages.getDefaultTagReactions">messages.getDefaultTagReactions</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Added <strong>saved_reaction</strong> parameter in <a href="/method/messages.search">messages.search</a></li>
<li>Added <strong>broadcasts_only</strong> parameter in <a href="/method/messages.searchGlobal">messages.searchGlobal</a></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/savedReactionTag">savedReactionTag</a> - </li>
<li>Added <a href="/constructor/messages.savedReactionTagsNotModified">messages.savedReactionTagsNotModified</a> - </li>
<li>Added <a href="/constructor/messages.savedReactionTags">messages.savedReactionTags</a> - </li>
<li>Added <a href="/constructor/updateSavedReactionTags">updateSavedReactionTags</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>reactions_as_tags</strong> parameter in <a href="/constructor/messageReactions">messageReactions</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/messageReactions">messageReactions</a>#4f2b9479 flags:<a href="/type/%23">#</a> min:flags.0?<a href="/constructor/true">true</a> can_see_list:flags.2?<a href="/constructor/true">true</a> reactions_as_tags:flags.3?<a href="/constructor/true">true</a> results:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/ReactionCount">ReactionCount</a>&gt; recent_reactions:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessagePeerReaction">MessagePeerReaction</a>&gt; = <a href="/type/MessageReactions">MessageReactions</a>;<br>
<a href="/constructor/savedReactionTag">savedReactionTag</a>#cb6ff828 flags:<a href="/type/%23">#</a> reaction:<a href="/type/Reaction">Reaction</a> title:flags.0?<a href="/type/string">string</a> count:<a href="/type/int">int</a> = <a href="/type/SavedReactionTag">SavedReactionTag</a>;<br>
<a href="/constructor/messages.savedReactionTagsNotModified">messages.savedReactionTagsNotModified</a>#889b59ef = <a href="/type/messages.SavedReactionTags">messages.SavedReactionTags</a>;
<a href="/constructor/messages.savedReactionTags">messages.savedReactionTags</a>#3259950a tags:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/SavedReactionTag">SavedReactionTag</a>&gt; hash:<a href="/type/long">long</a> = <a href="/type/messages.SavedReactionTags">messages.SavedReactionTags</a>;<br>
<a href="/constructor/updateSavedReactionTags">updateSavedReactionTags</a>#39c67432 = <a href="/type/Update">Update</a>;<br>
---functions---<br>
<a href="/method/messages.search">messages.search</a>#29ee847a flags:<a href="/type/%23">#</a> peer:<a href="/type/InputPeer">InputPeer</a> q:<a href="/type/string">string</a> from_id:flags.0?<a href="/type/InputPeer">InputPeer</a> saved_peer_id:flags.2?<a href="/type/InputPeer">InputPeer</a> saved_reaction:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Reaction">Reaction</a>&gt; top_msg_id:flags.1?<a href="/type/int">int</a> filter:<a href="/type/MessagesFilter">MessagesFilter</a> min_date:<a href="/type/int">int</a> max_date:<a href="/type/int">int</a> offset_id:<a href="/type/int">int</a> add_offset:<a href="/type/int">int</a> limit:<a href="/type/int">int</a> max_id:<a href="/type/int">int</a> min_id:<a href="/type/int">int</a> hash:<a href="/type/long">long</a> = <a href="/type/messages.Messages">messages.Messages</a>;
<a href="/method/messages.searchGlobal">messages.searchGlobal</a>#4bc6589a flags:<a href="/type/%23">#</a> broadcasts_only:flags.1?<a href="/constructor/true">true</a> folder_id:flags.0?<a href="/type/int">int</a> q:<a href="/type/string">string</a> filter:<a href="/type/MessagesFilter">MessagesFilter</a> min_date:<a href="/type/int">int</a> max_date:<a href="/type/int">int</a> offset_rate:<a href="/type/int">int</a> offset_peer:<a href="/type/InputPeer">InputPeer</a> offset_id:<a href="/type/int">int</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.Messages">messages.Messages</a>;
<a href="/method/messages.getSavedReactionTags">messages.getSavedReactionTags</a>#761ddacf hash:<a href="/type/long">long</a> = <a href="/type/messages.SavedReactionTags">messages.SavedReactionTags</a>;
<a href="/method/messages.updateSavedReactionTag">messages.updateSavedReactionTag</a>#60297dec flags:<a href="/type/%23">#</a> reaction:<a href="/type/Reaction">Reaction</a> title:flags.0?<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.getDefaultTagReactions">messages.getDefaultTagReactions</a>#bdf93428 hash:<a href="/type/long">long</a> = <a href="/type/messages.Reactions">messages.Reactions</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-170" id="layer-170" name="layer-170"><i class="anchor-icon"></i></a><a href="/schema?layer=170">Layer 170</a></h3>
<p>The following detailed articles were added:</p>
<ul>
<li><a href="/api/stories">Working with stories »</a></li>
<li><a href="/api/boost">Working with boosts »</a></li>
<li><a href="/api/giveaways">Working with giveaways »</a></li>
<li><a href="/api/colors">Working with accent colors »</a></li>
<li><a href="/api/recommend">Working with the recommendation system »</a></li>
<li><a href="/api/action-bar">Working with the action bar »</a></li>
<li><a href="/api/contacts">Working with contacts »</a></li>
<li><a href="/api/block">Working with the blocklist »</a></li>
<li><a href="/api/nearby">Working with geochats »</a></li>
<li><a href="/api/privacy">Working with privacy settings »</a></li>
<li><a href="/api/takeout">Working with the takeout API »</a></li>
<li><a href="/api/saved-messages">Working with saved messages »</a></li>
</ul>
<p>Also added documentation for <a href="/api/files#streamed-uploads">streamed uploads</a> and improved the docs for <a href="/api/invoking#sequential-requests">method queue</a>, <a href="/mtproto/mtproto-transports">quick ACKs</a> and <a href="/mtproto/description#message-sequence-number-msg-seqno">content-related messages</a>.</p>
<p>The <a href="/api/errors#error-database">RPC error database »</a> was also updated.</p>
<p>The following new deep links were added:</p>
<ul>
<li><a href="/api/links#story-links">Story links »</a></li>
<li><a href="/api/links#boost-links">Boost links »</a></li>
<li><a href="/api/links#mini-app-links">Direct mini app links »</a></li>
<li><a href="/api/links#premium-giftcode-links">Premium giftcode links »</a></li>
<li><a href="/api/links#premium-multigift-links">Premium multigift links »</a></li>
</ul>
<p>This layer introduces the <a href="/api/saved-messages">saved messages dialog list and several other saved messages improvements »</a>!</p></div>
</div>
@ -110,8 +754,11 @@
</div>
</div>
<script src="/js/main.js?47"></script>
<script>backToTopInit("Go up");
<script src="/js/jquery.min.js?1"></script>
<script src="/js/bootstrap.min.js?1"></script>
<script>window.initDevPageNav&&initDevPageNav();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>

View file

@ -53,9 +53,9 @@
<h5><a class="anchor" href="#1-client-sends-query-to-server" id="1-client-sends-query-to-server" name="1-client-sends-query-to-server"><i class="anchor-icon"></i></a>1) Client sends query to server</h5>
<!-- start req_pq_multi -->
<p>Sent payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 90 4B 0D 00 A6 8A 6D 66
0010 | 14 00 00 00 F1 8E 7E BE 20 FD E6 08 42 30 CC 5C
0020 | 8D CC F8 96 31 94 64 97</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 E0 FC 06 00 FC 8E 6D 66
0010 | 14 00 00 00 F1 8E 7E BE A0 7A 5A EC 88 BE AB B1
0020 | 21 CA 05 C7 95 47 49 57</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;</code></pre>
<table class="table">
@ -77,7 +77,7 @@
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>904B0D00A68A6D66</code></td>
<td><code>E0FC0600FC8E6D66</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -95,7 +95,7 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>20FDE6084230CC5C8DCCF89631946497</code></td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td>Random number</td>
</tr>
</tbody>
@ -104,11 +104,11 @@
<h5><a class="anchor" href="#2-server-sends-response-of-the-form" id="2-server-sends-response-of-the-form" name="2-server-sends-response-of-the-form"><i class="anchor-icon"></i></a>2) Server sends response of the form</h5>
<!-- start resPQ -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 98 3E 25 A6 8A 6D 66
0010 | 78 00 00 00 63 24 16 05 20 FD E6 08 42 30 CC 5C
0020 | 8D CC F8 96 31 94 64 97 93 28 4F B9 DD C4 95 D2
0030 | EA CD BD 8F 12 81 EC 50 08 24 4A BF 37 7B D7 6F
0040 | B7 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 08 E3 84 FC 8E 6D 66
0010 | 50 00 00 00 63 24 16 05 A0 7A 5A EC 88 BE AB B1
0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
0030 | 65 3F 46 E0 25 8F D3 07 08 25 E5 22 AD FB B3 44
0040 | 29 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
0050 | 35 5F C3 0B 21 6B E8 6C 02 2B B4 C3 85 FD 64 DE
0060 | 85 1D 9D D0</code></pre>
<p>Payload (de)serialization:</p>
@ -132,13 +132,13 @@
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>01983E25A68A6D66</code></td>
<td><code>0108E384FC8E6D66</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>78000000</code> (120 in decimal)</td>
<td><code>50000000</code> (80 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -150,19 +150,19 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>20FDE6084230CC5C8DCCF89631946497</code></td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>93284FB9DDC495D2EACDBD8F1281EC50</code></td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td>Server-generated random number</td>
</tr>
<tr>
<td>pq</td>
<td>56, 12</td>
<td><code>08244ABF377BD76FB7000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2615112778663817143</td>
<td><code>0825E522ADFBB34429000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2730626879717590057</td>
<td>Single-byte prefix denoting length, an 8-byte string, and three bytes of padding</td>
</tr>
<tr>
@ -208,22 +208,22 @@
<h4><a class="anchor" href="#proof-of-work" id="proof-of-work" name="proof-of-work"><i class="anchor-icon"></i></a>Proof of work</h4>
<h5><a class="anchor" href="#3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q" id="3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q" name="3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q"><i class="anchor-icon"></i></a>3) Client decomposes pq into prime factors such that p &lt; q.</h5>
<!-- start pq -->
<pre><code>pq = 2615112778663817143</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2615112778663817143 = 1398490957 * 1869953299</code></p>
<pre><code>p = 1398490957
q = 1869953299</code></pre>
<pre><code>pq = 2730626879717590057</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2730626879717590057 = 1558228979 * 1752391283</code></p>
<pre><code>p = 1558228979
q = 1752391283</code></pre>
<!-- end pq -->
<h4><a class="anchor" href="#presenting-proof-of-work-server-authentication" id="presenting-proof-of-work-server-authentication" name="presenting-proof-of-work-server-authentication"><i class="anchor-icon"></i></a>Presenting proof of work; Server authentication</h4>
<h5><a class="anchor" href="#4-encrypted-data-payload-generation" id="4-encrypted-data-payload-generation" name="4-encrypted-data-payload-generation"><i class="anchor-icon"></i></a>4) <code>encrypted_data</code> payload generation</h5>
<p>First of all, generate an <code>encrypted_data</code> payload as follows:</p>
<!-- start p_q_inner_data_dc -->
<p>Generated payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 95 5F F5 A9 08 24 4A BF 37 7B D7 6F B7 00 00 00
0010 | 04 53 5B 47 4D 00 00 00 04 6F 75 39 13 00 00 00
0020 | 20 FD E6 08 42 30 CC 5C 8D CC F8 96 31 94 64 97
0030 | 93 28 4F B9 DD C4 95 D2 EA CD BD 8F 12 81 EC 50
0040 | 01 DA CD 54 1E 00 A2 2D 9D B3 14 2E AE 22 3F 26
0050 | B5 E5 B3 97 2A 6F 33 D7 28 90 49 FB C0 6F 6F 88
<pre><code>0000 | 95 5F F5 A9 08 25 E5 22 AD FB B3 44 29 00 00 00
0010 | 04 5C E0 AF F3 00 00 00 04 68 73 5E 73 00 00 00
0020 | A0 7A 5A EC 88 BE AB B1 21 CA 05 C7 95 47 49 57
0030 | 9D EF AA 9F 2F 39 95 32 65 3F 46 E0 25 8F D3 07
0040 | 2F 45 8E 33 3D AB 1C 14 CD 4E 7D 8D EE D2 CD 2C
0050 | 2F B1 86 FD EC D2 DF 01 03 51 5E 79 68 F4 71 DE
0060 | 02 00 00 00</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>p_q_inner_data_dc#a9f55f95 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 dc:int = P_Q_inner_data;</code></pre>
@ -246,37 +246,37 @@ q = 1869953299</code></pre>
<tr>
<td>pq</td>
<td>4, 12</td>
<td><code>08244ABF377BD76FB7000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2615112778663817143</td>
<td><code>0825E522ADFBB34429000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2730626879717590057</td>
<td>Single-byte prefix denoting length, 8-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>p</td>
<td>16, 8</td>
<td><code>04535B474D000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1398490957</td>
<td><code>045CE0AFF3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1558228979</td>
<td>First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>q</td>
<td>24, 8</td>
<td><code>046F753913000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1869953299</td>
<td><code>0468735E73000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1752391283</td>
<td>Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>nonce</td>
<td>32, 16</td>
<td><code>20FDE6084230CC5C8DCCF89631946497</code></td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>48, 16</td>
<td><code>93284FB9DDC495D2EACDBD8F1281EC50</code></td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce</td>
<td>64, 32</td>
<td><code>01DACD541E00A22D9DB3142EAE223F26</code> <code>B5E5B3972A6F33D7289049FBC06F6F88</code></td>
<td><code>2F458E333DAB1C14CD4E7D8DEED2CD2C</code> <code>2FB186FDECD2DF0103515E7968F471DE</code></td>
<td>Client-generated random number</td>
</tr>
<tr>
@ -291,39 +291,39 @@ q = 1869953299</code></pre>
<p>The serialization of <em>P_Q_inner_data</em> produces <strong>data</strong>, which is used to generate <strong>encrypted_data</strong> as specified in <a href="/mtproto/auth_key">step 4.1</a>.<br>
These are the inputs to the algorithm specified in <a href="/mtproto/auth_key">step 4.1</a>:</p>
<!-- start p_q_inner_data_input -->
<pre><code>data = 955FF5A908244ABF377BD76FB700000004535B474D000000046F75391300000020FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5001DACD541E00A22D9DB3142EAE223F26B5E5B3972A6F33D7289049FBC06F6F8802000000
random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A529C6E2399941070B8CDBF89106E386CC21B7E3B4BD2F4769E8C1D565FF3EE5E0BA82BCA3E765FDB28938F19B128A1752A335F0A7A54208274685C1B448BE9A</code></pre>
<pre><code>data = 955FF5A90825E522ADFBB34429000000045CE0AFF30000000468735E73000000A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD3072F458E333DAB1C14CD4E7D8DEED2CD2C2FB186FDECD2DF0103515E7968F471DE02000000
random_padding_bytes = 69F4155729696E10344C0DC594D4CCF42BCCA7D9D2986865BB59055B8153EA4923521F63BFC18C699480308450D750790BB80E9C26CE18AB51356A863381F839DE6D1245686099425B593E508F00DEE92A5EDFCFD7A6CBA63C83D5F1</code></pre>
<!-- end p_q_inner_data_input -->
<p>And this is the output:</p>
<!-- start p_q_inner_data_output -->
<pre><code>encrypted_data = 52C399C4765B45332A99BFE685994E189789F5F7C01242B1CD8AE7D5279DBFBD3705D11EFB0E983FBB66C4CBA6AA3B18622D1638BD6AF10AA7609D89B879E483E2231E6EB8922A58A26C8AFB787B3A7FF64C45EFFE0C1A3902DFA9846F9E71EEC42D39002524B899C01AD2EFBBAE95483E868901164D60AD5EC3FD33643CD5CD41929CC28C4849399FC9CE55CFBBF9C6D1AA9DF1D942F7B3152EE236FE3B66AEAC8A0BF7AE03B84B7E2D5DE50F2B2958C7344189EB9F8752A4839FFA50823AA116CD4D1B6F2FB2DE35A3F505FA09990614FB0D6E1CC9326436423E5FE85741679782AD8C8248CE92AC4ED5BFF9D525A3C58099534BC1CD71C78D4EF9C83A3AB9</code></pre>
<pre><code>encrypted_data = D6D1FBBE8A517DA3887E06C3F9AB1080A545E9426501E9610AA75C004FA5270E4ECF4ACB2C7089A986BA38DDD91419FD42F3E34583693569FB885ACB7904BBECBE2217FEE22C807661773ADF9DF9A30877CCB0E88A79BABF3C8CF27372668D40DE47E2B5D63B9A12C35E9CA71BC6183866527A23CC6465EDB638F9528D0E672914EF3BED810B96CB202E5C8C074503F84D7FB616A0B52F793AD56D9AEA65179F3F18A6AE10A79925D95B68664525681172E721FB514C920C25AF9EB9E513BB9C16C2E1BCAF5AAE8CFC75649B44E8E0214F31C252BB6D5344B972CE39CB1B55F02D011AB29B1735915C861AB70A7FD3B853574A0F4106D6954D7E221282AF19AD</code></pre>
<!-- end p_q_inner_data_output -->
<p>The length of the final string is 256 bytes.</p>
<h5><a class="anchor" href="#5-send-req-dh-params-query-with-generated-encrypted-data" id="5-send-req-dh-params-query-with-generated-encrypted-data" name="5-send-req-dh-params-query-with-generated-encrypted-data"><i class="anchor-icon"></i></a>5) Send req_DH_params query with generated <code>encrypted_data</code></h5>
<!-- start req_DH_params -->
<p>Sent payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 94 4B 0D 00 A6 8A 6D 66
0010 | 40 01 00 00 BE E4 12 D7 20 FD E6 08 42 30 CC 5C
0020 | 8D CC F8 96 31 94 64 97 93 28 4F B9 DD C4 95 D2
0030 | EA CD BD 8F 12 81 EC 50 04 53 5B 47 4D 00 00 00
0040 | 04 6F 75 39 13 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 52 C3 99 C4 76 5B 45 33 2A 99 BF E6
0060 | 85 99 4E 18 97 89 F5 F7 C0 12 42 B1 CD 8A E7 D5
0070 | 27 9D BF BD 37 05 D1 1E FB 0E 98 3F BB 66 C4 CB
0080 | A6 AA 3B 18 62 2D 16 38 BD 6A F1 0A A7 60 9D 89
0090 | B8 79 E4 83 E2 23 1E 6E B8 92 2A 58 A2 6C 8A FB
00A0 | 78 7B 3A 7F F6 4C 45 EF FE 0C 1A 39 02 DF A9 84
00B0 | 6F 9E 71 EE C4 2D 39 00 25 24 B8 99 C0 1A D2 EF
00C0 | BB AE 95 48 3E 86 89 01 16 4D 60 AD 5E C3 FD 33
00D0 | 64 3C D5 CD 41 92 9C C2 8C 48 49 39 9F C9 CE 55
00E0 | CF BB F9 C6 D1 AA 9D F1 D9 42 F7 B3 15 2E E2 36
00F0 | FE 3B 66 AE AC 8A 0B F7 AE 03 B8 4B 7E 2D 5D E5
0100 | 0F 2B 29 58 C7 34 41 89 EB 9F 87 52 A4 83 9F FA
0110 | 50 82 3A A1 16 CD 4D 1B 6F 2F B2 DE 35 A3 F5 05
0120 | FA 09 99 06 14 FB 0D 6E 1C C9 32 64 36 42 3E 5F
0130 | E8 57 41 67 97 82 AD 8C 82 48 CE 92 AC 4E D5 BF
0140 | F9 D5 25 A3 C5 80 99 53 4B C1 CD 71 C7 8D 4E F9
0150 | C8 3A 3A B9</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 E4 FC 06 00 FC 8E 6D 66
0010 | 40 01 00 00 BE E4 12 D7 A0 7A 5A EC 88 BE AB B1
0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
0030 | 65 3F 46 E0 25 8F D3 07 04 5C E0 AF F3 00 00 00
0040 | 04 68 73 5E 73 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 D6 D1 FB BE 8A 51 7D A3 88 7E 06 C3
0060 | F9 AB 10 80 A5 45 E9 42 65 01 E9 61 0A A7 5C 00
0070 | 4F A5 27 0E 4E CF 4A CB 2C 70 89 A9 86 BA 38 DD
0080 | D9 14 19 FD 42 F3 E3 45 83 69 35 69 FB 88 5A CB
0090 | 79 04 BB EC BE 22 17 FE E2 2C 80 76 61 77 3A DF
00A0 | 9D F9 A3 08 77 CC B0 E8 8A 79 BA BF 3C 8C F2 73
00B0 | 72 66 8D 40 DE 47 E2 B5 D6 3B 9A 12 C3 5E 9C A7
00C0 | 1B C6 18 38 66 52 7A 23 CC 64 65 ED B6 38 F9 52
00D0 | 8D 0E 67 29 14 EF 3B ED 81 0B 96 CB 20 2E 5C 8C
00E0 | 07 45 03 F8 4D 7F B6 16 A0 B5 2F 79 3A D5 6D 9A
00F0 | EA 65 17 9F 3F 18 A6 AE 10 A7 99 25 D9 5B 68 66
0100 | 45 25 68 11 72 E7 21 FB 51 4C 92 0C 25 AF 9E B9
0110 | E5 13 BB 9C 16 C2 E1 BC AF 5A AE 8C FC 75 64 9B
0120 | 44 E8 E0 21 4F 31 C2 52 BB 6D 53 44 B9 72 CE 39
0130 | CB 1B 55 F0 2D 01 1A B2 9B 17 35 91 5C 86 1A B7
0140 | 0A 7F D3 B8 53 57 4A 0F 41 06 D6 95 4D 7E 22 12
0150 | 82 AF 19 AD</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;</code></pre>
<table class="table">
@ -345,7 +345,7 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>944B0D00A68A6D66</code></td>
<td><code>E4FC0600FC8E6D66</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -363,25 +363,25 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>20FDE6084230CC5C8DCCF89631946497</code></td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>93284FB9DDC495D2EACDBD8F1281EC50</code></td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>p</td>
<td>56, 8</td>
<td><code>04535B474D000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1398490957</td>
<td><code>045CE0AFF3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1558228979</td>
<td>First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>q</td>
<td>64, 8</td>
<td><code>046F753913000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1869953299</td>
<td><code>0468735E73000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1752391283</td>
<td>Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
@ -393,7 +393,7 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A
<tr>
<td>encrypted_data</td>
<td>80, 260</td>
<td><code>FE00010052C399C4765B45332A99BFE6</code> <code>85994E189789F5F7C01242B1CD8AE7D5</code> <code>279DBFBD3705D11EFB0E983FBB66C4CB</code> <code>A6AA3B18622D1638BD6AF10AA7609D89</code> <code>B879E483E2231E6EB8922A58A26C8AFB</code> <code>787B3A7FF64C45EFFE0C1A3902DFA984</code> <code>6F9E71EEC42D39002524B899C01AD2EF</code> <code>BBAE95483E868901164D60AD5EC3FD33</code> <code>643CD5CD41929CC28C4849399FC9CE55</code> <code>CFBBF9C6D1AA9DF1D942F7B3152EE236</code> <code>FE3B66AEAC8A0BF7AE03B84B7E2D5DE5</code> <code>0F2B2958C7344189EB9F8752A4839FFA</code> <code>50823AA116CD4D1B6F2FB2DE35A3F505</code> <code>FA09990614FB0D6E1CC9326436423E5F</code> <code>E85741679782AD8C8248CE92AC4ED5BF</code> <code>F9D525A3C58099534BC1CD71C78D4EF9</code><br> <code>C83A3AB9</code></td>
<td><code>FE000100D6D1FBBE8A517DA3887E06C3</code> <code>F9AB1080A545E9426501E9610AA75C00</code> <code>4FA5270E4ECF4ACB2C7089A986BA38DD</code> <code>D91419FD42F3E34583693569FB885ACB</code> <code>7904BBECBE2217FEE22C807661773ADF</code> <code>9DF9A30877CCB0E88A79BABF3C8CF273</code> <code>72668D40DE47E2B5D63B9A12C35E9CA7</code> <code>1BC6183866527A23CC6465EDB638F952</code> <code>8D0E672914EF3BED810B96CB202E5C8C</code> <code>074503F84D7FB616A0B52F793AD56D9A</code> <code>EA65179F3F18A6AE10A79925D95B6866</code> <code>4525681172E721FB514C920C25AF9EB9</code> <code>E513BB9C16C2E1BCAF5AAE8CFC75649B</code> <code>44E8E0214F31C252BB6D5344B972CE39</code> <code>CB1B55F02D011AB29B1735915C861AB7</code> <code>0A7FD3B853574A0F4106D6954D7E2212</code><br> <code>82AF19AD</code></td>
<td>Value generated above</td>
</tr>
</tbody>
@ -402,47 +402,47 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A
<h5><a class="anchor" href="#6-server-responds-with" id="6-server-responds-with" name="6-server-responds-with"><i class="anchor-icon"></i></a>6) Server responds with:</h5>
<!-- start server_DH_params_ok -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 98 81 E0 A6 8A 6D 66
0010 | C4 02 00 00 5C 07 E8 D0 20 FD E6 08 42 30 CC 5C
0020 | 8D CC F8 96 31 94 64 97 93 28 4F B9 DD C4 95 D2
0030 | EA CD BD 8F 12 81 EC 50 FE 50 02 00 C2 F0 09 F2
0040 | 34 3E F7 E5 17 DA 94 B2 3D D1 2C 3C 0B 25 A1 DA
0050 | BE 97 2E 96 21 E2 8B D6 2D F7 46 0E 1E 3C DB 02
0060 | A2 76 64 86 DC 9F B6 CD 01 D5 64 49 AA 85 5E A1
0070 | EC 8D AB 9F A7 47 83 2E CA 34 25 D9 EC FC 7E DE
0080 | FA 9E 17 AC 8F D9 A2 8E CD 18 DB 92 C4 42 A7 4A
0090 | 2A 8F E5 2F F3 88 E5 77 37 08 6F E3 24 77 3E 73
00A0 | E6 A5 B3 60 2D BB A1 C6 89 54 29 96 C2 72 DF F3
00B0 | E5 70 48 C6 46 49 2E 82 F7 54 6A F8 CE 7C 71 42
00C0 | 19 C2 33 35 55 93 F3 50 3C E7 E2 8D 13 D1 87 FE
00D0 | 0C E0 7D 90 B2 E9 00 B2 D0 16 45 46 A2 99 B6 1A
00E0 | F4 37 91 1F 1E 3A 68 92 45 F1 77 47 71 08 81 D8
00F0 | 7A D5 FB 2E 9F F8 52 DE 02 7B 8D 3B A6 3E 4D 3B
0100 | 16 7B B3 3C DD 88 56 3C 20 DF 47 39 47 0F 5F 14
0110 | 9F 7C 5B FD 6E CE 07 B7 59 C7 D3 07 B8 56 7F A5
0120 | 50 7D 6C 32 6B 0D 82 A8 90 E3 4B 30 9B B4 34 55
0130 | 2A A5 E6 78 50 83 98 C1 B0 0C C6 53 AB 4C 04 BE
0140 | 80 63 77 E1 F6 58 19 10 5B D0 6B D2 71 03 07 82
0150 | 52 A9 1B 10 63 B4 A2 9B 01 15 81 47 E5 44 A9 C7
0160 | C2 38 27 75 A1 99 AE F1 75 CF 05 6B 57 7E 21 59
0170 | F0 A7 5D 0A 2B 12 14 CB 94 2B 67 BD 82 EE DA 8C
0180 | 64 C1 6C 08 0E 49 C5 39 88 B4 7A F6 95 CB 94 51
0190 | 94 72 E3 72 D7 B9 30 71 67 C2 F2 A7 F8 3D F5 32
01A0 | 01 9D BD 55 AB A4 AB 09 21 A2 D4 45 A1 32 77 E4
01B0 | C9 76 37 C2 21 87 DA E7 51 DB 74 AF CF 59 78 C2
01C0 | C8 64 D3 0F 2B 6F 09 C5 5C 6A A0 CF 5F 53 8C F6
01D0 | 71 C3 A8 18 5A 26 EE BA B9 DC D2 73 32 39 A4 0C
01E0 | 30 D2 28 F9 4F 97 11 8A 67 1C 09 1D 05 F8 CB 81
01F0 | 78 9D 8B 0C 79 AF 38 E9 2E 89 72 97 64 74 89 14
0200 | 74 54 87 AC 8E 2A 7B 0C CE 91 7F 12 F9 BD 2A F4
0210 | F4 C3 84 92 2A 16 1E 8A 01 AD 18 10 AC 96 F9 9D
0220 | 20 17 3E 30 6C AC 4D F2 49 B1 43 6F 4F F6 54 E5
0230 | 02 E1 24 88 51 28 AE EE 23 63 9F D6 BD CA BD A8
0240 | C2 4E F4 61 72 FE 56 38 32 AA B0 F9 BF F0 D2 B6
0250 | DA 29 25 98 0D 22 FD A4 8F 4C FC BA 77 A1 E0 4E
0260 | E5 0D CE DB 4D 8B 5C 0C 1A 3F A7 43 AA 22 89 02
0270 | A6 C4 ED 47 24 F6 92 72 F9 A1 91 ED BF D1 CF E9
0280 | 17 77 83 23 59 D6 94 CB DB 90 74 7F</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 B0 27 29 FD 8E 6D 66
0010 | 9C 02 00 00 5C 07 E8 D0 A0 7A 5A EC 88 BE AB B1
0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
0030 | 65 3F 46 E0 25 8F D3 07 FE 50 02 00 AA 13 E4 A4
0040 | F4 81 E8 04 DA F0 18 5A 90 C9 2B F2 0F 4A E4 7A
0050 | 19 CA B4 8F 84 9F AD F6 32 7F 74 AB 2D B5 AC 6D
0060 | 42 7B 0E 52 04 D0 7B 94 9E 97 C8 D9 2E 87 63 8A
0070 | 32 B3 89 1E 5C 99 FA 1E F1 13 96 45 5F FB 9A 43
0080 | 44 88 7F 46 20 12 24 49 FE DD 54 4A 37 BE F6 33
0090 | F1 AC 24 8E BA 11 53 BE 74 29 D1 17 EA 4E 75 30
00A0 | 6D BE 5B 3A A9 34 89 57 9B 9B 38 D1 55 36 32 77
00B0 | B9 25 F3 BB E4 F7 1B 48 75 46 8A DA 56 9F 08 7E
00C0 | 9C F1 94 03 D8 29 8A 32 1C 80 BE D8 80 F6 F0 0E
00D0 | 3E 6E C2 BA A6 22 03 41 49 DF 75 70 0E 9D 64 B1
00E0 | F1 B3 5E 55 E7 DE 8E 86 EB 27 A4 7E AF 0C B0 D8
00F0 | 4D 16 35 CB 83 77 76 A9 6F D6 08 C4 20 6F E3 FB
0100 | 0C 8D 2F 57 05 7A 31 D3 5B C2 F8 13 36 74 F4 37
0110 | 52 3B 46 D9 8D 1C 31 92 C6 76 EE 3E CA 5F AA 67
0120 | 5F 64 74 73 07 E0 31 71 1F 3C 90 49 89 72 B9 54
0130 | 84 9D 1D AE 50 6C 3E B1 27 F4 CC 1D CD E3 F8 DA
0140 | 56 5B 9B C5 83 25 35 B2 2C 86 9D F8 5A 1A B6 01
0150 | E5 67 A4 96 91 96 51 41 C4 D2 09 A4 C0 9E AE DC
0160 | A3 ED CC 9B 9E 14 20 FC B1 F6 BE 14 FB 92 42 E6
0170 | BD AA 52 D9 21 19 8B 8B EA 42 20 EE 1B 42 9C 30
0180 | 38 48 DE 6A 66 19 B6 FC 1A 13 C6 A2 EA 37 83 33
0190 | C0 56 D7 F9 0C 0F BD 83 38 6F C5 DB AB E6 64 6D
01A0 | 95 B0 42 71 58 42 84 88 8D A7 4C 55 8D B5 B0 C7
01B0 | CB 59 E8 4F 5E 60 E2 90 C6 D8 09 0A 0E 94 E6 F0
01C0 | F9 7A FD 88 DB 60 FA C8 35 DE 55 2D A4 6B 11 62
01D0 | CB 32 2A 09 A1 B5 39 B5 22 F6 B7 F5 71 E3 31 56
01E0 | 16 25 4B DD 27 F4 E6 92 97 99 9D 97 87 3D 81 7A
01F0 | DC 95 88 B7 BB 2E 5D F2 E6 95 F2 4A BE 6E 68 FE
0200 | F2 C3 88 C9 15 33 C2 DB BF 23 DC F7 B4 32 CA C8
0210 | 39 4F 45 9D 1D 86 74 99 3A 5B 6F AD 2D 01 8F D3
0220 | EA C1 BA 99 D7 F1 B0 E5 02 27 B8 DD EB A1 FD B6
0230 | 9E 7D F0 1A 4E 69 92 7B 95 A4 D4 75 13 E8 C6 F1
0240 | 58 93 A0 6D A5 38 CA 42 A0 7C 15 EB 86 7A 97 6F
0250 | 48 6A 73 57 23 BF 01 D2 68 BF AF D1 00 09 B9 00
0260 | C3 B1 16 52 32 7F 69 E3 EF 33 C7 AE E1 8D EA 27
0270 | 26 14 A7 9F 11 A1 4A C6 B1 3B 03 F1 E7 A4 44 16
0280 | D0 AE C7 D2 75 A6 F6 EA 23 06 6C EC</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;</code></pre>
<table class="table">
@ -464,13 +464,13 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>019881E0A68A6D66</code></td>
<td><code>01B02729FD8E6D66</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>C4020000</code> (708 in decimal)</td>
<td><code>9C020000</code> (668 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -482,19 +482,19 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>20FDE6084230CC5C8DCCF89631946497</code></td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>93284FB9DDC495D2EACDBD8F1281EC50</code></td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_answer</td>
<td>56, 596</td>
<td><code>FE500200C2F009F2343EF7E517DA94B2</code> <code>3DD12C3C0B25A1DABE972E9621E28BD6</code> <code>2DF7460E1E3CDB02A2766486DC9FB6CD</code> <code>01D56449AA855EA1EC8DAB9FA747832E</code> <code>CA3425D9ECFC7EDEFA9E17AC8FD9A28E</code> <code>CD18DB92C442A74A2A8FE52FF388E577</code> <code>37086FE324773E73E6A5B3602DBBA1C6</code> <code>89542996C272DFF3E57048C646492E82</code> <code>F7546AF8CE7C714219C233355593F350</code> <code>3CE7E28D13D187FE0CE07D90B2E900B2</code> <code>D0164546A299B61AF437911F1E3A6892</code> <code>45F17747710881D87AD5FB2E9FF852DE</code> <code>027B8D3BA63E4D3B167BB33CDD88563C</code> <code>20DF4739470F5F149F7C5BFD6ECE07B7</code> <code>59C7D307B8567FA5507D6C326B0D82A8</code> <code>90E34B309BB434552AA5E678508398C1</code> <code>B00CC653AB4C04BE806377E1F6581910</code> <code>5BD06BD27103078252A91B1063B4A29B</code> <code>01158147E544A9C7C2382775A199AEF1</code> <code>75CF056B577E2159F0A75D0A2B1214CB</code> <code>942B67BD82EEDA8C64C16C080E49C539</code> <code>88B47AF695CB94519472E372D7B93071</code> <code>67C2F2A7F83DF532019DBD55ABA4AB09</code> <code>21A2D445A13277E4C97637C22187DAE7</code> <code>51DB74AFCF5978C2C864D30F2B6F09C5</code> <code>5C6AA0CF5F538CF671C3A8185A26EEBA</code> <code>B9DCD2733239A40C30D228F94F97118A</code> <code>671C091D05F8CB81789D8B0C79AF38E9</code> <code>2E89729764748914745487AC8E2A7B0C</code> <code>CE917F12F9BD2AF4F4C384922A161E8A</code> <code>01AD1810AC96F99D20173E306CAC4DF2</code> <code>49B1436F4FF654E502E124885128AEEE</code> <code>23639FD6BDCABDA8C24EF46172FE5638</code> <code>32AAB0F9BFF0D2B6DA2925980D22FDA4</code> <code>8F4CFCBA77A1E04EE50DCEDB4D8B5C0C</code> <code>1A3FA743AA228902A6C4ED4724F69272</code> <code>F9A191EDBFD1CFE91777832359D694CB</code><br> <code>DB90747F</code></td>
<td><code>FE500200AA13E4A4F481E804DAF0185A</code> <code>90C92BF20F4AE47A19CAB48F849FADF6</code> <code>327F74AB2DB5AC6D427B0E5204D07B94</code> <code>9E97C8D92E87638A32B3891E5C99FA1E</code> <code>F11396455FFB9A4344887F4620122449</code> <code>FEDD544A37BEF633F1AC248EBA1153BE</code> <code>7429D117EA4E75306DBE5B3AA9348957</code> <code>9B9B38D155363277B925F3BBE4F71B48</code> <code>75468ADA569F087E9CF19403D8298A32</code> <code>1C80BED880F6F00E3E6EC2BAA6220341</code> <code>49DF75700E9D64B1F1B35E55E7DE8E86</code> <code>EB27A47EAF0CB0D84D1635CB837776A9</code> <code>6FD608C4206FE3FB0C8D2F57057A31D3</code> <code>5BC2F8133674F437523B46D98D1C3192</code> <code>C676EE3ECA5FAA675F64747307E03171</code> <code>1F3C90498972B954849D1DAE506C3EB1</code> <code>27F4CC1DCDE3F8DA565B9BC5832535B2</code> <code>2C869DF85A1AB601E567A49691965141</code> <code>C4D209A4C09EAEDCA3EDCC9B9E1420FC</code> <code>B1F6BE14FB9242E6BDAA52D921198B8B</code> <code>EA4220EE1B429C303848DE6A6619B6FC</code> <code>1A13C6A2EA378333C056D7F90C0FBD83</code> <code>386FC5DBABE6646D95B0427158428488</code> <code>8DA74C558DB5B0C7CB59E84F5E60E290</code> <code>C6D8090A0E94E6F0F97AFD88DB60FAC8</code> <code>35DE552DA46B1162CB322A09A1B539B5</code> <code>22F6B7F571E3315616254BDD27F4E692</code> <code>97999D97873D817ADC9588B7BB2E5DF2</code> <code>E695F24ABE6E68FEF2C388C91533C2DB</code> <code>BF23DCF7B432CAC8394F459D1D867499</code> <code>3A5B6FAD2D018FD3EAC1BA99D7F1B0E5</code> <code>0227B8DDEBA1FDB69E7DF01A4E69927B</code> <code>95A4D47513E8C6F15893A06DA538CA42</code> <code>A07C15EB867A976F486A735723BF01D2</code> <code>68BFAFD10009B900C3B11652327F69E3</code> <code>EF33C7AEE18DEA272614A79F11A14AC6</code> <code>B13B03F1E7A44416D0AEC7D275A6F6EA</code><br> <code>23066CEC</code></td>
<td>See below</td>
</tr>
</tbody>
@ -502,20 +502,20 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A
<!-- end server_DH_params_ok -->
<p>Decrypt <code>encrypted_answer</code> using the reverse of the process specified in <a href="/mtproto/auth_key#6-server-responds-with">step 6</a>:</p>
<!-- start server_DH_inner_data_input -->
<pre><code>encrypted_answer = C2F009F2343EF7E517DA94B23DD12C3C0B25A1DABE972E9621E28BD62DF7460E1E3CDB02A2766486DC9FB6CD01D56449AA855EA1EC8DAB9FA747832ECA3425D9ECFC7EDEFA9E17AC8FD9A28ECD18DB92C442A74A2A8FE52FF388E57737086FE324773E73E6A5B3602DBBA1C689542996C272DFF3E57048C646492E82F7546AF8CE7C714219C233355593F3503CE7E28D13D187FE0CE07D90B2E900B2D0164546A299B61AF437911F1E3A689245F17747710881D87AD5FB2E9FF852DE027B8D3BA63E4D3B167BB33CDD88563C20DF4739470F5F149F7C5BFD6ECE07B759C7D307B8567FA5507D6C326B0D82A890E34B309BB434552AA5E678508398C1B00CC653AB4C04BE806377E1F65819105BD06BD27103078252A91B1063B4A29B01158147E544A9C7C2382775A199AEF175CF056B577E2159F0A75D0A2B1214CB942B67BD82EEDA8C64C16C080E49C53988B47AF695CB94519472E372D7B9307167C2F2A7F83DF532019DBD55ABA4AB0921A2D445A13277E4C97637C22187DAE751DB74AFCF5978C2C864D30F2B6F09C55C6AA0CF5F538CF671C3A8185A26EEBAB9DCD2733239A40C30D228F94F97118A671C091D05F8CB81789D8B0C79AF38E92E89729764748914745487AC8E2A7B0CCE917F12F9BD2AF4F4C384922A161E8A01AD1810AC96F99D20173E306CAC4DF249B1436F4FF654E502E124885128AEEE23639FD6BDCABDA8C24EF46172FE563832AAB0F9BFF0D2B6DA2925980D22FDA48F4CFCBA77A1E04EE50DCEDB4D8B5C0C1A3FA743AA228902A6C4ED4724F69272F9A191EDBFD1CFE91777832359D694CBDB90747F
tmp_aes_key = 358F471A5799CC4CBBDB0023F56911461E3DDD66CFEAB574F9E1B75AFD04946D
tmp_aes_iv = 3FFB9DE3C15F2B4582416182773D16B6334D71764B280C60397C27C001DACD54</code></pre>
<pre><code>encrypted_answer = AA13E4A4F481E804DAF0185A90C92BF20F4AE47A19CAB48F849FADF6327F74AB2DB5AC6D427B0E5204D07B949E97C8D92E87638A32B3891E5C99FA1EF11396455FFB9A4344887F4620122449FEDD544A37BEF633F1AC248EBA1153BE7429D117EA4E75306DBE5B3AA93489579B9B38D155363277B925F3BBE4F71B4875468ADA569F087E9CF19403D8298A321C80BED880F6F00E3E6EC2BAA622034149DF75700E9D64B1F1B35E55E7DE8E86EB27A47EAF0CB0D84D1635CB837776A96FD608C4206FE3FB0C8D2F57057A31D35BC2F8133674F437523B46D98D1C3192C676EE3ECA5FAA675F64747307E031711F3C90498972B954849D1DAE506C3EB127F4CC1DCDE3F8DA565B9BC5832535B22C869DF85A1AB601E567A49691965141C4D209A4C09EAEDCA3EDCC9B9E1420FCB1F6BE14FB9242E6BDAA52D921198B8BEA4220EE1B429C303848DE6A6619B6FC1A13C6A2EA378333C056D7F90C0FBD83386FC5DBABE6646D95B04271584284888DA74C558DB5B0C7CB59E84F5E60E290C6D8090A0E94E6F0F97AFD88DB60FAC835DE552DA46B1162CB322A09A1B539B522F6B7F571E3315616254BDD27F4E69297999D97873D817ADC9588B7BB2E5DF2E695F24ABE6E68FEF2C388C91533C2DBBF23DCF7B432CAC8394F459D1D8674993A5B6FAD2D018FD3EAC1BA99D7F1B0E50227B8DDEBA1FDB69E7DF01A4E69927B95A4D47513E8C6F15893A06DA538CA42A07C15EB867A976F486A735723BF01D268BFAFD10009B900C3B11652327F69E3EF33C7AEE18DEA272614A79F11A14AC6B13B03F1E7A44416D0AEC7D275A6F6EA23066CEC
tmp_aes_key = 0BD14FBB6C72F5E59B4F5368B5E03E77226548EEC3E3982248C6420793E21030
tmp_aes_iv = 0F97369690C1BEA33CDF14AC2D6F209F96F7496AB4B35925AD9EB6872F458E33</code></pre>
<!-- end server_DH_inner_data_input -->
<p>Yielding:</p>
<!-- start server_DH_inner_data_output -->
<pre><code>answer_with_hash = 7D492F541C905100ABD15A23FB64B89ECB37F4A0BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5003000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100978C9B946ECCBCDE68F79884E374F5C269AA8122B96E6CC06D378D513A80859E1E65AABCAF3CFB79ED191CD21EB18886E7A34D893CAB4219BE46B24A10F05D001C777B6D03AB082F826ADC76B32647B671A2EFAA9B53A55E88449CAA768FE51D8507D122F616FFDA204F5BBDB72ED6EE504624BD4F0D7A7DA9D966241933653AC22257C8F7FEEC5CF00CF898EA948C29246CBC819C577083C6C2D4014A6AF9FCE42858989D22F8E4E6783A76DB63B527C41B0E3A14649E817008922C5244F27FC704A76AAC0FAE235FDE71D74A32D673ABAE57C45822E55196E70675738BD419307B70271A625BB4683C734117706CE616054B5F651224894403969051F2BDE4A68A6D66951A03E5B239AC55
answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5003000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100978C9B946ECCBCDE68F79884E374F5C269AA8122B96E6CC06D378D513A80859E1E65AABCAF3CFB79ED191CD21EB18886E7A34D893CAB4219BE46B24A10F05D001C777B6D03AB082F826ADC76B32647B671A2EFAA9B53A55E88449CAA768FE51D8507D122F616FFDA204F5BBDB72ED6EE504624BD4F0D7A7DA9D966241933653AC22257C8F7FEEC5CF00CF898EA948C29246CBC819C577083C6C2D4014A6AF9FCE42858989D22F8E4E6783A76DB63B527C41B0E3A14649E817008922C5244F27FC704A76AAC0FAE235FDE71D74A32D673ABAE57C45822E55196E70675738BD419307B70271A625BB4683C734117706CE616054B5F651224894403969051F2BDE4A68A6D66951A03E5B239AC55</code></pre>
<pre><code>answer_with_hash = 5D51B83A750DFA24EE9C70093E1CBFD6466F5DC0BA0D89B5A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD30703000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010032A34B0D25EA91D4CE46EBD9FD2793C245A129CAA10BEB70E582BE547C86A0F5F720AEA02F3F5A773EA55FB450D636B6E9CD68B87BD9F17B1A0D704A82CB629EA4767040F47DFEB4EE3320A32332F03C538AA99DCC5A71DA3C13634BF6617E194D7D3DE34A0C51F16DE01CE3D947F6CEE7B2C89D40A888F2A8B42CBE45E51782C472AEED8431FF4A3F90EBC1EBDC2D422EB4653FF9C599DE92EE796661EC19AF6D589FB00F95F91DFFB0FEF0378F62EB71EA6BF3BAB56FF1AC0A78CA6BB487C5210B7A287498A5030AD066552101E3FDDF5DD4D17E0F58644FE659AF73F6EC597BD977AB2B4ABA552EC9BFBC802D9619745EDD89DFF4197EEE489B9459BD7D69FD8E6D66C8AF159019EB6104
answer = BA0D89B5A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD30703000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010032A34B0D25EA91D4CE46EBD9FD2793C245A129CAA10BEB70E582BE547C86A0F5F720AEA02F3F5A773EA55FB450D636B6E9CD68B87BD9F17B1A0D704A82CB629EA4767040F47DFEB4EE3320A32332F03C538AA99DCC5A71DA3C13634BF6617E194D7D3DE34A0C51F16DE01CE3D947F6CEE7B2C89D40A888F2A8B42CBE45E51782C472AEED8431FF4A3F90EBC1EBDC2D422EB4653FF9C599DE92EE796661EC19AF6D589FB00F95F91DFFB0FEF0378F62EB71EA6BF3BAB56FF1AC0A78CA6BB487C5210B7A287498A5030AD066552101E3FDDF5DD4D17E0F58644FE659AF73F6EC597BD977AB2B4ABA552EC9BFBC802D9619745EDD89DFF4197EEE489B9459BD7D69FD8E6D66C8AF159019EB6104</code></pre>
<!-- end server_DH_inner_data_output -->
<!-- start server_DH_inner_data -->
<p>Generated payload (excluding transport headers/trailers):</p>
<pre><code>0000 | BA 0D 89 B5 20 FD E6 08 42 30 CC 5C 8D CC F8 96
0010 | 31 94 64 97 93 28 4F B9 DD C4 95 D2 EA CD BD 8F
0020 | 12 81 EC 50 03 00 00 00 FE 00 01 00 C7 1C AE B9
<pre><code>0000 | BA 0D 89 B5 A0 7A 5A EC 88 BE AB B1 21 CA 05 C7
0010 | 95 47 49 57 9D EF AA 9F 2F 39 95 32 65 3F 46 E0
0020 | 25 8F D3 07 03 00 00 00 FE 00 01 00 C7 1C AE B9
0030 | C6 B1 C9 04 8E 6C 52 2F 70 F1 3F 73 98 0D 40 23
0040 | 8E 3E 21 C1 49 34 D0 37 56 3D 93 0F 48 19 8A 0A
0050 | A7 C1 40 58 22 94 93 D2 25 30 F4 DB FA 33 6F 6E
@ -532,23 +532,23 @@ answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5
0100 | F4 7B F9 59 D9 56 85 0C E9 29 85 1F 0D 81 15 F6
0110 | 35 B1 05 EE 2E 4E 15 D0 4B 24 54 BF 6F 4F AD F0
0120 | 34 B1 04 03 11 9C D8 E3 B9 2F CC 5B FE 00 01 00
0130 | 97 8C 9B 94 6E CC BC DE 68 F7 98 84 E3 74 F5 C2
0140 | 69 AA 81 22 B9 6E 6C C0 6D 37 8D 51 3A 80 85 9E
0150 | 1E 65 AA BC AF 3C FB 79 ED 19 1C D2 1E B1 88 86
0160 | E7 A3 4D 89 3C AB 42 19 BE 46 B2 4A 10 F0 5D 00
0170 | 1C 77 7B 6D 03 AB 08 2F 82 6A DC 76 B3 26 47 B6
0180 | 71 A2 EF AA 9B 53 A5 5E 88 44 9C AA 76 8F E5 1D
0190 | 85 07 D1 22 F6 16 FF DA 20 4F 5B BD B7 2E D6 EE
01A0 | 50 46 24 BD 4F 0D 7A 7D A9 D9 66 24 19 33 65 3A
01B0 | C2 22 57 C8 F7 FE EC 5C F0 0C F8 98 EA 94 8C 29
01C0 | 24 6C BC 81 9C 57 70 83 C6 C2 D4 01 4A 6A F9 FC
01D0 | E4 28 58 98 9D 22 F8 E4 E6 78 3A 76 DB 63 B5 27
01E0 | C4 1B 0E 3A 14 64 9E 81 70 08 92 2C 52 44 F2 7F
01F0 | C7 04 A7 6A AC 0F AE 23 5F DE 71 D7 4A 32 D6 73
0200 | AB AE 57 C4 58 22 E5 51 96 E7 06 75 73 8B D4 19
0210 | 30 7B 70 27 1A 62 5B B4 68 3C 73 41 17 70 6C E6
0220 | 16 05 4B 5F 65 12 24 89 44 03 96 90 51 F2 BD E4
0230 | A6 8A 6D 66</code></pre>
0130 | 32 A3 4B 0D 25 EA 91 D4 CE 46 EB D9 FD 27 93 C2
0140 | 45 A1 29 CA A1 0B EB 70 E5 82 BE 54 7C 86 A0 F5
0150 | F7 20 AE A0 2F 3F 5A 77 3E A5 5F B4 50 D6 36 B6
0160 | E9 CD 68 B8 7B D9 F1 7B 1A 0D 70 4A 82 CB 62 9E
0170 | A4 76 70 40 F4 7D FE B4 EE 33 20 A3 23 32 F0 3C
0180 | 53 8A A9 9D CC 5A 71 DA 3C 13 63 4B F6 61 7E 19
0190 | 4D 7D 3D E3 4A 0C 51 F1 6D E0 1C E3 D9 47 F6 CE
01A0 | E7 B2 C8 9D 40 A8 88 F2 A8 B4 2C BE 45 E5 17 82
01B0 | C4 72 AE ED 84 31 FF 4A 3F 90 EB C1 EB DC 2D 42
01C0 | 2E B4 65 3F F9 C5 99 DE 92 EE 79 66 61 EC 19 AF
01D0 | 6D 58 9F B0 0F 95 F9 1D FF B0 FE F0 37 8F 62 EB
01E0 | 71 EA 6B F3 BA B5 6F F1 AC 0A 78 CA 6B B4 87 C5
01F0 | 21 0B 7A 28 74 98 A5 03 0A D0 66 55 21 01 E3 FD
0200 | DF 5D D4 D1 7E 0F 58 64 4F E6 59 AF 73 F6 EC 59
0210 | 7B D9 77 AB 2B 4A BA 55 2E C9 BF BC 80 2D 96 19
0220 | 74 5E DD 89 DF F4 19 7E EE 48 9B 94 59 BD 7D 69
0230 | FD 8E 6D 66</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;</code></pre>
<table class="table">
@ -570,13 +570,13 @@ answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>20FDE6084230CC5C8DCCF89631946497</code></td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>93284FB9DDC495D2EACDBD8F1281EC50</code></td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
@ -594,13 +594,13 @@ answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5
<tr>
<td>g_a</td>
<td>300, 260</td>
<td><code>FE000100978C9B946ECCBCDE68F79884</code> <code>E374F5C269AA8122B96E6CC06D378D51</code> <code>3A80859E1E65AABCAF3CFB79ED191CD2</code> <code>1EB18886E7A34D893CAB4219BE46B24A</code> <code>10F05D001C777B6D03AB082F826ADC76</code> <code>B32647B671A2EFAA9B53A55E88449CAA</code> <code>768FE51D8507D122F616FFDA204F5BBD</code> <code>B72ED6EE504624BD4F0D7A7DA9D96624</code> <code>1933653AC22257C8F7FEEC5CF00CF898</code> <code>EA948C29246CBC819C577083C6C2D401</code> <code>4A6AF9FCE42858989D22F8E4E6783A76</code> <code>DB63B527C41B0E3A14649E817008922C</code> <code>5244F27FC704A76AAC0FAE235FDE71D7</code> <code>4A32D673ABAE57C45822E55196E70675</code> <code>738BD419307B70271A625BB4683C7341</code> <code>17706CE616054B5F6512248944039690</code><br> <code>51F2BDE4</code></td>
<td><code>FE00010032A34B0D25EA91D4CE46EBD9</code> <code>FD2793C245A129CAA10BEB70E582BE54</code> <code>7C86A0F5F720AEA02F3F5A773EA55FB4</code> <code>50D636B6E9CD68B87BD9F17B1A0D704A</code> <code>82CB629EA4767040F47DFEB4EE3320A3</code> <code>2332F03C538AA99DCC5A71DA3C13634B</code> <code>F6617E194D7D3DE34A0C51F16DE01CE3</code> <code>D947F6CEE7B2C89D40A888F2A8B42CBE</code> <code>45E51782C472AEED8431FF4A3F90EBC1</code> <code>EBDC2D422EB4653FF9C599DE92EE7966</code> <code>61EC19AF6D589FB00F95F91DFFB0FEF0</code> <code>378F62EB71EA6BF3BAB56FF1AC0A78CA</code> <code>6BB487C5210B7A287498A5030AD06655</code> <code>2101E3FDDF5DD4D17E0F58644FE659AF</code> <code>73F6EC597BD977AB2B4ABA552EC9BFBC</code> <code>802D9619745EDD89DFF4197EEE489B94</code><br> <code>59BD7D69</code></td>
<td><code>g_a</code> diffie-hellman parameter</td>
</tr>
<tr>
<td>server_time</td>
<td>560, 4</td>
<td><code>A68A6D66</code> (1718454950 in decimal)</td>
<td><code>FD8E6D66</code> (1718456061 in decimal)</td>
<td>Server time</td>
</tr>
</tbody>
@ -609,34 +609,34 @@ answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5
<h5><a class="anchor" href="#7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message" id="7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message" name="7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message"><i class="anchor-icon"></i></a>7) Client computes random 2048-bit number <em>b</em> (using a sufficient amount of entropy) and sends the server a message</h5>
<p>First, generate a secure random 2048-bit number b:</p>
<!-- start b -->
<pre><code>b = EBCDB3228FAFFE7F27D38AB0A00E79E6D5BACEB96B5307DE5C5F5C196A6378F49FF94727CBB6E7FE9823E6C621C5BC6C70D6A68288D3F2419831B1DC2AB77A5D9A11551732EF80E0B6CC1954072535CACC548B5EC8BD4058E57CF24BF9180B6E3190C0F7E7E3729336861A42FBDDFC05944330D1E0019CFAE5F55F3723EF90F07E49E8908F37B263B3C7FF2BB7BB0248243B6B2AE815341746A9CB63A5CE8173D9A02D653977022378444ECB8C6322C735DA836774D000E385332371916A1F8FDD1BFF7EEEC61984641B6A46D56AF3209029A9A50AAD06238C3A970A4460823BFBA41EA6573FE0729A129508D6D4A99974A0FD0A10F6B58765037ECC4E5864DB</code></pre>
<pre><code>b = C1EFE25AA25368E77343C59C59D7F341192D0A4C20B2A818C831FDA212AE24DEA54134FDBD567CA0B4096A87D3C6180F00CB096CE5C328C5CEA433E277B91CDD6609CF5971124111CDEFD9FEBD28227EE48D4D592A2A2CE6503A4DC8A831908B317BE9FBD59561B2C0523AF9CA96AFE50FCCAB10BB7ED383F99E4452B8074C4AA8D8F3695196F6EEFD130D7466C7DFC4C2209B77ADA73918087E1B53AEFD68896EBACF936FDC59BD78015CFB2F5BA8BE94B28156579AE4999F41F2C68E4AA9C2CC7EE4EE6C4C417B6492E7A9EC44D117FD7E04A4FDE257D6CE66C9A97B1DAF981C4F9982D45E482E71BF7654B8624C6F57A6DE2AD45550BADDE405D77A9DCE13</code></pre>
<!-- end b -->
<p>Then compute <code>g_b = pow(g, b) mod dh_prime</code></p>
<!-- start g_b -->
<pre><code>g_b = 015F7858F4D68C37FEF92CDE649044BBC08F451F321EE35999163DFA05B235B1B44EB0D48FF5948970577BD3A666FAC86FD428DEDAF2802EDCC4447F87889F87370A53D502CD739BC9BA8F1C1EA4697E29DB5665D20516ED40AB69F0A5CA44529A757DDAF25492D8DA349C84C5F5CBE283F53FA15F33BE98BAC101EAB52849B967FF4E483B7D22DC701EDBAFAA09BA4557B278F524CE3A78E3D983D4983B37EA9DA1C6BFA903612B82071D115ADF6CC684864AF3BC4E23987A63B803944392EDC01614DA0F21B8474312F776A568ECDBAE2F809E3540D6E1EBAB3AAFDFBE3A813085584F91845EBEA59F80A46CDACC71A3E15BCC338D2CB62B5817B89EA6CB2F</code></pre>
<pre><code>g_b = 6918A223D2AF18B957F13A58ECC2D2D4E1C695D12FC48C20574D69D9DF647769FD71C7C69DF66F0814178792BDE4BF32EA2CF8208644146C0762509DCD360C22591AC42826B710C192EB3C74C72A49491938A5A9905CF370B54D070B978967A643AAB19FA183E58282F8372A13B40FFB8B5512E5396C8C66442FC3649A30A80FBE258FDC8B90E3552B9C77EFCAB0F2BF5FEDFEE4ABE0CCA4FF51B3F4C66BD5EF636978B97C380BC2DB50A91649C2E75AFBA29B4709075B4C57D4F86FDB1B70B9D536FB0574986E2A7147D864C7776134E62F7864FF675E85320251EBAD57A175377502CA9F4D73C8FDBC13FD5F0218D79D75543D8256BC960CEC12C853027A1D</code></pre>
<!-- end g_b -->
<h6>7.1) generation of encrypted_data</h6>
<!-- start client_DH_inner_data -->
<p>Generated payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 54 B6 43 66 20 FD E6 08 42 30 CC 5C 8D CC F8 96
0010 | 31 94 64 97 93 28 4F B9 DD C4 95 D2 EA CD BD 8F
0020 | 12 81 EC 50 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 01 5F 78 58 F4 D6 8C 37 FE F9 2C DE 64 90 44 BB
0040 | C0 8F 45 1F 32 1E E3 59 99 16 3D FA 05 B2 35 B1
0050 | B4 4E B0 D4 8F F5 94 89 70 57 7B D3 A6 66 FA C8
0060 | 6F D4 28 DE DA F2 80 2E DC C4 44 7F 87 88 9F 87
0070 | 37 0A 53 D5 02 CD 73 9B C9 BA 8F 1C 1E A4 69 7E
0080 | 29 DB 56 65 D2 05 16 ED 40 AB 69 F0 A5 CA 44 52
0090 | 9A 75 7D DA F2 54 92 D8 DA 34 9C 84 C5 F5 CB E2
00A0 | 83 F5 3F A1 5F 33 BE 98 BA C1 01 EA B5 28 49 B9
00B0 | 67 FF 4E 48 3B 7D 22 DC 70 1E DB AF AA 09 BA 45
00C0 | 57 B2 78 F5 24 CE 3A 78 E3 D9 83 D4 98 3B 37 EA
00D0 | 9D A1 C6 BF A9 03 61 2B 82 07 1D 11 5A DF 6C C6
00E0 | 84 86 4A F3 BC 4E 23 98 7A 63 B8 03 94 43 92 ED
00F0 | C0 16 14 DA 0F 21 B8 47 43 12 F7 76 A5 68 EC DB
0100 | AE 2F 80 9E 35 40 D6 E1 EB AB 3A AF DF BE 3A 81
0110 | 30 85 58 4F 91 84 5E BE A5 9F 80 A4 6C DA CC 71
0120 | A3 E1 5B CC 33 8D 2C B6 2B 58 17 B8 9E A6 CB 2F</code></pre>
<pre><code>0000 | 54 B6 43 66 A0 7A 5A EC 88 BE AB B1 21 CA 05 C7
0010 | 95 47 49 57 9D EF AA 9F 2F 39 95 32 65 3F 46 E0
0020 | 25 8F D3 07 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 69 18 A2 23 D2 AF 18 B9 57 F1 3A 58 EC C2 D2 D4
0040 | E1 C6 95 D1 2F C4 8C 20 57 4D 69 D9 DF 64 77 69
0050 | FD 71 C7 C6 9D F6 6F 08 14 17 87 92 BD E4 BF 32
0060 | EA 2C F8 20 86 44 14 6C 07 62 50 9D CD 36 0C 22
0070 | 59 1A C4 28 26 B7 10 C1 92 EB 3C 74 C7 2A 49 49
0080 | 19 38 A5 A9 90 5C F3 70 B5 4D 07 0B 97 89 67 A6
0090 | 43 AA B1 9F A1 83 E5 82 82 F8 37 2A 13 B4 0F FB
00A0 | 8B 55 12 E5 39 6C 8C 66 44 2F C3 64 9A 30 A8 0F
00B0 | BE 25 8F DC 8B 90 E3 55 2B 9C 77 EF CA B0 F2 BF
00C0 | 5F ED FE E4 AB E0 CC A4 FF 51 B3 F4 C6 6B D5 EF
00D0 | 63 69 78 B9 7C 38 0B C2 DB 50 A9 16 49 C2 E7 5A
00E0 | FB A2 9B 47 09 07 5B 4C 57 D4 F8 6F DB 1B 70 B9
00F0 | D5 36 FB 05 74 98 6E 2A 71 47 D8 64 C7 77 61 34
0100 | E6 2F 78 64 FF 67 5E 85 32 02 51 EB AD 57 A1 75
0110 | 37 75 02 CA 9F 4D 73 C8 FD BC 13 FD 5F 02 18 D7
0120 | 9D 75 54 3D 82 56 BC 96 0C EC 12 C8 53 02 7A 1D</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;</code></pre>
<table class="table">
@ -658,19 +658,19 @@ answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>20FDE6084230CC5C8DCCF89631946497</code></td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>93284FB9DDC495D2EACDBD8F1281EC50</code></td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>g_b</td>
<td>36, 260</td>
<td><code>FE000100015F7858F4D68C37FEF92CDE</code> <code>649044BBC08F451F321EE35999163DFA</code> <code>05B235B1B44EB0D48FF5948970577BD3</code> <code>A666FAC86FD428DEDAF2802EDCC4447F</code> <code>87889F87370A53D502CD739BC9BA8F1C</code> <code>1EA4697E29DB5665D20516ED40AB69F0</code> <code>A5CA44529A757DDAF25492D8DA349C84</code> <code>C5F5CBE283F53FA15F33BE98BAC101EA</code> <code>B52849B967FF4E483B7D22DC701EDBAF</code> <code>AA09BA4557B278F524CE3A78E3D983D4</code> <code>983B37EA9DA1C6BFA903612B82071D11</code> <code>5ADF6CC684864AF3BC4E23987A63B803</code> <code>944392EDC01614DA0F21B8474312F776</code> <code>A568ECDBAE2F809E3540D6E1EBAB3AAF</code> <code>DFBE3A813085584F91845EBEA59F80A4</code> <code>6CDACC71A3E15BCC338D2CB62B5817B8</code><br> <code>9EA6CB2F</code></td>
<td><code>FE0001006918A223D2AF18B957F13A58</code> <code>ECC2D2D4E1C695D12FC48C20574D69D9</code> <code>DF647769FD71C7C69DF66F0814178792</code> <code>BDE4BF32EA2CF8208644146C0762509D</code> <code>CD360C22591AC42826B710C192EB3C74</code> <code>C72A49491938A5A9905CF370B54D070B</code> <code>978967A643AAB19FA183E58282F8372A</code> <code>13B40FFB8B5512E5396C8C66442FC364</code> <code>9A30A80FBE258FDC8B90E3552B9C77EF</code> <code>CAB0F2BF5FEDFEE4ABE0CCA4FF51B3F4</code> <code>C66BD5EF636978B97C380BC2DB50A916</code> <code>49C2E75AFBA29B4709075B4C57D4F86F</code> <code>DB1B70B9D536FB0574986E2A7147D864</code> <code>C7776134E62F7864FF675E85320251EB</code> <code>AD57A175377502CA9F4D73C8FDBC13FD</code> <code>5F0218D79D75543D8256BC960CEC12C8</code><br> <code>53027A1D</code></td>
<td>Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding</td>
</tr>
<tr>
@ -684,47 +684,47 @@ answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5
<!-- end client_DH_inner_data -->
<p>The serialization of <em>Client_DH_Inner_Data</em> produces a string <strong>data</strong>. This is used to generate <strong>encrypted_data</strong> as specified in <a href="#7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message">step 6</a>, using the following inputs:</p>
<!-- start client_DH_inner_data_input -->
<pre><code>data = 54B6436620FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC500000000000000000FE000100015F7858F4D68C37FEF92CDE649044BBC08F451F321EE35999163DFA05B235B1B44EB0D48FF5948970577BD3A666FAC86FD428DEDAF2802EDCC4447F87889F87370A53D502CD739BC9BA8F1C1EA4697E29DB5665D20516ED40AB69F0A5CA44529A757DDAF25492D8DA349C84C5F5CBE283F53FA15F33BE98BAC101EAB52849B967FF4E483B7D22DC701EDBAFAA09BA4557B278F524CE3A78E3D983D4983B37EA9DA1C6BFA903612B82071D115ADF6CC684864AF3BC4E23987A63B803944392EDC01614DA0F21B8474312F776A568ECDBAE2F809E3540D6E1EBAB3AAFDFBE3A813085584F91845EBEA59F80A46CDACC71A3E15BCC338D2CB62B5817B89EA6CB2F
padding = 19B6836E091AEA989B31ED7C
tmp_aes_key = 358F471A5799CC4CBBDB0023F56911461E3DDD66CFEAB574F9E1B75AFD04946D
tmp_aes_iv = 3FFB9DE3C15F2B4582416182773D16B6334D71764B280C60397C27C001DACD54</code></pre>
<pre><code>data = 54B64366A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD3070000000000000000FE0001006918A223D2AF18B957F13A58ECC2D2D4E1C695D12FC48C20574D69D9DF647769FD71C7C69DF66F0814178792BDE4BF32EA2CF8208644146C0762509DCD360C22591AC42826B710C192EB3C74C72A49491938A5A9905CF370B54D070B978967A643AAB19FA183E58282F8372A13B40FFB8B5512E5396C8C66442FC3649A30A80FBE258FDC8B90E3552B9C77EFCAB0F2BF5FEDFEE4ABE0CCA4FF51B3F4C66BD5EF636978B97C380BC2DB50A91649C2E75AFBA29B4709075B4C57D4F86FDB1B70B9D536FB0574986E2A7147D864C7776134E62F7864FF675E85320251EBAD57A175377502CA9F4D73C8FDBC13FD5F0218D79D75543D8256BC960CEC12C853027A1D
padding = 9A9587E9824EAFB2959EDFEE
tmp_aes_key = 0BD14FBB6C72F5E59B4F5368B5E03E77226548EEC3E3982248C6420793E21030
tmp_aes_iv = 0F97369690C1BEA33CDF14AC2D6F209F96F7496AB4B35925AD9EB6872F458E33</code></pre>
<!-- end client_DH_inner_data_input -->
<p>Process:</p>
<pre><code>data_with_hash := SHA1(data) + data + padding (0-15 random bytes such that total length is divisible by 16)
encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);</code></pre>
<p>Output:</p>
<!-- start client_DH_inner_data_output -->
<pre><code>encrypted_data = 2ECCA417B66B66313398CD5E88DE30ABA18C51884446658AAB84C29603A173D23FEC9EAB938E6EA4FE3C2D9ADF22A1109C0C8C4700CDE663005E5727324E769406AA6CB7C2A73E36E30934F3A6168F18B3E6362B97418FCE0A757BEBB32D31DCC8AB2034BF5075DDABDFD8145C8EE62D196D1C28C4AA61519322BB4582F8E5FF7E9016B59926AC4DE2C216588571D03BAFADD19BACDBA35CC4AA0B534B6EF304F5EDAED54740C93691FC4907CFAB26D684966EB0EB62195BA4267B9E447107A684F461A8D047F54C9709B7D3F4FAC1387ACD97036B58F7F9D755BB367D6C9B134A431EFF6D0C1E2C747A8C846C02BBF65871C31DDC8239B77F090CF73D5ABBC2771A8CD86DF0769ECDE8ECE42D3BA68662D89E8DFEBC8D1CC18A00632F9CA2B11932AA44AD82F8CBE7F953CCF049ABF3585E920BB20FAEA9A8F0A28810D5FE9EC711574A4714922220AE980E1A538A0D</code></pre>
<pre><code>encrypted_data = 5165902A5D348855AD4A5B90EB06E677907D2C8754D830B0BBB01332E0A8219895DDD28C6405BB6C80F6613551FCDB8C2A928060914E4637179863B6B212FB62A59859DA0AF87EB1836DEF45DC5AD69715050CA8CB2717231CE627EDDB7C58B488C5B166A4D86E2F707AEB02E89E25F378D95DBB12DCFEC5D7AD46552F02AC7C100D97AAAAABBD34537EC4D9E17C5E5F9E7A12F8035FF3C7ED6E5B23F793E1F425C0754D1E809C9F599FF546F14A0123069ECA3C0123967C165CB4022FFB8C10AF33A2DA267CDD7A67D7EAEF4659142ABF616E827914C47E0AD7D7245951CA33293DCE38E2AD99A272A338D4D0729BA03646FD225EEC136B75BF02ECEE35E7C586EDE223A7F6B89E371FF4113A3CE5D81022907BB73AB91EDE25ABAF78DC00B6FEC9BA809153570101ACC766655A170FC904A88E2991F18531DAF1891F9A8A693E2143A2BC31C4B8D241BF616C7300E1</code></pre>
<!-- end client_DH_inner_data_output -->
<p>The length of the final string is 336 bytes.</p>
<h6>7.2) set_client_DH_params query</h6>
<!-- start set_client_DH_params -->
<p>Sent payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 80 89 01 00 A7 8A 6D 66
0010 | 78 01 00 00 1F 5F 04 F5 20 FD E6 08 42 30 CC 5C
0020 | 8D CC F8 96 31 94 64 97 93 28 4F B9 DD C4 95 D2
0030 | EA CD BD 8F 12 81 EC 50 FE 50 01 00 2E CC A4 17
0040 | B6 6B 66 31 33 98 CD 5E 88 DE 30 AB A1 8C 51 88
0050 | 44 46 65 8A AB 84 C2 96 03 A1 73 D2 3F EC 9E AB
0060 | 93 8E 6E A4 FE 3C 2D 9A DF 22 A1 10 9C 0C 8C 47
0070 | 00 CD E6 63 00 5E 57 27 32 4E 76 94 06 AA 6C B7
0080 | C2 A7 3E 36 E3 09 34 F3 A6 16 8F 18 B3 E6 36 2B
0090 | 97 41 8F CE 0A 75 7B EB B3 2D 31 DC C8 AB 20 34
00A0 | BF 50 75 DD AB DF D8 14 5C 8E E6 2D 19 6D 1C 28
00B0 | C4 AA 61 51 93 22 BB 45 82 F8 E5 FF 7E 90 16 B5
00C0 | 99 26 AC 4D E2 C2 16 58 85 71 D0 3B AF AD D1 9B
00D0 | AC DB A3 5C C4 AA 0B 53 4B 6E F3 04 F5 ED AE D5
00E0 | 47 40 C9 36 91 FC 49 07 CF AB 26 D6 84 96 6E B0
00F0 | EB 62 19 5B A4 26 7B 9E 44 71 07 A6 84 F4 61 A8
0100 | D0 47 F5 4C 97 09 B7 D3 F4 FA C1 38 7A CD 97 03
0110 | 6B 58 F7 F9 D7 55 BB 36 7D 6C 9B 13 4A 43 1E FF
0120 | 6D 0C 1E 2C 74 7A 8C 84 6C 02 BB F6 58 71 C3 1D
0130 | DC 82 39 B7 7F 09 0C F7 3D 5A BB C2 77 1A 8C D8
0140 | 6D F0 76 9E CD E8 EC E4 2D 3B A6 86 62 D8 9E 8D
0150 | FE BC 8D 1C C1 8A 00 63 2F 9C A2 B1 19 32 AA 44
0160 | AD 82 F8 CB E7 F9 53 CC F0 49 AB F3 58 5E 92 0B
0170 | B2 0F AE A9 A8 F0 A2 88 10 D5 FE 9E C7 11 57 4A
0180 | 47 14 92 22 20 AE 98 0E 1A 53 8A 0D</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 E0 56 0D 00 FD 8E 6D 66
0010 | 78 01 00 00 1F 5F 04 F5 A0 7A 5A EC 88 BE AB B1
0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
0030 | 65 3F 46 E0 25 8F D3 07 FE 50 01 00 51 65 90 2A
0040 | 5D 34 88 55 AD 4A 5B 90 EB 06 E6 77 90 7D 2C 87
0050 | 54 D8 30 B0 BB B0 13 32 E0 A8 21 98 95 DD D2 8C
0060 | 64 05 BB 6C 80 F6 61 35 51 FC DB 8C 2A 92 80 60
0070 | 91 4E 46 37 17 98 63 B6 B2 12 FB 62 A5 98 59 DA
0080 | 0A F8 7E B1 83 6D EF 45 DC 5A D6 97 15 05 0C A8
0090 | CB 27 17 23 1C E6 27 ED DB 7C 58 B4 88 C5 B1 66
00A0 | A4 D8 6E 2F 70 7A EB 02 E8 9E 25 F3 78 D9 5D BB
00B0 | 12 DC FE C5 D7 AD 46 55 2F 02 AC 7C 10 0D 97 AA
00C0 | AA AB BD 34 53 7E C4 D9 E1 7C 5E 5F 9E 7A 12 F8
00D0 | 03 5F F3 C7 ED 6E 5B 23 F7 93 E1 F4 25 C0 75 4D
00E0 | 1E 80 9C 9F 59 9F F5 46 F1 4A 01 23 06 9E CA 3C
00F0 | 01 23 96 7C 16 5C B4 02 2F FB 8C 10 AF 33 A2 DA
0100 | 26 7C DD 7A 67 D7 EA EF 46 59 14 2A BF 61 6E 82
0110 | 79 14 C4 7E 0A D7 D7 24 59 51 CA 33 29 3D CE 38
0120 | E2 AD 99 A2 72 A3 38 D4 D0 72 9B A0 36 46 FD 22
0130 | 5E EC 13 6B 75 BF 02 EC EE 35 E7 C5 86 ED E2 23
0140 | A7 F6 B8 9E 37 1F F4 11 3A 3C E5 D8 10 22 90 7B
0150 | B7 3A B9 1E DE 25 AB AF 78 DC 00 B6 FE C9 BA 80
0160 | 91 53 57 01 01 AC C7 66 65 5A 17 0F C9 04 A8 8E
0170 | 29 91 F1 85 31 DA F1 89 1F 9A 8A 69 3E 21 43 A2
0180 | BC 31 C4 B8 D2 41 BF 61 6C 73 00 E1</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;</code></pre>
<table class="table">
@ -746,7 +746,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>80890100A78A6D66</code></td>
<td><code>E0560D00FD8E6D66</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>20FDE6084230CC5C8DCCF89631946497</code></td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>93284FB9DDC495D2EACDBD8F1281EC50</code></td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_data</td>
<td>56, 340</td>
<td><code>FE5001002ECCA417B66B66313398CD5E</code> <code>88DE30ABA18C51884446658AAB84C296</code> <code>03A173D23FEC9EAB938E6EA4FE3C2D9A</code> <code>DF22A1109C0C8C4700CDE663005E5727</code> <code>324E769406AA6CB7C2A73E36E30934F3</code> <code>A6168F18B3E6362B97418FCE0A757BEB</code> <code>B32D31DCC8AB2034BF5075DDABDFD814</code> <code>5C8EE62D196D1C28C4AA61519322BB45</code> <code>82F8E5FF7E9016B59926AC4DE2C21658</code> <code>8571D03BAFADD19BACDBA35CC4AA0B53</code> <code>4B6EF304F5EDAED54740C93691FC4907</code> <code>CFAB26D684966EB0EB62195BA4267B9E</code> <code>447107A684F461A8D047F54C9709B7D3</code> <code>F4FAC1387ACD97036B58F7F9D755BB36</code> <code>7D6C9B134A431EFF6D0C1E2C747A8C84</code> <code>6C02BBF65871C31DDC8239B77F090CF7</code> <code>3D5ABBC2771A8CD86DF0769ECDE8ECE4</code> <code>2D3BA68662D89E8DFEBC8D1CC18A0063</code> <code>2F9CA2B11932AA44AD82F8CBE7F953CC</code> <code>F049ABF3585E920BB20FAEA9A8F0A288</code> <code>10D5FE9EC711574A4714922220AE980E</code><br> <code>1A538A0D</code></td>
<td><code>FE5001005165902A5D348855AD4A5B90</code> <code>EB06E677907D2C8754D830B0BBB01332</code> <code>E0A8219895DDD28C6405BB6C80F66135</code> <code>51FCDB8C2A928060914E4637179863B6</code> <code>B212FB62A59859DA0AF87EB1836DEF45</code> <code>DC5AD69715050CA8CB2717231CE627ED</code> <code>DB7C58B488C5B166A4D86E2F707AEB02</code> <code>E89E25F378D95DBB12DCFEC5D7AD4655</code> <code>2F02AC7C100D97AAAAABBD34537EC4D9</code> <code>E17C5E5F9E7A12F8035FF3C7ED6E5B23</code> <code>F793E1F425C0754D1E809C9F599FF546</code> <code>F14A0123069ECA3C0123967C165CB402</code> <code>2FFB8C10AF33A2DA267CDD7A67D7EAEF</code> <code>4659142ABF616E827914C47E0AD7D724</code> <code>5951CA33293DCE38E2AD99A272A338D4</code> <code>D0729BA03646FD225EEC136B75BF02EC</code> <code>EE35E7C586EDE223A7F6B89E371FF411</code> <code>3A3CE5D81022907BB73AB91EDE25ABAF</code> <code>78DC00B6FEC9BA809153570101ACC766</code> <code>655A170FC904A88E2991F18531DAF189</code> <code>1F9A8A693E2143A2BC31C4B8D241BF61</code><br> <code>6C7300E1</code></td>
<td>Encrypted client_DH_inner_data generated previously, serialized as a TL byte string</td>
</tr>
</tbody>
@ -785,17 +785,17 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<h5><a class="anchor" href="#8-auth-key-generation" id="8-auth-key-generation" name="8-auth-key-generation"><i class="anchor-icon"></i></a>8) Auth key generation</h5>
<p>The client computes the auth_key using formula <code>g_a^b mod dh_prime</code>:</p>
<!-- start auth_key -->
<pre><code>auth_key = 81CE06F4E091A1EA220DB809260DA84049B2034BCF0FF9419D6CB00AB3A2387BFEC36DB566BA8D525943E3F1C5F84C0299ED8036BC81714BEE1EC04A4D8CDDAB38F82F9E7F86B902CBFC57D34123FA0A1B0B4429AA753FF082A31D1C51721E6F01321D41539EB17558E47E7C30B7E18B8812150438255D5E5A341008D265140EB9E27508FFC94FEDB7C424148EE2288406BA88BFFA0083AA3095D18132206CE8C9105E2D8385EBAD2F684166C732B4717E1747FDB7695E39EF7170CA012A8996A6C361B33B9A3D02A690AA42376B9A0854F64D425AF6E591307E511191F91868DACF4121A37617652512794A557FE86655AAF4433014E0B68D0E877A9A2D6FC9</code></pre>
<pre><code>auth_key = 20102921AC006318497CF06314369EBBF43FD9D2FA527A2C080A4C73A1E2B6EFC4D5D63FCD6982B2D71529E777FC4AF35793FEE0A3382F515BE5BFD1633C70024F030A15BE0B2C6A215F8339B9FFACE74845D1F343F52B58C5E43EC76D93445E5D9BDC70FC2F1162DEBC2675000343A53BE0B546B72BE15E9501F075737D83DC398F75C761AC11489A895A00F9FCAD6A2272F3A20853FA744002E443DE74F2573D6F528213BA7C7D39AE0A6316BEC6E7B738994DC29A12656F099B68806C65A62D29ED9A710C8388807D32DBF8A70AD1DB60297B6A06DCA57D13532189235EF77D6AEF1C53C850BA1BA158BC4B77ACD7D8AE8E7D22CC5E11AAE959261F5597D4</code></pre>
<!-- end auth_key -->
<h5><a class="anchor" href="#9-final-server-reply" id="9-final-server-reply" name="9-final-server-reply"><i class="anchor-icon"></i></a>9) Final server reply</h5>
<p>The server verifies and confirms that auth_key_hash is unique: since it's unique, it replies with the following:</p>
<!-- start dh_gen_ok -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 B0 D5 D1 A7 8A 6D 66
0010 | 44 00 00 00 34 F7 CB 3B 20 FD E6 08 42 30 CC 5C
0020 | 8D CC F8 96 31 94 64 97 93 28 4F B9 DD C4 95 D2
0030 | EA CD BD 8F 12 81 EC 50 64 8A 71 79 9D AD 64 5F
0040 | E2 8F 6D F3 CA 84 51 AE</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 E8 89 EF FD 8E 6D 66
0010 | AC 00 00 00 34 F7 CB 3B A0 7A 5A EC 88 BE AB B1
0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
0030 | 65 3F 46 E0 25 8F D3 07 F8 B6 22 0A A1 C4 19 E4
0040 | 8F A2 0A 26 F4 45 3B 73</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;</code></pre>
<table class="table">
@ -817,13 +817,13 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>01B0D5D1A78A6D66</code></td>
<td><code>01E889EFFD8E6D66</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>44000000</code> (68 in decimal)</td>
<td><code>AC000000</code> (172 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>20FDE6084230CC5C8DCCF89631946497</code></td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>93284FB9DDC495D2EACDBD8F1281EC50</code></td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce_hash1</td>
<td>56, 16</td>
<td><code>648A71799DAD645FE28F6DF3CA8451AE</code></td>
<td><code>F8B6220AA1C419E48FA20A26F4453B73</code></td>
<td>The 128 lower-order bits of SHA1 of the byte string derived from the <code>new_nonce</code> string by adding a single byte with the value of 1, 2, or 3, and followed by another 8 bytes with <code>auth_key_aux_hash</code>. Different values are required to prevent an intruder from changing server response dh_gen_ok into dh_gen_retry.</td>
</tr>
</tbody>